0

Google マップに問題があります。V3 コードは Google の例の一部です。各マーカーにリスナーを追加したいので、マーカーを配列として設定します。しかし、それは機能していません:(誰かが私を助けることができますか?

    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 Mapsv2APIは非推奨です。v3を使用する必要があります。新しいAPIを使用したこの実用的な例をご覧ください:Google Maps JSAPIv3-シンプルなマルチマーカーの例

于 2010-11-15T18:00:08.893 に答える
0

これは、Google マップ API V2 コードのように見えます。

  • に置き換えGLatLnggoogle.maps.LatLng
  • GEventと置き換えますgoogle.maps.event
  • の代わりに、 V3map.addOverlay(marker[i]);で行います。marker[i].setMap(map);

残りについては、必ずAPI ドキュメントをお読みください。そこには、あなたが進むのに役立つ多くの例があります。

于 2010-11-16T01:32:14.520 に答える