Home » 2014 » Октомври » 28 » Урок №4 Геолокация в HTML5
4:22 AM
Урок №4 Геолокация в HTML5

Локализиране на потребитея

Приложението за геолокация в HTML5 се използва за да извлечете данни за местоположението на потребителя.

Понеже това нарушава правата на потребителите, позицията не е достъпна докато потребител не я одобри.


Поддържащи браузъри

Internet Explorer Firefox Opera Google Chrome Safari

Internet Explorer 9+, Firefox, Chrome, Safari и Opera поддържат геолокация.

Note: Геолокацията е много по-ефективна при устройства с GPS, като телефони и др..


Употреба на геолокация в HTML5

Използвайте метода getCurrentPosition() за да стигнете до местоположението на потребителя.

Това е прост пример за геолокация който връща Х и Y (координатите в ширина и височина) на потребителя.

Пример

<script>
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 + 
    "<br>Longitude: " + position.coords.longitude; 
}
</script>
 

Обяснение на примера:

  • Проверява дали геолокацията се поддържа
  • Ако се поддържа изпълнява метода getCurrentPosition(), ако не се поддържа ще уведоми потребителя със съобщение.
  • Ако метода getCurrentPosition() се изпълни успешно, той връща координатите под формата на обект в функцията зададена в параметъра (showPosition).
  • Функцията showPosition() приема координатите в ширина и дължина X и Y.

Горния пример е толкова проста геолокация, яе не може да обработва грешки.


Обработка на грешки и Откази

Вторият параметър на метода 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 - Не е възможно да се покаже настоящото местоположение.
  • Timeout - Времето на операцията е просрочено.
 

Изобразяване на резултата в карта

За да изобразите резултата в карта, трябва да имате достъп до такъв софтуер, а именно софтуер който може да използва координатите X и Y (височина и ширина) като Google Maps например:

Пример

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 = "<img src='"+img_url+"'>";
}
 

В горният пример използваме върнати данни за координатите X и Y (височина и ширина) за да покажем локацията в Google Maps (използвайки статично изображение)

 

Натиснете този бутон за да видите местоположението си:

 
 
По този начин използваме скрипта за интерактивно визуализиране на картата с маркер,приближаване и опции за влачене (marker,zoom и drag options)

Специфична информация относно локацията

Този пример демонстрира как се използва геолокацията за да видите местоположението на потребител. Въпреки това, геолокацията е много полезна също и за показване на специфична информация.

Примери:

  • Up-to-date локална информация
  • Показва точките с достъпен интернет около потребителя
  • Turn-by-turn навигации (GPS)
 

Връщане на заявки с
метода getCurrentPosition() 

Метода getCurrentPosition() връща обект ако е успешен. Свойствата за височина, ширина и точност винаги се връщат. Другите свойства които са показани в тази таблица се връщат ако са достъпни.

Свойство Описание
coords.latitude Ширината в десетично число
coords.longitude Височината в десетично число
coords.accuracy Точността на местоположението
coords.altitude Надморската височина в метри над средното морско ниво
coords.altitudeAccuracy Точността на надморската височина на позицията
coords.heading Заглавието като градус по часовниковата стрелка - посока Север
coords.speed Скоростта в метри/секунда
timestamp Датата и часа на отговора
 

Обекти при геолокация - Други
интересни методи

watchPosition() - Връща заявка на сегашното местоположение на потребителя и продължава да обновява позицията когато потребителя се движи (също като GPS в кола).

clearWatch() - Спира метода watchPosition().

Този пример показва как се ползва метода watchPosition(). Трябва ви точно GPS устройство за да го изпробвате (като телефон например):

Пример

<script>
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 + 
    "<br>Longitude: " + position.coords.longitude; 
}
</script>

 
Категория: HTML5 | Преглеждания: 1150 | Довавено от: knif3r | Оценка: 5.0 | Гласували :1 | Tags: HTML5

Ако урокът ви е харесал можете да го споделите с вашите приятели във фейсбук :
Всички коментари: 0
avatar
Социални Мрежи

PC-Tools.inc | Copyright © 2014-2015
DMCA.com Protection Status Mozilla Firefox+4.0 Chrome+13.2 Opera+5.6 IE+7.9 Safari+2.0