SlideShare a Scribd company logo
ГЕОЛОКАЦИЯ В HTML5
ИСТОРИЯ HTML5




                2
ОСНОВЫ ГЕОЛОКАЦИИ
•   IP-локация
•   Триангуляция:
o Wi-Fi
o Вышки сотовой связи
o GPS




                        3
IP ЛОКАЦИЯ
• Преимущества
•   Имеет широкое применение
•   Выполняется на стороне сервера

• Недостатки
•   Низкая точность
•   Высокая стоимость




                                     4
GPS
• Преимущества
•   Высокая точность
•   Высокоэффективная в сельской местности

• Недостатки
•   Затруднена работа в помещении
•   Затруднена работа в многоэтажной застройке
•   Длительное получение резултатов




                                                 5
WI-FI
• Приемущества
•   Высокая точность
•   Работа внутри помещений
•   Высокая скорость

• Недостатки
•   Недостаточная точность в сельской местности




                                                  6
СОТОВАЯ СВЯЗЬ
• Преимущества
•   Хорошая точность
•   Работа внутри помещениий
•   Высокая скорость

• Недостатки
•   Требуется доступ к устройству с мобильной связью
•   Низкая точность в сельской местности




                                                       7
ПОДДЕРЖКА GEOLOCATION API




                            8
ЗАЩИТА ЛИЧНОЙ ИНФОРМАЦИИ




                           9
ОСНОВНЫЕ ФУНКЦИИ API
•   Проверка поддержки - navigator.geolocation
•   Запрос позиции – void getCurrentPosition(successCallBack,
    [errorCallBack], [Options])

• Аттрибуты
•   enableHighAccuracy
•   timeout
•   maximumAge


getCurrentPosition(UpdatePosition, HandleError, {timeout:10000});
function UpdatePosition(position);
function HandleError(error);




                                                                    10
ОБРАБОТКА ОШИБОК
•   Функция обработки ошибок принимает параметр error. Возможные значения
    параметра:
•   UNKNOW_ERROR (код ошибки 0)
•   PERMISSION_DENIED (код ошибки 1)
•   POSITION_UNAVAILABLE (код ошибки 2)
•   TIMEOUT (код ошибки 3)




                                                                        11
ПРИМЕР КОДА
function start()
{
           if(navigator.geolocation)
           {
                      navigator.geolocation.getCurrentPosition(UpdateLocation, ErrorHandle)
           }
           else
           {
                      alert('You browser do not support Geolocation API!');
           }
}

function UpdateLocation(position)
{
           document.getElementById('longitude').innerHTML = position.coords.longitude;
           document.getElementById('latitude').innerHTML = position.coords.latitude;
           document.getElementById('accuracy').innerHTML = position.coords.accuracy;
}

function ErrorHandle(error)
{
           switch(error.code)
           {
           case 0:
                       document.getElementById('error').innerHTML   = 'Unknown error';
                       break;
           case 1:
                       document.getElementById('error').innerHTML   = 'Denied by user';
                       break;
           case 2:
                       document.getElementById('error').innerHTML   = 'Cannot retrive position';
                       break;
           case 3:
                       document.getElementById('error').innerHTML   = 'Timeout';
                       break;
           }
}                                                                                                  12
ПРИМЕР РАБОТЫ




                13
ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ
•   http://evolutionofweb.appspot.com
•   http://caniuse.com
•   http://maps.yandex.ru
•   Лабберс П., Олберс Б., Салим Ф. HTML5 для профессионалов




                                                               14

More Related Content

PPS
Parliaros 32 glykes syntages
ODP
Ingles susan y laura
DOC
Soft tạo gif bằng photoshop
PDF
Microsoft office professional_2007
PDF
Incredible visual illusions
PDF
Epibiosi oikonomika
PPSX
Интерактивность в Html5
PPSX
создание HTML игр на элементе canvas
Parliaros 32 glykes syntages
Ingles susan y laura
Soft tạo gif bằng photoshop
Microsoft office professional_2007
Incredible visual illusions
Epibiosi oikonomika
Интерактивность в Html5
создание HTML игр на элементе canvas
Ad

Geolocation

  • 3. ОСНОВЫ ГЕОЛОКАЦИИ • IP-локация • Триангуляция: o Wi-Fi o Вышки сотовой связи o GPS 3
  • 4. IP ЛОКАЦИЯ • Преимущества • Имеет широкое применение • Выполняется на стороне сервера • Недостатки • Низкая точность • Высокая стоимость 4
  • 5. GPS • Преимущества • Высокая точность • Высокоэффективная в сельской местности • Недостатки • Затруднена работа в помещении • Затруднена работа в многоэтажной застройке • Длительное получение резултатов 5
  • 6. WI-FI • Приемущества • Высокая точность • Работа внутри помещений • Высокая скорость • Недостатки • Недостаточная точность в сельской местности 6
  • 7. СОТОВАЯ СВЯЗЬ • Преимущества • Хорошая точность • Работа внутри помещениий • Высокая скорость • Недостатки • Требуется доступ к устройству с мобильной связью • Низкая точность в сельской местности 7
  • 10. ОСНОВНЫЕ ФУНКЦИИ API • Проверка поддержки - navigator.geolocation • Запрос позиции – void getCurrentPosition(successCallBack, [errorCallBack], [Options]) • Аттрибуты • enableHighAccuracy • timeout • maximumAge getCurrentPosition(UpdatePosition, HandleError, {timeout:10000}); function UpdatePosition(position); function HandleError(error); 10
  • 11. ОБРАБОТКА ОШИБОК • Функция обработки ошибок принимает параметр error. Возможные значения параметра: • UNKNOW_ERROR (код ошибки 0) • PERMISSION_DENIED (код ошибки 1) • POSITION_UNAVAILABLE (код ошибки 2) • TIMEOUT (код ошибки 3) 11
  • 12. ПРИМЕР КОДА function start() { if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(UpdateLocation, ErrorHandle) } else { alert('You browser do not support Geolocation API!'); } } function UpdateLocation(position) { document.getElementById('longitude').innerHTML = position.coords.longitude; document.getElementById('latitude').innerHTML = position.coords.latitude; document.getElementById('accuracy').innerHTML = position.coords.accuracy; } function ErrorHandle(error) { switch(error.code) { case 0: document.getElementById('error').innerHTML = 'Unknown error'; break; case 1: document.getElementById('error').innerHTML = 'Denied by user'; break; case 2: document.getElementById('error').innerHTML = 'Cannot retrive position'; break; case 3: document.getElementById('error').innerHTML = 'Timeout'; break; } } 12
  • 14. ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ • http://evolutionofweb.appspot.com • http://caniuse.com • http://maps.yandex.ru • Лабберс П., Олберс Б., Салим Ф. HTML5 для профессионалов 14