SlideShare une entreprise Scribd logo
1  sur  14
ГЕОЛОКАЦИЯ В 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

Contenu connexe

Similaire à Geolocation

Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15MoscowJS
 
Mihail davidov js-ajax
Mihail davidov js-ajaxMihail davidov js-ajax
Mihail davidov js-ajaxYandex
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полнойОмские ИТ-субботники
 
Михаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxМихаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxYandex
 
Особенности разработки API / Всеволод Шмыров (Яндекс)
Особенности разработки API / Всеволод Шмыров (Яндекс)Особенности разработки API / Всеволод Шмыров (Яндекс)
Особенности разработки API / Всеволод Шмыров (Яндекс)Ontico
 
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from JqueryMagento Dev
 
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...it-people
 
Meet Magento Belarus - Alexander Kaigorodov
Meet Magento Belarus - Alexander KaigorodovMeet Magento Belarus - Alexander Kaigorodov
Meet Magento Belarus - Alexander KaigorodovAmasty
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис РечкуновDevDay
 
Страх и ненависть в Event Bus
Страх и ненависть в Event BusСтрах и ненависть в Event Bus
Страх и ненависть в Event Bus0leGG
 
Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»DevDay
 
Offline first
Offline firstOffline first
Offline firstwtfil
 
Изоморфные Java script приложения с catberry.js
Изоморфные Java script приложения с catberry.jsИзоморфные Java script приложения с catberry.js
Изоморфные Java script приложения с catberry.jslugnsk
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервере2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервереYandex
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyRegn
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Ontico
 

Similaire à Geolocation (20)

Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
 
Mihail davidov js-ajax
Mihail davidov js-ajaxMihail davidov js-ajax
Mihail davidov js-ajax
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
 
Михаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxМихаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, Ajax
 
Особенности разработки API / Всеволод Шмыров (Яндекс)
Особенности разработки API / Всеволод Шмыров (Яндекс)Особенности разработки API / Всеволод Шмыров (Яндекс)
Особенности разработки API / Всеволод Шмыров (Яндекс)
 
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from Jquery
 
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
 
Meet Magento Belarus - Alexander Kaigorodov
Meet Magento Belarus - Alexander KaigorodovMeet Magento Belarus - Alexander Kaigorodov
Meet Magento Belarus - Alexander Kaigorodov
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
 
Performance optimisation in javascript
Performance optimisation in javascriptPerformance optimisation in javascript
Performance optimisation in javascript
 
Страх и ненависть в Event Bus
Страх и ненависть в Event BusСтрах и ненависть в Event Bus
Страх и ненависть в Event Bus
 
Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»
 
Offline first
Offline firstOffline first
Offline first
 
Изоморфные Java script приложения с catberry.js
Изоморфные Java script приложения с catberry.jsИзоморфные Java script приложения с catberry.js
Изоморфные Java script приложения с catberry.js
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервере2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервере
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
 

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