HTML5

8. Bölüm : HTML5 Geolocation API

GeoLocation API

Tarayıcının GeoLocation desteğini test etmek için :

if (navigator.geolocation) {
   document.getElementById('divCoordinates').innerHTML = "Tarayıcınız HTML5 GeoLocation API'yi destekliyor.";
} else {
   document.getElementById('divCoordinates').innerHTML = "Tarayıcınız HTML5 GeoLocation API'yi desteklemiyor.";
}

Asenkron GeoLocation API metodlarının parametreleri

function onPosition(position) {
   document.getElementById('divCoordinates').innerHTML =
   'Enlem : ' + position.coords.latitude +
   ' Boylam : ' + position.coords.longitude +
   ' Hassaslık : ' + position.coords.accuracy;
}

function onError(error) {
   if (error.code == 0) {
      msg = "Yer bilgisi alınamıyor.";
   } else if (error.code == 1) {
      msg = "Yer bilgisi alınamıyor. (erişim izni yok)";
   } else if (error.code == 2) {
      msg = "Yer bilgisi alınamıyor. (pozisyon erişilebilir değil)";
   } else if (error.code == 3) {
      msg = "Yer bilgisi alınamıyor. (zaman aşımı)";
   }
}

var optionalOptions = {
   enableHighAccuracy: false,
   timeout: 3000, // millisecs
   maximumAge: 10000 // cache location for maximumAge millisecs.
};
Tarayıcıların HTML5 GeoLocation API erişim uyarı mesajı
navigator.getCurrentPosition metodu
navigator.geolocation.getCurrentPosition(onPosition, onError, optionalOptions);
navigator.watchPosition metodu

coords nesnesinden alınabilecek değerler :

var optionalOptions = {
   enableHighAccuracy: true
};

watchId = navigator.geolocation.watchPosition(
   function (position) {
      document.getElementById('divSpeed').innerHTML = 'Hız : ' + (position.coords.speed * 60 * 60) / 1000 + ' km/h' +
      ' Yön : ' + position.coords.heading + ' °' +
      ' İrtifa : ' + position.coords.altitude + ' m';
   },
   onError, optionalOptions);
Hareket halinde iken GeoLocation API watchPosition sonuçları
navigator.clearWatch metodu
function clearWatch() {
   if (watchId !== null && watchId !== 0) {
      navigator.geolocation.clearWatch(watchId);
   }
}