Google Maps API・マイマップの使い方・活用法をご紹介しています。

マーカーを削除する(基本) |Google Maps API v3

GoogleMapsAPIにてマーカーを表示したら、
ユーザーの操作に応じてマーカーを消す必要がある場合もあります。
ここでは「単純にマーカーを消す」例についてご紹介します。
他の複雑な削除処理も基本はこの処理になります。

 

マーカーを削除する(基本) |Google Maps API v3

以下が実際の表示例です。
初期で1つのマーカーを表示し「マーカーを削除する」をクリックしたら、
表示されている唯一のマーカーを削除します。

以下のボタンで動作を確認できます。

 

補足説明

「マーカーを表示する」「マーカーを削除する」それぞれのボタンは、
単純に関数を呼び出す処理になっています。

 

マーカーの生成

マーカーを表示する処理は以下の通り、
new google.maps.Marker(options) にて単純にマーカーの生成をしています。

スコープ外のグローバル宣言している「marker」変数に対して、
生成したマーカーインスタンスを格納しています。

また「マーカーを表示する」を複数回クリックすると、
その都度同じ位置に同じマーカーが追加されていくことを回避するため、
実際にはマーカー生成時に都度「deleteMakers()」を呼び、
既存のマーカーを削除しています。

 

マーカーの削除

マーカーの削除は生成時に格納した「marker」変数に対して、
「marker.setMap(null)」を指定することで、マーカーの削除が行えます。

※「marker.setMap(null)」だけではマーカーに対する参照が残ってしまい、
メモリの開放が行われない為「marker = null」にて明示的にnullをセットしています。

 

基本的にはマーカーインスタンスを生成したら、
関数間でそれぞれアクセスするために、グローバル変数に格納しておき、
削除処理でもその変数を参照します。
※クラス化してグローバルを利用しない方が好みではあります。

 

サンプルコード

HTML

HTMLではGoogle Mapを表示するエリア(<div id=”gmap_canvas”></div>)を配置しています。
エリアを囲んでいる「<div class=”aspect”></div>」部分は、
ページ表示用の高さ制御用のタグです。

 

CSS

CSSではclass=”aspect”に対して、 幅100%を指定し、高さをビューポートの50%としています。 GoogleMapを表示するエリア(id=”gmap_canvas”)のサイズを、 class=”aspect”に対しての幅・高さを100%として指定しています。

JavaScript

上記の補足説明の通りです。
ここでは便宜上、JavaScriptのファイル上からボタンを出力しています。

 

別途、GoogleMapsAPIのライブラリを読み込む記述が必要です。  ご自分が取得されたAPIキーを以下のコードの(YourAPIkey)部分に置き換えて設定してください。

 

参考

Remove Markers  |  Google Maps JavaScript API  |  Google Developers


公開日:

コンテンツ
すべて展開 | すべて省略