html5 geolocation api

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

Upload: -

Post on 28-Nov-2014

4.184 views

Category:

Technology


5 download

DESCRIPTION

Presentation from HTML5 Camp, UXnext for designers, developers and UX professionals

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

?