2011-05-16 119 views
5

嘿。 I'mm试图把具有相同的DIV ID在一张地图上的两个点..
,但它不工作..
代码:谷歌地图在一张地图上的两个标记

为1,

var map = new GMap2(document.getElementById("map-canvas")); 
    map.addControl(new GLargeMapControl()); 
    map.addControl(new GMapTypeControl()); 
    map.setCenter(new GLatLng(<?=$lat;?>,<?=$lng;?>), 6); 

    var point = new GLatLng(<?=$lat;?>,<?=$lng;?>); 
    var marker = createMarker(point,'Welcome:<b></b><br>Second Info Window with an image<br><img src="http://localhost/gps/user_photo/" width=80 height=80>') 
    map.addOverlay(marker); 


    function createMarker(point,html) { 
     var marker = new GMarker(point); 
     GEvent.addListener(marker, "click", function() { 
      marker.openInfoWindowHtml(html); 
     }); 
     return marker; 
     } 

为2,

var map = new GMap2(document.getElementById("map-canvas")); 
    map.addControl(new GLargeMapControl()); 
    map.addControl(new GMapTypeControl()); 
    map.setCenter(new GLatLng(<?=$mylat;?>,<?=$mylng;?>), 6); 

    var point1 = new GLatLng(<?=$mylat;?>,<?=$mylng;?>); 
    var marker = createMarker1(point1,'Welcome:<b></b><br>Second Info Window with an image<br><img src="http://localhost/gps/user_photo/" width=80 height=80>') 
    map.addOverlay(marker); 


    function createMarker1(point,html) { 
     var marker = new GMarker(point); 
     GEvent.addListener(marker, "click", function() { 
      marker.openInfoWindowHtml(html); 
     }); 
     return marker; 
     } 

为什么在一个地图上未显示两点????? 它会在两个不同的地图中看到...

+1

他们是两个不同的经济增长点吗?为什么不使用V3谷歌地图?为什么这两个标记共享一个ID? Id是独一无二的 – kjy112 2011-05-16 14:24:17

+0

你不是在创建两个不同的地图吗? – miguelSantirso 2011-05-16 14:28:08

+0

不,我想在一个地图上使用这段代码soo – keyur 2011-05-16 14:41:01

回答

1
//set up map as before 

    var point0 = new GLatLng(<?=$mylat0;?>,<?=$mylng0;?>); 
    var point1 = new GLatLng(<?=$mylat1;?>,<?=$mylng1;?>); 
    var marker0 = createMarker(point0,'Welcome:<b></b><br>First Info Window etc); 
    var marker1 = createMarker(point1,'Welcome:<b></b><br>Second Info Window etc); 
    map.addOverlay(marker); 

// only declare this once 
    function createMarker(point,html) { 
     var marker = new GMarker(point); 
     GEvent.addListener(marker, "click", function() { 
      marker.openInfoWindowHtml(html); 
     }); 
     return marker; 
     } 

这是做只是为了得到它为你工作的一种方式,但本质上都是JS分标记应该是你循环的数组 - 也许是PHP中的$ mylat和$ mylong vars。

0

据我所知 - 你想在一张地图上添加两个点,在一个页面上。 如果是这样的 - 你不需要初始化GMAP两次,只是做这样的事情: http://pastebin.com/BtvdfaiP

+0

,但它在这个代码上工作:var mapDiv = document.getElementById('map-canvas'); \t地图=新google.maps.Map(mapDiv,{ \t \t中心:新google.maps.LatLng() \t \t变焦:13, \t \t的mapTypeId:google.maps.MapTypeId.ROADMAP \t}); \t \t directionsDisplay.setMap(map); – keyur 2011-05-16 14:38:06

+0

你是对的,但与不同的代码我得到了两个不同的点(拉特,lng)所以 – keyur 2011-05-16 14:45:00

+0

我不知道,我理解你的目标正确。你可以更清楚地描述它吗? – 2011-05-16 14:52:20