2011-05-16 117 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