谷歌地图 - JavaScript问题

时间:2010-11-15 17:40:17

标签: google-maps google-maps-api-2

我的谷歌地图V3有问题 代码是谷歌的一部分示例。我想将侦听器添加到EACH标记,因此我将标记设置为数组。但它没有工作:( 谁能帮我?

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

2 个答案:

答案 0 :(得分:0)

不推荐使用Google Maps v2 API,您应该使用 v3 。使用新API查看此工作示例:Google Maps JS API v3 - Simple Multiple Marker Example

答案 1 :(得分:0)

这看起来像Google映射api V2代码。

  • GLatLng替换为google.maps.LatLng
  • GEvent替换为google.maps.event
  • 而不是map.addOverlay(marker[i]);,请在V3中执行marker[i].setMap(map);

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