flashcast:フリーで働くITエンジニア集団のブログ: iPhone OS 3.0のSafariでGPS機能を使ったWeb Applicationを作る!(UI編)の続きです。
iPhone OS 3.0のSafariでGPS機能を利用し、現在地の緯度・経度を取得します。
前回同様、以下のサイトを参考にしました。
各種デバイスの読み取り – iPhone 3G DevWiki
javascriptで現在地の緯度・経度を取得します。
function initialize() { if (navigator != null && navigator.geolocation != null) { navigator.geolocation.watchPosition(onLocationChanged); } map = new GMap2(document.getElementById("map_canvas")); map.setCenter(new GLatLng(lat, lng), 15); GEvent.addListener(map, "click", onMapClick); geocoder = new GClientGeocoder(); } function onLocationChanged(e) { lat = e.coords.latitude; lng = e.coords.longitude; getAddress(new GLatLng(lat, lng)); }
navigatorオブジェクトのgeolocationを利用します。
ブラウザやプラットフォームによってはサポートされていない場合があるため、PCブラウザでアクセスされた場合も考慮して、存在チェックをした後、値を取得します。
if (navigator != null && navigator.geolocation != null) {
navigator.geolocation.watchPosition(onLocationChanged);
}
緯度・経度の取得には、どうやら2種類の関数があるようです。
各種デバイスの読み取り – iPhone 3G DevWiki参照。
今回は移動時の対応もするので、watchPositionを使用しました。
位置が変わるたびに発生するイベントのコールバック関数の中で、緯度・経度を取得し、適切な値であればその地点の住所を表示します。
lat = e.coords.latitude;
lng = e.coords.longitude;
ここまでで、こんなのが出来ました。
現在地の住所を表示します。もし良かったら、試してみてください!
※ 前回のサンプル同様、クリックした場所の住所も表示されます。
※ geolocationがサポートされてないブラウザの場合は、クリックした場所の住所表示のみになります。
iPhone GPS Sample
■参考サイト
各種デバイスの読み取り – iPhone 3G DevWiki
関連記事
- iPhone OS 3.0のSafariでGPS機能を使ったWeb Applicationを作る!(iPhoneでテスト編) (0.500)
- iPhone OS 3.0のSafariでGPS機能を使ったWeb Applicationを作る!(google編) (0.448)
- iPhone OS 3.0のSafariでGPS機能を使ったWeb Applicationを作る!(完成編) (0.448)
- iPhone OS 3.0のSafariでGPS機能を使ったWeb Applicationを作る!(UI編) (0.241)
- iPhone OS 3.0のSafariでGPS機能を使ったWeb Applicationを作る!(履歴をMap表示編) (0.241)