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
- Başarı durumunda ne yapılacak
- Hata durumunda ne yapılacak
- GeoLocation seçenekleri
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 :
- altitude
- altitudeAccuracy
- heading
- speed (m/sn)
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);
}
}