2010-11-15 140 views
0

我有一个谷歌地图V3的问题 代码是来自谷歌的例子的一部分。我想添加侦听器到每个标记,所以我将标记设置为数组。但它不工作:( 谁能帮助我谷歌地图 - javascript问题

function initialize() { 
    if (GBrowserIsCompatible()) { 
    var map = new GMap2(document.getElementById("map_canvas")); 
    map.setCenter(new GLatLng(37.4419, -122.1419), 13); 

    // Add 10 markers to the map at random locations 
    var bounds = map.getBounds(); 
    var southWest = bounds.getSouthWest(); 
    var northEast = bounds.getNorthEast(); 
    var lngSpan = northEast.lng() - southWest.lng(); 
    var latSpan = northEast.lat() - southWest.lat(); 
    var marker = new Array(10); 
    for (var i = 0; i < 10; i++) { 
     var latlng = new GLatLng(southWest.lat() + latSpan * Math.random(), 
           southWest.lng() + lngSpan * Math.random()); 

     marker[i] = new GMarker(latlng,{ draggable: true }); 

     GEvent.addListener(marker[i] , "dragstart", function() { 
     map.closeInfoWindow(); 
     }); 

     GEvent.addListener(marker[i] , "dragend", function() { 
     marker[i].openInfoWindowHtml("text" + i); 
     }); 

     map.addOverlay(marker[i]); 
    } 
    } 
} 
+1

定义“不工作”? – ceejayoz 2010-11-15 17:41:18

+0

当我想拖动标记时,我可以将其移动。但完成后,我想显示文字。但没有任何反应。如果它能正常工作,在标记的底部是小十字,移动后消失。现在,十字架仍然在地图上。 – Marek 2010-11-15 18:00:16

+0

这里是一个例子 - 请只注意地图,它只是页面的一部分.. http://praha-cyklistika.cz/map2.html – Marek 2010-11-15 18:07:28

回答

0

这看起来像谷歌地图API V2代码。

  • 更换GLatLnggoogle.maps.LatLng
  • 更换GEventgoogle.maps.event
  • 取代map.addOverlay(marker[i]);,在V3中执行marker[i].setMap(map);

其余的,请务必阅读API documentation。那里有很多例子可以帮助你开始。