2016-11-10 12 views
-2

私はGoogleマップでマーカーをピン止めする機能を持っています。GoogleMaps API:複数のマーカーを削除するにはどうすればよいですか?

// Look to draw marker in various coordinates. Pseudo code... 
for(var i = 1; i <= noOfCoordinates; i++){ 

    var lat = latitude[i]; 
    var long = longitude[i]; 

    drawMarker(lat, long); 

}; 

var drawMarker = function(lat, long){ 
// code to draw marker 

marker.setMap(map); 

}; 

しかし、私はまた

for(var i = 1; i <= noOfCoordinates; i++){ 

    removeMarker(null); 

}; 

var removeMarker = function(map){ 
// code to draw marker 

marker.setMap(map); 

}; 

drawmarker()これらのマーカーを除去する機能を持っています。これは、それがどのように見えるかですgoogleマップでマーカーをピン/描画しますが、removeMarker();すべてのマーカーをGoogleマップから削除するわけではなく、最後のマーカーのみを削除します。

drawMarker()から描画された、関連するすべてのマーカーを削除したいと思います。関数。削除=隠し、削除ではありません。

どうすればこの問題を解決できますか?

+0

各1に '' .setMap(null)を呼び出して、すべてのマーカーへの参照をしてください。 – geocodezip

+0

リファレンスはどういう意味ですか?どのように保つ? – asax

答えて

0

Keep references to all the markers, call .setMap(null) on each one

geocodezipは次のように示唆している:

markers = []; // <-- global variable 

for(var i = 1; i <= noOfCoordinates; i++){ 

    var lat = latitude[i]; 
    var long = longitude[i]; 

    var marker = drawMarker(lat, long); 
    markers[i].push(marker); 
}; 

var drawMarker = function(lat, long){ 
// code to draw marker 

    marker.setMap(map); 
    return marker; 
}; 

for(var i = 1; i <= noOfCoordinates; i++){ 

    markers[i].setMap(null); 

}; 
+0

私はそれをしましたが、マーカーを削除しません。私はまたエラーが発生します:TypeError:未定義のプロパティ 'setMap'を読み取ることができません – asax

+0

また、私はこのエラーが表示されます:InvalidValueError:setMap:Mapのインスタンスではありません。 StreetViewPanoramaのインスタンスではありません... js?key = {{......ここにいくつかのキーがあります....}}:34 InvalidValueError: – asax

+0

変数 'marker 'はグローバル変数でなければなりません – wf9a5m75

関連する問題