HTML5+-+Геолокација

//Претходно : //Аудио // Следно: //Влечи и Остави // Почетoк: // HTML5 Tуторијал

**Лоцирај ја позицијата на корисникот**
HTML5 геолокацискиот API се користи за да се добие географската позиција на корисникот. Ова може да ја наруши приватноста на корисникот, позицијата е недостапна се додека корисникот не одобри.

HTML5 – Користење на геолокација
Се користи методот getCurrentPosition за да се добие позицијата на корисникот. Примерот е едноставен. Геолокациски пример кој враќа вредност на географската ширина и должина од позицијата на корисникот.

__Пример__
var x = document.getElementById("demo");  function getLocation   {   if (navigator.geolocation)   {   navigator.geolocation.getCurrentPosition(showPosition);   }   else{x.innerHTML = "Geolocation is not supported by this browser.";}   }   function showPosition(position)   {   x.innerHTML = "Latitude: " + position.coords.latitude +   " Longitude: " + position.coords.longitude;   }

Објаснување на примерот
Претходниот пример е основна Геолокациска скрипта, без грешки.
 * Провери дали Геолокацијата е поддржана.
 * Ако е поддржана, работи на getCurrentPosition методот. Ако нe e покажи порака за корисникот.
 * Ако методот getCurrentPosition е успешен, враќа координати до функцијата специфицирана во параметарот showPosition.
 * Функцијата showPosition ги прикажува географската ширина и должина.

Справување со грешки и отфрлања
Вториот параметар од методот getCurrentPosition се користи за справување со грешки. Специфицира функција која работи доколку неуспее да се земе локацијата на корисникот.

Пример
function showError(error)  {   switch(error.code)   {   case error.PERMISSION_DENIED:   x.innerHTML = "User denied the request for Geolocation." break;  case error.POSITION_UNAVAILABLE:   x.innerHTML = "Location information is unavailable." break;  case error.TIMEOUT:   x.innerHTML = "The request to get user location timed out." break;  case error.UNKNOWN_ERROR:   x.innerHTML = "An unknown error occurred." break;  }   } Кодови за грешки:
 * Permission denied – корисникот не дозволува Геолокација;
 * Position unavailable – Не е возможно да се добие моменталната локација;
 * Тimeout – истече времето за операцијата.

Покажување на резултати од мапа
За да се прикажат резултатите во мапа, мора да се има пристап до мапа сервис кој користи географска ширина и должина.

__Пример__
function showPosition(position)  {   var latlon = position.coords.latitude + "," + position.coords.longitude;   var img_url = "http://maps.googleapis.com/maps/api/staticmap?center="   +latlon+"&zoom=14&size=400x300&sensor=false";   document.getElementById("mapholder").innerHTML = "";   }  Во овој пример се користат вредностите вратени за географска ширина и должина за да се покаже локацијата во Google Maps.

Специфични информации за локацијата
Претходните примери покажаа како да се прикаже позицијата на корисникот. Но, Геолокацијата е исто така многу корисна за други специфични информации:
 * Up-to-date локални информации;
 * Покажува точки од интерес блиску до корисникот;
 * Навигација (GPS).

Методот getCurrentPosition – Враќање на податоци
Методот getCurrentPosition враќа податоци само ако се успешни. Географската ширина, должина и точност секогаш се враќаат. Останатите опции прикажани во табелата се враќаат само ако се успешни:
 * **Опција** ||  **Опис**  ||
 * coords.latitude || Географската ширина е децимален број ||
 * coords.longitude || Географската должина е децимален број ||
 * coords.accuracy || Точноста на позицијата ||
 * coords.altitude || Висината во метри над средното ниво на морето ||
 * coords.altitudeAccuracy || Точноста на висината на позицијата ||
 * coords.heading || Движење на степените како стрелките на часовникот од Север ||
 * coords.speed || Брзината на метри во секунда ||
 * Timestamp || Дата/час на одговорот ||

Геолокациски објекти – други интересни методи
watchPosition – Jа враќа моменталната позиција од корисникот и продолжува да враќа нови позиции како што корисникот се движи (GPS во кола). clearWatch – Го запира методот watchPosition. Следниот пример го покажува watchPosition методот. Потребен е GPS за да се направи овој тест.

__Пример__
var x = document.getElementById("demo");  function getLocation   {   if (navigator.geolocation)   {   navigator.geolocation.watchPosition(showPosition);   }   else{x.innerHTML = "Geolocation is not supported by this browser.";}   }   function showPosition(position)   {   x.innerHTML = "Latitude: " + position.coords.latitude +   " Longitude: " + position.coords.longitude;   }

//Претходно:// Аудио // Следно: // Влечи и Остави // Почеток: // HTML5 Tуторијал