http://mikaduki.info/api/1823/
http://help.opera.com/Windows/10.61/ja/geolocation.html#details
◆Geolocation機能は、ユーザが現在地球上のどの位置にいるかを特定する機能
Geolocationは、ユーザの位置情報を教えてくれるAPI
◆Geolocation仕組み
無線LAN、携帯電話基地局、GPS、IPアドレスなどから送信されたデータを取得
◆Geolocationオブジェクト取得
navigator.geolocaion --> Andoroid端末では対応してない場合がるので、googleのWEB拡張設定を使って値を取得
◆Andoroid用option設定は、
・GPSを使用して正確さを増やす
・データ取得を待つミリ秒
・キャッシュを保持するミリ秒
var option = {enableHighAcuuracy:true, timeout:10000, maximumAge:0};
◆データ取得については、
現在の位置を一度きりのデータを取得する方法と
一定間隔おきにデータを取得する方法がある
・geolocation.getCurrentPosition($成功時コールバック関数、$失敗時コールバック関数、$オプション)
・geolocation.watchPosition($成功時コールバック関数、$失敗時コールバック関数、$オプション)
※clearWatch --> watchPositionでの定期的な取得をクリア
◆positionのcoordsプロパティ
緯度
経度
高度
方向
スピード
緯度経度の精度
高度の精度
・position.coords.latitude
・position.coords.longitude
・position.coords.altitude
・position.coords.heading
・position.coords.speed
・position.coords.accuracy
・position.coords.altitudeAccuracy
◆errorプロパティ
geolocation情報取得に失敗した場合のエラーコード、メッセージ
・error.code
・error.message
------------------------------------------------------------------
<div id="latitude"></div>
<div id="longitude"></div>
<div id="altitude"></div>
<div id="speed"></div>
<div id="accuracy"></div>
<div id="heading"></div>
<div id="altitudeAccuracy"></div>
<script type="text/javascript">
(function (){
debugger;
var geo = window.navigator.geolocation;
// geolocationオブジェクトが使えない場合、
// googleのWEB拡張設定を使って値を取得
if(geo === undefined){
geo = google.gears.factory.create('beta.geolocation');
}
// Android用option設定
// GPSを利用して制度を増やすか、データの取得を待つミリ秒、キャッシュ保持時間(ミリ秒)、
var option = {enableHighAccuracy:true, timeout:10000, maximumAge:0};
// ユーザの位置を一度きりで取得
geo.getCurrentPosition(success, fail, option);
// 一定間隔おきに位置情報データ取得
geo.watchPosition(success, fail, option);
function success(position){
alert('geolocation情報取得成功');
$('latitude').innerHTML = "緯度:" + position.coords.latitude;
$('longitude').innerHTML = "経度:" + position.coords.longitude;
$('heading').innerHTML = "方向:" + position.coords.heading;
$('altitude').innerHTML = "高度:" + position.coords.altitude;
$('speed').innerHTML = "速度:" + position.coords.speed;
$('accuracy').innerHTML = "緯度緯度の精度:" + position.coords.accuracy;
$('altitudeAccuracy').innerHTML = "高度の精度:" + position.coords.altitudeAccuracy;
}
function $(id){
return document.getElementById(id);
}
function fail(err){
alert('geolocation情報取得失敗 ' + err.code + " : " + err.message);
}
})();
</script>
댓글 없음:
댓글 쓰기