Google Map マーカーのドラッグドロップで緯度・経度を取得(v3版)
Google Mapで、特定の場所の緯度・経度を取得したいことが多々あります。
ピンポイントに位置指定するために、地図上のマーカーをドラッグ&ドロップして、その位置の緯度・経度を表示するスクリプトの、ver.3対応版です。
JavaScript Maps API V3 は、誰でも自由にアクセスできるウェブサイトであれば、無料で利用できるサービスです。
とのことなので、自由に使わせていただきます。ありがとう、Google。
以下のサンプルも自己責任でご自由にお使いください。
(2020/07 追記) JavascriptAPIが無料でなくなって久しいです。記事内容、絶賛放置中です。 そのうち手を入れます…。
ソース
HTMLのヘッダにスクリプトを書いておきます。
APIキーは、特にお金はかからないので、各自で取得してください。取得方法はGoogleの公式ドキュメントをご参照ください。
senserには、GPSなどのセンサー情報を使うかどうかを指定します。今回は使わないのでfalseです。スマホ向けでユーザーの現在位置を使うようなときにtrueにします(その例はまた別の機会に)。
(2015/07/29追記) senserは必須じゃなくなってますね。他にもちょっと変わっているみたいなのでご注意ください。そのうちこの記事の内容見直します。
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=(APIキー)&sensor=false"></script> <script type="text/javascript"> // ページ読み込み完了時に実行する関数 function init() { // 初期位置 var okayamaTheLegend = new google.maps.LatLng(34.666358, 133.918576);
// マップ表示 var okayamap = new google.maps.Map(document.getElementById("map"), { center: okayamaTheLegend, zoom:13, mapTypeId: google.maps.MapTypeId.ROADMAP }); // ドラッグできるマーカーを表示 var marker = new google.maps.Marker({ position: okayamaTheLegend, title: "Okayama the Legend!", draggable: true // ドラッグ可能にする }); marker.setMap(okayamap) ; // マーカーのドロップ(ドラッグ終了)時のイベント google.maps.event.addListener( marker, 'dragend', function(ev){ // イベントの引数evの、プロパティ.latLngが緯度経度。 document.getElementById('latitude').value = ev.latLng.lat(); document.getElementById('longitude').value = ev.latLng.lng(); }); } // ONLOADイベントにセット window.onload = init(); </script>
bodyでは地図表示と、緯度経度の表示場所を確保しましょう。
当然、IDはスクリプトで使うものを指定します。
<form>
<label for="latitude">緯度</label>
<input type="text" id="latitude" size="20" />
<label for="longitude">経度</label>
<input type="text" id="longitude" size="20" />
</form>
<div id="map" style="width:480px;height:400px;">
[ ページ先頭へ ]
実例
マーカーをドラッグドロップすると、その位置の緯度経度が表示されます。地図を拡大して、ピンポイント指定もできます。
[ ページ先頭へ ]
参考
公式ドキュメント:スタートガイド
https://developers.google.com/maps/documentation/javascript/tutorial?hl=ja
公式ドキュメント:イベントリスナ
https://developers.google.com/maps/documentation/javascript/events?hl=ja#EventListeners
最終更新日:2015/07/29
[ ページ先頭へ ]