私の問題: 正確な結果を得るには、モバイルブラウザ(iPhoneでテスト)から2ページの読み込みが必要です。最初の負荷は0.5マイル以上離れ、2番目の負荷は非常に近くなります。
私の質問: 最初のロードで正確な位置を取得するには何をする必要がありますか?
追加情報:
http://www.w3.org/TR/geolocation-API/を読み、enableHighAccuracyでwatchPositionを利用しています。また、maximumAge:0を使用していて、タイムアウトが設定されていません。
http://www.w3.org/TR/geolocation-API/から
maximumAgeが0に設定されている場合、実装はすぐに新しい位置オブジェクトの取得を試みる必要があります
タイムアウト属性に使用されるデフォルト値はInfinityです。
私のコードは以下のとおりです
// Try HTML5 geolocation
if(navigator.geolocation) {
// updated this with watchPosition rather than getCurrentPosition
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
var infowindow = new google.maps.InfoWindow({
map: map,
position: pos,
content: 'Location found using HTML5.'
});
map.setCenter(pos);
}, function() {
handleNoGeolocation(true);
},
// enable high accuracy
// {maximumAge:100, timeout:5000, enableHighAccuracy: true}
//
{maximumAge:0, enableHighAccuracy: true}
);
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: The Geolocation service failed.';
} else {
var content = 'Error: Your browser doesn\'t support geolocation.';
}