最近ではアプリなどでGPSを使った位置情報の取得する機能をよく見かけますが
JavaScriptを使ってそのようなGPS位置情報を利用するサンプルを作ってみたので紹介してみます。
JavaScriptでは「Geolocation API」というAPIを使って
「navigator.geolocation」オブジェクトで位置情報を扱うようです。
位置情報取得の際には
position.coords.latitude:緯度
position.coords.longitude:経度
となります。
これを使って位置情報を取得するサンプルは以下から。
画面上の「≫GPS情報取得を開始する」をクリックすると位置情報の取得を開始します。
jQuery GPS
別枠表示したい場合は以下から。
≫jQuery GPS
画面上の「≫GPS情報取得を開始する」をクリックすると
現在地の緯度/経度に加えて、Googleマップで現在の位置にマーカーを立てます。
PCは基本的にGPS機能を持っていないので
正確な位置情報を取得できないことがありますが
スマートフォンなどGPS機能を持っている端末では
正確な位置を取得することが出来ると思います。
このサンプルの構成については
以下のようになっています。
◆HTML <div id="contents"> <a href="javascript:void(0);" id="start_gps">≫GPS情報取得を開始する</a> <table> <tr> <th>緯度</th> <td><span id="latitude"></span></td> <th>経度</th> <td><span id="longitude"></span></td> </tr> </table> <div id="map"><p>MAP</p></div> </div><!--/contents-->
SCRIPTは今回はjQueryベースで作っているので
別途jQueryファイルも必要です。
◆SCRIPT $(function(){ $('#start_gps').click(function(){ navigator.geolocation.watchPosition( function(position){ $('#latitude').html(position.coords.latitude); //緯度 $('#longitude').html(position.coords.longitude); //経度 //GoogleMapLOAD if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); var latlng = new GLatLng(position.coords.latitude,position.coords.longitude); map.setCenter(latlng, 14, G_NORMAL_MAP); var marker = new GMarker(latlng); map.addOverlay(marker); GEvent.addListener(map,'click',function(overlay, point){ if(point){ document.getElementById('click_lat').value = point.y; document.getElementById('click_long').value = point.x; } }); } } ); }); });
「Geolocation API」は現在W3Cで仕様を策定中で
FirefoxやGoogle Chrome,Safariでは利用が出来ますが
IEなどのブラウザでは全く動作しません。
Googleマップ表示ではGoogle Maps API KEYを必要としているので
サンプルを他のサーバーにアップして使おうとしても
マップを表示できないことがあるのでご注意ください。
≫Google Maps API KEYについてはこちらから
今回は実験的なサンプルでしたが
アプリなどでGPS位置情報取得する際のご参考までに。。。
【参考記事】
≫位置情報サービスのはじめ方:第3回 位置情報を取得してみよう(後編)|gihyo.jp … 技術評論社
≫pxt | 【JavaScript】 iPhone で、ウェブからGPS位置情報を扱ってみる