Birinin yerini 50m içinde belirlemem gerek. navigator.location.watchPostion()
kullanmalı mıyım yoksa tekrar getCurrentPostion()
numaralı telefonu arayayım mı diye merak ediyorum. watchPostion()
, istediğimi yapmak için uygun W3C API'sıdır, ancak pratik olarak, aşırı bir şekilde görünüyor. İşte watchPosition() vs getCurrentPosition() ile setTimeout
var map = null;
var marker = null;
var layer = null;
function locFn(pos) {
var lat = pos.coords.latitude;
var lon = pos.coords.longitude;
$("#hlat").val(lat);
$("#hlong").val(lon);
document.getElementById("lnkMap").href =
"http://maps.google.com/[email protected]" + lat
+ "," + lon + "&z=18&t=h";
var point = new GLatLng(lat, lon);
if (pos.coords.accuracy < 100) {
map.setCenter(point, 18);
if (marker != null) {
marker.setLatLng(point);
}
else {
var ico = new GIcon();
ico.image = "img/Blue-Dot.png";
ico.iconSize = new GSize(22, 22);
ico.iconAnchor = new GPoint(11, 11);
marker = new GMarker(point, { icon: ico });
layer = map.addOverlay(marker, { title: "You are here." });
}
}
else if (pos.coords.accuracy > 2000) {
if (marker != null) { marker.setLatLng(point); }
map.setCenter(point, 15);
}
else if (pos.coords.accuracy > 900) {
if (marker != null) { marker.setLatLng(point); }
map.setCenter(point, 16);
}
else if (pos.coords.accuracy > 100) {
if (marker != null) { marker.setLatLng(point); }
map.setCenter(point, 17);
}
}
function locFail() {
//alert("Failed to retrieve location.");
}
var watchID = null;
function processPoints() {
map = new GMap2(document.getElementById("map_canvas"),
{ mapTypes: [G_HYBRID_MAP] });
try {
watchID = navigator.geolocation.watchPosition(locFn, locFail,
{ enableHighAccuracy: true });
}
catch(err) { /* desktop?*/ }
}
$(function(){processPoints();});
ben watchPostion()
sonuçta (bir süre sonra) daha doğru yol gibi görünüyor fark ettik, ama pozisyon o kadar hızlı bir sürü neden olduğu değişiklikleri merak ediyorum Harita tuvalime yüklenen şey, yakında güncel olmayan sabit http istekleri ile gelen yenileriyle değiştirilir. watchPosition()
'u kullandığımda, sayfanın yüklenmesinden önce biraz zaman alır.
Çözümünüzün tam HTML + Javascript'inin bir örneğini gönderebilmenin herhangi bir yolu var mı? Dinleyici ve enableContinuousZoom() çağrıları dahil mi? GMap2'ye aşina değilim ve bu yüzden mühendisliği tersine çevirmek zorundayım ... Ama bir gün ayakkabımı başka birisine kurtarabilirim. Bir gün ... – ftrotter
Sam'e cevap verdiğim yorumu kontrol edin. – devlord
Belgelere bakıldığında, GetCurrentPosition (ASAP başarı işleyicisini çalıştıran) ve WatchPosition (kullanıcının tüm sayfada çalışacağı şekilde tasarlanan) uçları arasında eksik bir şey var gibi görünüyor. GetCurrentPosition çağrısında bu doğruluğu ya da zaman aşımı için bekleyen bir 'doğruluk eşiği' seçeneğini isterdim. Bunu daha önce hiç kimse bunu WatchPosition kullanarak oluşturmadıysa, şimdi bunu yapacağım. –