Googleマップから全てのマーカーを削除する方法:JavaScript、HTML、Googleマップ徹底解説
Google Maps API v3: すべてのマーカーを削除する方法 (JavaScript, HTML, Google Maps)
このチュートリアルでは、Google Maps API v3を使用して、JavaScriptとHTMLで作成したマップからすべてのマーカーを削除する方法について説明します。
必要なもの
- Google Maps API v3 を有効にした Web ページ
- 既存のマーカーを表示する JavaScript コード
手順
- すべてのマーカーを格納する配列を作成する
まず、すべてのマーカーを格納するための配列を作成する必要があります。この配列は、google.maps.Marker
オブジェクトのインスタンスを保持します。
var markers = [];
- ループを使用して各マーカーを配列に追加する
次に、ループを使用して既存の各マーカーを配列に追加する必要があります。
// 既存のマーカーを取得する
var existingMarkers = map.markers;
// 各マーカーをループする
for (var i = 0; i < existingMarkers.length; i++) {
var marker = existingMarkers[i];
// マーカーを配列に追加する
markers.push(marker);
}
// 各マーカーをループする
for (var i = 0; i < markers.length; i++) {
var marker = markers[i];
// マーカーをマップから削除する
marker.setMap(null);
}
例
以下の例は、上記のコードをどのように使用してすべてのマーカーを削除するかを示しています。
<!DOCTYPE html>
<html>
<head>
<title>Google Maps API v3: すべてのマーカーを削除する</title>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
<script>
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: 37.7749, lng: -122.4194}
});
// マーカーを追加する
var marker1 = new google.maps.Marker({
position: {lat: 37.7833, lng: -122.4167},
map: map,
title: 'マーカー 1'
});
var marker2 = new google.maps.Marker({
position: {lat: 37.7750, lng: -122.4200},
map: map,
title: 'マーカー 2'
});
// すべてのマーカーを削除する
function removeAllMarkers() {
var markers = [];
// 既存のマーカーを取得する
var existingMarkers = map.markers;
// 各マーカーをループする
for (var i = 0; i < existingMarkers.length; i++) {
var marker = existingMarkers[i];
// マーカーを配列に追加する
markers.push(marker);
}
// 各マーカーをループしてマップから削除する
for (var i = 0; i < markers.length; i++) {
var marker = markers[i];
// マーカーをマップから削除する
marker.setMap(null);
}
}
// ボタンをクリックするとすべてのマーカーを削除する
document.getElementById('removeMarkersButton').addEventListener('click', removeAllMarkers);
}
</script>
</head>
<body>
<div id="map" style="width: 800px; height: 400px;"></div>
<button id="removeMarkersButton">すべてのマーカーを削除</button>
<script>
initialize();
</script>
</body>
</html>
説明
この例では、次のことが行われます。
initialize()
関数は、Google マップを作成し、2 つのマーカーを追加します。removeAllMarkers()
関数は、すべてのマーカーをマップから削除します。removeMarkersButton
ボタンをクリックすると、removeAllMarkers()
関数が呼び出されます。
補足
- このコードは、
サンプルコード:JavaScript、HTML、Googleマップを使用してすべてのマーカーを削除する方法
<!DOCTYPE html>
<html>
<head>
<title>GoogleマップAPI v3:すべてのマーカーを削除する</title>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
<script>
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: 37.7749, lng: -122.4194}
});
// マーカーを追加する
var marker1 = new google.maps.Marker({
position: {lat: 37.7833, lng: -122.4167},
map: map,
title: 'マーカー 1'
});
var marker2 = new google.maps.Marker({
position: {lat: 37.7750, lng: -122.4200},
map: map,
title: 'マーカー 2'
});
// すべてのマーカーを削除する
function removeAllMarkers() {
var markers = [];
// 既存のマーカーを取得する
var existingMarkers = map.markers;
// 各マーカーをループする
for (var i = 0; i < existingMarkers.length; i++) {
var marker = existingMarkers[i];
// マーカーを配列に追加する
markers.push(marker);
}
// 各マーカーをループしてマップから削除する
for (var i = 0; i < markers.length; i++) {
var marker = markers[i];
// マーカーをマップから削除する
marker.setMap(null);
}
}
// ボタンをクリックするとすべてのマーカーを削除する
document.getElementById('removeMarkersButton').addEventListener('click', removeAllMarkers);
}
</script>
</head>
<body>
<div id="map" style="width: 800px; height: 400px;"></div>
<button id="removeMarkersButton">すべてのマーカーを削除</button>
<script>
initialize();
</script>
</body>
</html>
このコードは、以下の動作を行います。
initialize()
関数は、以下の内容を実行します。- Googleマップを作成し、
map
変数に格納します。 - ズームレベルを 4 に設定します。
- 中心座標をサンフランシスコの位置に設定します。
- 2 つのマーカーを作成し、マップに追加します。
- Googleマップを作成し、
removeAllMarkers()
関数は、以下の内容を実行します。- 空の配列
markers
を作成します。 map.markers
プロパティを使用して、既存のマーカーのリストを取得します。- 別のループを使用して、
markers
配列内の各マーカーに対してsetMap(null)
メソッドを呼び出し、マップから削除します。
- 空の配列
- ページがロードされると、
initialize()
関数が自動的に呼び出され、マップとマーカーが作成されます。 - "すべてのマーカーを削除" ボタンをクリックすると、
removeAllMarkers()
関数が呼び出され、すべてのマーカーがマップから削除されます。
このコードをどのように使用するか
- このコードを自分の HTML ファイルにコピーします。
YOUR_API_KEY
を、自分の Google Maps API キーに置き換えます。- ファイルを Web サーバーにアップロードし、Web ブラウザで開きます。
- このコードは、単一のマップとそれに追加されたマーカーのみを対象としています。複数のマップや複雑なマーカー管理ロジックを使用している場合は、コードを適宜調整する必要があります。
- マーカーを削除する前に、それらに関連付けられているデータ (例、イベントリスナー、インフォウィンドウ) をクリーンアップすることを忘れないでください。
方法
- google.maps.MVCObject.remove() メソッドを使用する
google.maps.MVCObject.remove()
メソッドを使用して、個々のマーカーをマップから削除することができます。この方法は、特定のマーカーのみを削除する場合に適しています。
// マーカーをマップから削除する
marker.remove();
google.maps.Map.clear()
メソッドを使用して、マップ上のすべてのオーバーレイ (マーカー、ポリライン、図形など) を削除することができます。この方法は、すべてのマーカーとその他のオーバーレイを一度に削除する場合に適しています。
// マップ上のすべてのオーバーレイを削除する
map.clear();
<!DOCTYPE html>
<html>
<head>
<title>Google Maps API v3: すべてのマーカーを削除する</title>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
<script>
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: 37.7749, lng: -122.4194}
});
// マーカーを追加する
var marker1 = new google.maps.Marker({
position: {lat: 37.7833, lng: -122.4167},
map: map,
title: 'マーカー 1'
});
var marker2 = new google.maps.Marker({
position: {lat: 37.7750, lng: -122.4200},
map: map,
title: 'マーカー 2'
});
// すべてのマーカーを削除する (個別に削除)
function removeAllMarkersIndividually() {
// 各マーカーをループする
for (var i = 0; i < map.markers.length; i++) {
var marker = map.markers[i];
// マーカーをマップから削除する
marker.remove();
}
}
// すべてのマーカーを削除する (`map.clear()` を使用)
function removeAllMarkersClear() {
// マップ上のすべてのオーバーレイを削除する
map.clear();
}
// ボタンをクリックするとすべてのマーカーを個別に削除する
document.getElementById('removeMarkersIndividuallyButton').addEventListener('click', removeAllMarkersIndividually);
// ボタンをクリックするとすべてのマーカーを `map.clear()` で削除する
document.getElementById('removeMarkersClearButton').addEventListener('click', removeAllMarkersClear);
}
</script>
</head>
<body>
<div id="map" style="width: 800px; height: 400px;"></div>
<button id="removeMarkersIndividuallyButton">すべてのマーカーを個別に削除</button>
<button id="removeMarkersClearButton">すべてのマーカーを `map.clear()` で削除</button>
<script>
initialize();
</script>
</body>
</html>
removeAllMarkersIndividually()
関数は、以下の内容を実行します。removeAllMarkersClear()
関数は、`
javascript html google-maps