Google Maps API v3:すべてのマーカーを削除するにはどうすればよいですか?
Google Maps Api V3 How Delete All Markers
この記事の翻訳元: Google Maps API v3:すべてのマーカーを削除するにはどうすればよいですか?
Google Maps API v2では、すべてのマップマーカーを削除したい場合は、次のようにするだけで済みます。 Google Maps API v2では、すべてのマップマーカーを削除したい場合は、次のようにするだけです。
map.clearOverlays()
Google MapsAPIでこれを行うにはどうすればよいですか v3 ? Google MapsAPIの使用方法 v3 これを行う?
を見て リファレンスAPI 、それは私にはわかりません。 見てください リファレンスAPI 、私はわかりません。
#1階
参照: https://stackoom.com/question/6Tr9/Google-Maps-API-v-すべてのマーカーを削除する方法
#2階
for (i in markersArray) { markersArray[i].setMap(null) }
IEでのみ動作しています。 IEでのみ機能します。
for (var i=0 i クロム、Firefox、すなわち...に取り組んでいます クロム、Firefox、つまり...
#3階
ポリゴン、マーカーなどを含むすべてのオーバーレイをクリアするには... ポリゴン、マーカーなどを含むすべてのオーバーレイをクリアするには...
単に使用してください: 使用するだけです:
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions)}
これは、マップアプリケーションでフォームを作成するために作成した関数です。 これは私が地図アプリケーションで書いた関数です:
function clear_Map() { directionsDisplay = new google.maps.DirectionsRenderer() //var chicago = new google.maps.LatLng(41.850033, -87.6500523) var myOptions = { zoom: 8, mapTypeId: google.maps.MapTypeId.ROADMAP, center: HamptonRoads } map = new google.maps.Map(document.getElementById('map_canvas'), myOptions) directionsDisplay.setMap(map) directionsDisplay.setPanel(document.getElementById('directionsPanel')) }
#4階
V3にはまだそのような機能はないようです。 V3にはそのような機能はないようです。
人々はあなたが地図上に持っているすべてのマーカーへの参照を配列に保つことを提案します。 マップ上のすべてのマーカーへの参照を配列内に保持することをお勧めします。 そして、すべてを削除したい場合は、配列をループして、各参照で.setMap(null)メソッドを呼び出すだけです。 次に、すべてを削除する場合は、配列をループして、各参照で.setMap(null)メソッドを呼び出します。
詳細/コードについては、この質問を参照してください。 詳細/コードについては、この質問を参照してください。
私のバージョン: 私のバージョン:
google.maps.Map.prototype.markers = new Array() google.maps.Map.prototype.getMarkers = function() { return this.markers } google.maps.Map.prototype.clearMarkers = function() { for(var i=0 i コードはこのコードの編集バージョンです http://www.lootogo.com/googlemapsapi3/markerPlugin.html addMarkerを手動で呼び出す必要がなくなりました。 コードはこのコードの編集バージョンです http://www.lootogo.com/googlemapsapi3/markerPlugin.html addMarkerを手動で呼び出す必要がなくなりました。
長所 利点
- このようにすることで、コードをコンパクトに1か所にまとめることができます(名前空間を汚染しません)。 このようにして、(名前空間を汚染することなく)コードを1か所に保存できます。
- マーカーを自分で追跡する必要はもうありません。map.getMarkers()を呼び出すことで、マップ上のすべてのマーカーをいつでも見つけることができます。 マーカーを自分で追跡する必要はなくなりました。map.getMarkers()を呼び出すことで、マップ上のすべてのマーカーをいつでも見つけることができます。
短所 不利益
- 私が行ったようにプロトタイプとラッパーを使用すると、コードがGoogleコードに依存するようになります。ソースに市長の変更を加えると、これは機能しなくなります。 私のようにプロトタイプとラッパーを使用すると、コードがGoogleコードに依存するようになり、ソースコードに市長の変更を加えると壊れます。
- あなたがそれを理解していないなら、あなたはそれが壊れた場合にそれを修正することができません。 わからないと壊れたら解決できません。 これを壊すようなものを変更する可能性は低いですが、それでも.. これを壊すものは何でも変更する可能性がありますが、それでも...
- 1つのマーカーを手動で削除した場合、その参照は引き続きマーカー配列に残ります。 タグを手動で削除した場合、その参照は引き続きタグ配列に残ります。 (setMapメソッドを編集して修正することもできますが、トラフマーカー配列をループして参照を削除する必要があります) (setMapメソッドを編集して修正することはできますが、コストはスロットマーカー配列をループして参照を削除することです)
#5階
google.maps.Map.prototype.markers = new Array() google.maps.Map.prototype.addMarker = function(marker) { this.markers[this.markers.length] = marker } google.maps.Map.prototype.getMarkers = function() { return this.markers } google.maps.Map.prototype.clearMarkers = function() { for(var i=0 i V3にはないので、上記のカスタム実装を使用しました。 V3にはないと思うので、上記のカスタム実装を使用しました。
免責事項:私はこのコードを作成しませんでしたが、コードベースにマージしたときに参照を保持するのを忘れたため、どこから来たのかわかりません。 免責事項:私はこのコードを作成しませんでしたが、コードベースにマージしたときに、参照を保持するのを忘れたため、どこから来たのかわかりません。
#6階
'set_map
'両方の回答に投稿された関数は、Google Maps v3APIでは機能しなくなったようです。 2つの答えで掲示される 'set_map
この機能は、Google Maps v3APIでは使用できなくなったようです。
何が起こったのだろうか 何が起こったのかわからない
更新: 更新:
GoogleはAPIを次のように変更したようです 'set_map
'は'ではありません 'setMap
'。 GoogleはAPIを変更したようです 'set_map
「ない」setMap
」。
http://code.google.com/apis/maps/documentation/v3/reference.html http://code.google.com/apis/maps/documentation/v3/reference.html