久々に更新FireFox3.5の位置情報を使ってみた
FireFox3.5には位置情報を取得できる機能がついたようで早速使ってみた。
下は、位置情報が使えるか判定し、位置情報を取得して、gme_map(googoleMAPのオブジェクト名をgme_map)のオブジェクトのsetCenterを呼び出してGoogleMAPの表示を変更する。
http://www.hi-ho.ne.jp/shin-ohno/WI/MAP1.htm
ポイントは、getCurrentPosition(function(position)では、position.coords.latitude(緯度)とposition.coords.longitude(経度)に10進数形式(例:35.12345)で戻ってくる。
コードは
if (navigator.geolocation)
{
try{
navigator.geolocation.getCurrentPosition(
function(position) {
gme_map.setCenter(new GLatLng(position.coords.latitude, position.coords.longitude), 12);
}
,function(e){}
);
}catch(e){}
);
}
else
{
alert("現在のブラウザでは、位置情報が取得できませんでした。");
}
精度は、場所によっても違ってくるでしょうが、無線LANのアクセスポイントを使用しない状態で、直線約4Kmずれていましたが、最初に表示される地図の位置がぜんぜん違う場所よりかよいかもしれません。
追伸
IrameでのURLの指定について本では、よく
document.IWILLMAP.location.href = "http://XXX";
のように使われていますが
これは、IEやChromeではOKですが
FireFoxは
document.getElementsByName('IWILLMAP')[0].src = "http://XXX";
と書かないと動きません。
このコードは、IEやChromeでも動くのでこれからは、こちらで指定しようっと