Доброго времени суток! Хочется сделать, чтобы при детальном просмотре выводилась карта местности с указанием метки на карте.
_http://lysvacity.ru/index.php?option=com_sobi2&sobi2Task=sobi2Details&catid=3&sobi2Id=1&Itemid=5
Для этого было проделано следующее:
Записан Google API Key в настройках (View Configuration->Google Maps)
Созданы поля 'field_longitude' и 'field_latitude' для географической долготы и широты (View Configuration->Google Maps)
Создано поле 'field_map', имеющее тип "text code", в которое вставлен следующий скрипт, указанный ниже:
<script src="http://maps.google.com/maps?file=api&v=1&key={googleApiKey}" type="text/javascript"></script>;
<div id="map" style="width: 400px; height: 300px"></div>
<script type="text/javascript">
//<![CDATA[
var start_latitude = "57.80259132385254";
var start_longitude = "58.10669504078775";
var zoomlevel_add = 11;
var zoomlevel_edit = 3;
var map = new GMap(document.getElementById("map"));
map.addControl(new GSmallMapControl());
var latitude = document.getElementById('field_latitude').value;
if (latitude == "")
latitude = start_latitude;
var longitude = document.getElementById('field_longitude').value;
if (longitude == "")
longitude = start_longitude;
if (latitude == start_latitude)
zoomlevel = zoomlevel_add;
else
zoomlevel = zoomlevel_edit;
// center and zoom to the lat/long in the form
map.centerAndZoom(new GPoint(longitude,latitude), zoomlevel);
GEvent.addListener(map, 'click',
function(overlay, point) {
if (point) {
document.getElementById('field_latitude').value = point.y;
document.getElementById('field_longitude').value = point.x;
}
}
);
//]]>
</script>
При добавлении карта отображается (стандартная) и при щелчке по карте поля 'field_longitude' и 'field_latitude' заполняются координатами.
Далее при детальном просмотре также отображается карта с маркером.
Однако, мой город не отрисован и снимки с космоса тоже ниочем… поэтому используется своя карта на гугловском движке: _http://lysvacity.ru/map.html
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA8Wl9BKQvJavnEqRHsC4jjRRBdKLjill6Gmn_G3adwrnZaNAX1RQUr8CAVrSKZ-BEksxhdbxpvyqeDA"
type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
document.map = map;
document.map.addControl(new GScaleControl());
document.map.addControl(new GMapTypeControl());
document.map.addControl(new GLargeMapControl());
var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(58.12486350505505,57.755126953125),
new GLatLng(58.06362273407202,57.8704833984375)),
0, "© 2007 lysvagrad.net");
var copyrightCollection = new GCopyrightCollection("lysvagrad.net");
copyrightCollection.addCopyright(copyright);
CustomGetTileUrl=function(a,b){
return "/map/"+(17-b)+"/"+a.x+"_"+a.y+"_"+(17-b)+".png";
}
var tilelayers = [new GTileLayer(copyrightCollection,0,17)];
tilelayers[0].getTileUrl = CustomGetTileUrl;
var custommap = new GMapType(tilelayers, new GMercatorProjection(18), "Лысьва", {errorMessage:"Сюда нельзя!"});
map.custommap = custommap;
document.map.addMapType(custommap);
document.map.setCenter(new GLatLng(58.09475525718224, 57.79828906059265), 16, custommap);
}
}
//]]>
</script>
Пробывал в поле 'field_map' вставить вышеуказанный скрипт, но ничего не отображается или в итоге отображается карта со спутника, а нужно чтобы своя карта отображалсь.
Подскажите как быть, может разбирающиеся люди приведут правильный пример, какой код нужно вставить в этот поле ? Или нужно еще, гте-то менять параметры ? Заранее спасибо.