私は、モバイルユーザーのジオロケーションデータの取得に依存するWebサイトを開発しています。私はそれを次のような典型的な方法で行っています:
function initialize() {
if(window.google && google.gears) {
var geo = google.gears.factory.create('beta.geolocation');
geo.getCurrentPosition(useLocation, errorOnLocate);
}
else if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(useLocation, errorOnLocate);
}
else {
alert("no geo found");
}
}
function errorOnLocate(message)
{
alert(message);
zoomTo(-34.397, 150.644);
}
これは、ジオロケーションメソッドの順序を切り替えても、errorOnLocate関数の[objectPositionError]で常に失敗します。
これは、Android 2.1を搭載したHTCHeroで、組み込みのブラウザを使用しています。GPSがオンになっていて、ウェブサイトで現在地を表示できるようにブラウザに指示しました。電話に付属しているグーグルマップネイティブアプリケーションの「場所」機能は私の場所をうまく拾います
さらに、パーソナルコンピュータでFireFox 3.5を使用して自分のサイトにアクセスすると、現在地が正しく検出されます(ipデータポイントとapデータポイントの組み合わせを使用していると思います)。いずれにせよ、同じjavascriptを使用します。
編集:これはブラウザのhtml / jsであり、ネイティブアプリではありません。また、正確なエラーメッセージは「最後のロケーションプロバイダーが無効になりました」です。