Top Banner
HTML5 Geolocation API Никита Лукьянец Департамент стратегических технологий Microsoft [email protected] @nikiluk, Twitter
29

HTML5 Geolocation API

Nov 28, 2014

Download

Technology

Presentation from HTML5 Camp, UXnext for designers, developers and UX professionals
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: HTML5 Geolocation API

HTML5 Geolocation API

Никита Лукьянец

Департамент стратегических технологий [email protected]@nikiluk, Twitter

Page 2: HTML5 Geolocation API

О чем пойдёт речь?

• К чему нам HTML5• Что значит “локально”• Use Cases• Пару простых примеров

Page 3: HTML5 Geolocation API

семантика

l.storage, l.db

геолокация

Page 4: HTML5 Geolocation API
Page 5: HTML5 Geolocation API

геолокация

Page 6: HTML5 Geolocation API

Что значит локально ?

Page 7: HTML5 Geolocation API

Локация: Контекст и Релевантность

Page 8: HTML5 Geolocation API

Что определяет местность ?

Page 9: HTML5 Geolocation API

Что определяет местность?

Киев | Kyiv | Київ | Kiew

Page 10: HTML5 Geolocation API

Что определяет местность?

Page 11: HTML5 Geolocation API

Что определяет местность?

Широта: 50° 25' N

Долгота: 30° 30' E

Page 12: HTML5 Geolocation API

C чего начать?

Page 13: HTML5 Geolocation API

2 базовых метода:

1. IP

2. Триангуляция– GPS– Wi-Fi– Вышка

Page 14: HTML5 Geolocation API

IP геолокация

Достоинства Недостатки

• Широкая доступность• Определение: server-side

• Точность на уровне города• SL <= 85%• Дорого

Page 15: HTML5 Geolocation API

Поставщики:

MaxMind - http://www.maxmind.com

Quova - http://www.quova.com

IPligence - http://www.ipilgence.com

IP2Location - http://www.ip2location.com

Page 16: HTML5 Geolocation API

Триангуляция

• WiFi ~ 20 м• GPS ~ 10 м• Вышка сотовой связи ~ 1 км

Page 17: HTML5 Geolocation API

Короткий ответ:

Гибрид

Page 18: HTML5 Geolocation API

W3C Geolocation API

navigator.geolocation.getCurrentPosition(function(pos){//show map at (pos.coords.latitude, pos.coords.longitude)});

Page 19: HTML5 Geolocation API

Пример№1

http://lukianets.com/uxnext/helloworld.html

Page 20: HTML5 Geolocation API

W3C Geolocation API

Latest Published Version: http://www.w3.org/TR/geolocation-API/

Latest Editor's Draft: http://dev.w3.org/geo/api/spec-source.html

Page 21: HTML5 Geolocation API

Объекты Position и Coordinates

interface Position {readonly attribute Coordinates coords;readonly attribute DOMTimeStamp timestamp;};interface Coordinates {readonly attribute double latitude;readonly attribute double longitude;readonly attribute double altitude;readonly attribute double accuracy;readonly attribute double altitudeAccuracy;readonly attribute double heading;readonly attribute double speed;};

Page 22: HTML5 Geolocation API

+ callback

function showMap(pos) {//show map at pos.coords.latitude, pos.coords.longitude}function showError(err) {alert(err.message + ‘, ’ + err.code);}navigator.geolocation.getCurrentPosition(showMap, showError);

Page 23: HTML5 Geolocation API

Пример№2

http://lukianets.com/uxnext/bing.html

Page 24: HTML5 Geolocation API

+ Объект ошибки локации

interface PositionError {const unsigned short UNKNOWN_ERROR = 0;const unsigned short PERMISSION_DENIED = 1;const unsigned short POSITION_UNAVAILABLE = 2;const unsigned short TIMEOUT = 3;readonly unsigned short code;readonly DOMString message;};

Page 25: HTML5 Geolocation API

+ Опции

interface PositionOptions {attribute boolean enableHighAccuracy;attribute long timeout;attribute long maximumAge;};

Page 26: HTML5 Geolocation API

Всё вместе

function showMap(pos) {//show map at pos.coords.latitude, pos.coords.longitude}function showError(err) {alert(err.message + ‘, ’ + err.code);}navigator.geolocation.getCurrentPosition(showMap, showError,{enableHighAccuracy:true, maximumAge:300000, timeout:0});

Page 27: HTML5 Geolocation API

Слежение!

function moveMap(pos) {//update map to pos.coords.latitude, pos.coords.longitude}function showError(err) {alert(err.message + ‘, ’ + err.code);}// Track location with periodic updateswatchId = navigator.geolocation.watchPosition(moveMap, showError);function stopTracking() {navigator.geolocation.clearWatch(watchId);}

Page 28: HTML5 Geolocation API

Резюме

• Геолокация = релевантность• Гибридное решение может быть дешевле• HTML5 => мобильный веб

Page 29: HTML5 Geolocation API

Никита Лукьянец

[email protected]/nikiluk

?