setMap(null); を取得できません。誰もが働くことをお勧めしそうな機能。
マーカーの実装方法に問題がある可能性があると思います。
誰かが見て、何か間違っていることがあれば教えていただければ幸いです。
リンク: http://www.dougglover.com/samples/UOITMap/v2/
注意: 上記の古いリンクはどこにも行きません。
setMap(null); を取得できません。誰もが働くことをお勧めしそうな機能。
マーカーの実装方法に問題がある可能性があると思います。
誰かが見て、何か間違っていることがあれば教えていただければ幸いです。
リンク: http://www.dougglover.com/samples/UOITMap/v2/
注意: 上記の古いリンクはどこにも行きません。
マップ上のマーカーの切り替えにsetMap(null) を使用しないでください。したがって、API は、そのタスクに適したメソッドである setVisible メソッドを提供します。
基本的な問題は、これを機能させたい場合は、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
オブジェクトはマーカーの移動先の記述を保持する必要があります。が機能するにはclearOverlays
、markersTest
オブジェクトがマーカーを保持する必要があります。
これが私の提案です: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
オブジェクトに配置することです。