0

我对谷歌地图有问题 V3 代码是谷歌示例的一部分。我想将侦听器添加到每个标记,所以我将标记设置为数组。但它不起作用:(有人可以帮助我吗?

    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] );  
    }
  }
}
4

2 回答 2

0

Google Maps v2 API 已弃用,您应该使用v3。请参阅使用新 API 的此工作示例:Google Maps JS API v3 - Simple Multiple Marker Example

于 2010-11-15T18:00:08.893 回答
0

这看起来像 Google maps api V2 代码。

  • 替换GLatLnggoogle.maps.LatLng,
  • 替换GEventgoogle.maps.event
  • 而不是map.addOverlay(marker[i]);,marker[i].setMap(map);在 V3 中执行。

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

于 2010-11-16T01:32:14.520 回答