3

setMap(null); を取得できません。誰もが働くことをお勧めしそうな機能。

マーカーの実装方法に問題がある可能性があると思います。

誰かが見て、何か間違っていることがあれば教えていただければ幸いです。

リンク: http://www.dougglover.com/samples/UOITMap/v2/

注意: 上記の古いリンクはどこにも行きません。

4

2 に答える 2

15

マップ上のマーカーの切り替えにsetMap(null) を使用しないでください。したがって、API は、そのタスクに適したメソッドである setVisible メソッドを提供します。

于 2011-06-05T07:54:48.767 に答える
-2

基本的な問題は、これを機能させたい場合は、markersTestオブジェクトが何を保持するかについて決心しなければならないことです。markersTestの要素をマーカーにするか、マーカーを配置する場所を示す配列にするかを決定できないようです。

JavaScriptファイルから引用すると、チェックボックスをオン/オフにしたときに実行される2つの関数は次のとおりです。

15  function addTestMarkers(){
16      for(var i in markersTest) {
17          var location = new google.maps.LatLng(markersTest[i][1], markersTest[i][2]);
18          marker = new google.maps.Marker({
19              position: location,
20              map: map
21          });
22      }
23  }
24  
25  // Removes the overlays from the map, but keeps them in the array
26  function clearOverlays() {
27      if (markersTest) {
28          for (i in markersTest) {
29              markersTest[i].setMap(null);
30          }
31      }
32  }

が機能するためaddTestMarkersには、markersTestオブジェクトはマーカーの移動先の記述を保持する必要があります。が機能するにはclearOverlaysmarkersTestオブジェクトがマーカーを保持する必要があります。

これが私の提案です:markersTestオブジェクトをjavascriptファイルの先頭に設定したように変更し、javascriptファイルmarkerDestinationsの先頭で次のようにmarkersTest初期化しました:

markersTest = {};

次に、次のように変更addTestMarkersします。

function addTestMarkers() {
    for(var i in markerDestinations) {
        var location = new google.maps.LatLng(markersDestinations[i][1], markersDestinations[i][2]);
        markersTest[i] = new google.maps.Marker({
            position: location,
            map: map
        });
    }
}

重要な変更はaddTestMarkers、マーカーを実際にmarkersTestオブジェクトに配置することです。

于 2010-04-29T01:32:36.017 に答える