-4

送信ボタンをクリックしたときにすべてのマーカーをクリアしたい。緯度と経度があり、そのマーカーをクリアしたい場合、どうすればよいですか。また、ルートを検索する場合は、すでにロードされているすべてのマーカーをクリアしたいと思います。

4

1 に答える 1

0

挿入後にマップからマーカーを削除するには、グローバル変数を使用してマーカーを追跡する必要があります。

var markers = [];

次に、マップにマーカーを追加するたびに、マーカーをmarkers配列にも追加します。

markers.push(new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(20, 20)
});

マップからすべてのマーカーをクリアするには、次を使用できます。

for (var i = 0; i < markers.length; i++)
    markers[i].setMap(null);

配列を同時にクリアしたい場合はmarkers、これを使用できます。

for (var i = markers.length-1; i >= 0; i++) {
    markers[i].setMap(null);
    markers.pop();
}

またはこれ:

for (var i = 0; i < markers.length; i++)
    markers[i].setMap(null);
markers = [];


オブジェクトとして緯度と経度の値に基づいてマーカーを削除する場合LatLngは、次を使用できます。

for (var i = 0; i < markers.length; i++) {
    if (markers[i].getPosition().equals(latLng)
        markers[i].setMap(null);
}

単に座標がある場合は、次を使用できます。

for (var i = 0; i < markers.length; i++) {
    var latLng = new google.maps.LatLng(lat, lng);
    if (markers[i].getPosition().equals(latLng)
        markers[i].setMap(null);
}
于 2012-08-26T20:48:12.363 に答える