SlideShare a Scribd company logo
1 of 54
Download to read offline
W3C Geolocation API
      Making Websites Location-aware




Wednesday, April 1, 2009
me
                    • Director of Consumer Products at Skyhook
                      Wireless
                    • Founded Locationaware.org which
                      eventually became W3C Geolocation API
                      Working Group
                    • Follow @rsarver to get the SlideShare link
                      for slides after I post them


Wednesday, April 1, 2009
practical tools to allow you to
                   add location capabilities to
                       your website today



Wednesday, April 1, 2009
What is Geolocation?

                           History of Geolocation on the web

                           Current State of the Union

                           Location Technologies

                           Code Examples

                           Questions


Wednesday, April 1, 2009
location = context



Wednesday, April 1, 2009
higher
                           context =
                                     relevancy


Wednesday, April 1, 2009
higher
                       location =
                                  relevancy


Wednesday, April 1, 2009
location comes in
                             many flavors


Wednesday, April 1, 2009
37.78467, -122.40162



Wednesday, April 1, 2009
Wednesday, April 1, 2009
747 Howard St, San
                          Francisco, CA


Wednesday, April 1, 2009
4th St & Howard St



Wednesday, April 1, 2009
Soma



Wednesday, April 1, 2009
Pete’s Coffee



Wednesday, April 1, 2009
Business Search APIs
                    • Yahoo Local Search API
                    • Yelp API
                    • Localeze - sells business listing
                      information
                    • small businesses are tough, no db is
                      totally complete


Wednesday, April 1, 2009
how you display it
                 can be used as a way
                  of blurring location


Wednesday, April 1, 2009
Ryan checked into The
                        Mission


Wednesday, April 1, 2009
map markers can be
   misleading when dealing
      with user’s location




                           ... maybe use text instead
Wednesday, April 1, 2009
Wednesday, April 1, 2009
Wednesday, April 1, 2009
so, why should I use it?



Wednesday, April 1, 2009
Wednesday, April 1, 2009
HISTORY
                           a lot has changed in a year




Wednesday, April 1, 2009
Wednesday, April 1, 2009
locationaware.org


Wednesday, April 1, 2009
Google Gears


Wednesday, April 1, 2009
W3C Geolocation API

Wednesday, April 1, 2009
coalition of the willing




Wednesday, April 1, 2009
state of the union



http://www.flickr.com/photos/xrrr/2478140383/
Wednesday, April 1, 2009
2009 is the year of
                             location in the
                                Browser


Wednesday, April 1, 2009
• Geode Extension in Mozilla Labs.
                             Powered by Skyhook
                           • W3C Geolocation API support
                             natively in 3.1 (now called 3.5)

                           • Opera Labs release with W3C
                             Geolocation API support. Powered
                             by Skyhook


                           • Support in Chrome for Windows
                             and Android

Wednesday, April 1, 2009
http://bit.ly/mozilla-geode




     http://bit.ly/opera-geolocation




    http://google.com/chrome
Wednesday, April 1, 2009
Location Technologies



Wednesday, April 1, 2009
Two primary methods
                1. IP Geolocation
                2. Triangulation
                           • GPS
                           • Wi-Fi
                           • Cell Tower


Wednesday, April 1, 2009
IP Geolocation
          Pros
              • Widely available
              • Detection happens server-side
          Cons
              • Only accurate to the city-level
              • Only in the right state 85% of the time
              • Costly
              • Produces false positives
Wednesday, April 1, 2009
IP Geolocation
          Vendors

              • MaxMind - http://www.maxmind.com
                    • Has a free database - GeoLite City
              • Quova - http://www.quova.com
              • IPligence - http://www.ipilgence.com
              • IP2Location - http://www.ip2location.com


Wednesday, April 1, 2009
Triangulation
       GPS                                 10 m
       Wi-Fi                               20 m

       Cell Tower                     1000 m
Wednesday, April 1, 2009
GPS
          Pros
              • Accurate after it gets a fix
              • Highly accurate in rural area

          Cons
              • Doesn’t work indoors
              • Difficulty with Urban Canyons
              • Long Time to First Fix


Wednesday, April 1, 2009
Wi-Fi Triangulation




Wednesday, April 1, 2009
Wi-Fi Positioning (WPS)
          Pros
              • Accurate
              • Works indoors and in Urban Areas
              • Quick Time to First Fix
              • Software-only, leverages existing Wi-Fi

          Cons
              • Doesn’t work well in rural areas


Wednesday, April 1, 2009
• Cross-platform, cross-browser plugin for
                      adding geolocation to any website
                    • Locate a user down to their exact street
                      address with a few lines of javascript
                    • http://loki.com/how
                    • </plug>


Wednesday, April 1, 2009
Cell Triangulation
          Pros
              • Works where there is cell coverage (most
                areas)
              • Quick Time to First Fix
              • Software-only, leverages existing cellular
                radio

          Cons
              • Very inaccurate


Wednesday, April 1, 2009
short answer
                             hyrbid is the way




Wednesday, April 1, 2009
W3C Geolocation API

                           ... shut up and get to the code



Wednesday, April 1, 2009
Single shot lookup


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




Wednesday, April 1, 2009
Position &
                       Coordinates Objects
   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;
   };
Wednesday, April 1, 2009
Single shot lookup w/
                        callbacks
   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);




Wednesday, April 1, 2009
PositionError Object
   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;
   };




Wednesday, April 1, 2009
Single shot lookup w/
                   callbacks & options
   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});




Wednesday, April 1, 2009
PositionOptions

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




Wednesday, April 1, 2009
Single shot lookup w/
                     cached position
   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,
   {maximumAge:300000, timeout:0});




Wednesday, April 1, 2009
Periodic lookup w/
                                callbacks
   function moveMap(pos) {
        //update map to pos.coords.latitude, pos.coords.longitude
   }
   function showError(err) {
        alert(err.message + ‘, ’ + err.code);
   }


   // Track location with periodic updates
   watchId = navigator.geolocation.watchPosition(moveMap, showError);


   function stopTracking() {
        navigator.geolocation.clearWatch(watchId);
   }




Wednesday, April 1, 2009
Upcoming Geo Events
                                • Where 2.0
                                 San Jose, CA
                                 May 19th - 21st
                                • WhereCamp
                                 San Francisco, CA
                                 May 23rd - 24th



Wednesday, April 1, 2009
Questions?
                     tweet @rsarver with questions as well




Wednesday, April 1, 2009

More Related Content

What's hot

Effective API Governance: Lessons Learnt
Effective API Governance: Lessons LearntEffective API Governance: Lessons Learnt
Effective API Governance: Lessons LearntPronovix
 
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupMinimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupRandy Shoup
 
谁最有勇气-绘本
谁最有勇气-绘本谁最有勇气-绘本
谁最有勇气-绘本Lee Huey
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App EngineDocker, Inc.
 
Immutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and TerraformImmutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and TerraformMichael Peacock
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignNader Albert
 
GRASP – паттерны Объектно-Ориентированного Проектирования
GRASP – паттерны Объектно-Ориентированного ПроектированияGRASP – паттерны Объектно-Ориентированного Проектирования
GRASP – паттерны Объектно-Ориентированного ПроектированияAlexander Nemanov
 
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...Docker, Inc.
 
Indicadores para APIs
Indicadores para APIsIndicadores para APIs
Indicadores para APIsSensedia
 
Ddd reboot (english version)
Ddd reboot (english version)Ddd reboot (english version)
Ddd reboot (english version)Thomas Pierrain
 
Webinar: Postman 101 for Developers
Webinar: Postman 101 for DevelopersWebinar: Postman 101 for Developers
Webinar: Postman 101 for DevelopersPostman
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa흥래 김
 
PyBay23: Understanding LangChain Agents and Tools with Twilio (or with SMS)....
PyBay23:  Understanding LangChain Agents and Tools with Twilio (or with SMS)....PyBay23:  Understanding LangChain Agents and Tools with Twilio (or with SMS)....
PyBay23: Understanding LangChain Agents and Tools with Twilio (or with SMS)....Elizabeth (Lizzie) Siegle
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework IntroductionPekka Klärck
 
Onion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureOnion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureAttila Bertók
 

What's hot (20)

Effective API Governance: Lessons Learnt
Effective API Governance: Lessons LearntEffective API Governance: Lessons Learnt
Effective API Governance: Lessons Learnt
 
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupMinimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
 
谁最有勇气-绘本
谁最有勇气-绘本谁最有勇气-绘本
谁最有勇气-绘本
 
Golang Vs Rust
Golang Vs Rust Golang Vs Rust
Golang Vs Rust
 
Restful api
Restful apiRestful api
Restful api
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App Engine
 
Immutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and TerraformImmutable Infrastructure with Packer Ansible and Terraform
Immutable Infrastructure with Packer Ansible and Terraform
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Grafana vs Kibana
Grafana vs KibanaGrafana vs Kibana
Grafana vs Kibana
 
GRASP – паттерны Объектно-Ориентированного Проектирования
GRASP – паттерны Объектно-Ориентированного ПроектированияGRASP – паттерны Объектно-Ориентированного Проектирования
GRASP – паттерны Объектно-Ориентированного Проектирования
 
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
 
Indicadores para APIs
Indicadores para APIsIndicadores para APIs
Indicadores para APIs
 
Openshift argo cd_v1_2
Openshift argo cd_v1_2Openshift argo cd_v1_2
Openshift argo cd_v1_2
 
Ddd reboot (english version)
Ddd reboot (english version)Ddd reboot (english version)
Ddd reboot (english version)
 
Webinar: Postman 101 for Developers
Webinar: Postman 101 for DevelopersWebinar: Postman 101 for Developers
Webinar: Postman 101 for Developers
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa
 
Introduction to Robot Framework
Introduction to Robot FrameworkIntroduction to Robot Framework
Introduction to Robot Framework
 
PyBay23: Understanding LangChain Agents and Tools with Twilio (or with SMS)....
PyBay23:  Understanding LangChain Agents and Tools with Twilio (or with SMS)....PyBay23:  Understanding LangChain Agents and Tools with Twilio (or with SMS)....
PyBay23: Understanding LangChain Agents and Tools with Twilio (or with SMS)....
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
Onion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureOnion Architecture / Clean Architecture
Onion Architecture / Clean Architecture
 

Viewers also liked

Location, location, geolocation
Location, location, geolocationLocation, location, geolocation
Location, location, geolocationMax Wheeler
 
HTML5 Geolocation API
HTML5 Geolocation APIHTML5 Geolocation API
HTML5 Geolocation APIFilip Mares
 
Wireless Geolocation
Wireless GeolocationWireless Geolocation
Wireless GeolocationFatema Zohora
 
Conversion Matters présente : Les 4 bénéfices de la géolocalisation
Conversion Matters présente : Les 4 bénéfices de la géolocalisationConversion Matters présente : Les 4 bénéfices de la géolocalisation
Conversion Matters présente : Les 4 bénéfices de la géolocalisationKameleoon
 
Chek mate geolocation analyzer
Chek mate geolocation analyzerChek mate geolocation analyzer
Chek mate geolocation analyzerpriyal mistry
 
Lunch2.0 - Geolocation - July 2010
Lunch2.0 - Geolocation - July 2010Lunch2.0 - Geolocation - July 2010
Lunch2.0 - Geolocation - July 2010Jeff Schneidewind
 
Wireless fidelity (a.k.a Wi-Fi)
Wireless fidelity (a.k.a Wi-Fi)Wireless fidelity (a.k.a Wi-Fi)
Wireless fidelity (a.k.a Wi-Fi)Vineet Sansare
 
OpenSource for Entreprise
OpenSource for EntrepriseOpenSource for Entreprise
OpenSource for EntrepriseEric Fesler
 
Vehicular sensor netwks ppt
Vehicular sensor netwks pptVehicular sensor netwks ppt
Vehicular sensor netwks pptVenkatesh Kaduru
 
Interactive Data Visualization with Tangible User Interface
Interactive Data Visualization with Tangible User InterfaceInteractive Data Visualization with Tangible User Interface
Interactive Data Visualization with Tangible User InterfaceAdityo Pratomo
 
Wlan 802.11n - MAC Sublayer
Wlan 802.11n - MAC SublayerWlan 802.11n - MAC Sublayer
Wlan 802.11n - MAC SublayerMd Syed Ahamad
 
Lecture 6 geolocation
Lecture 6 geolocationLecture 6 geolocation
Lecture 6 geolocationmoduledesign
 

Viewers also liked (20)

Location, location, geolocation
Location, location, geolocationLocation, location, geolocation
Location, location, geolocation
 
HTML5 Geolocation API
HTML5 Geolocation APIHTML5 Geolocation API
HTML5 Geolocation API
 
Wireless Geolocation
Wireless GeolocationWireless Geolocation
Wireless Geolocation
 
Conversion Matters présente : Les 4 bénéfices de la géolocalisation
Conversion Matters présente : Les 4 bénéfices de la géolocalisationConversion Matters présente : Les 4 bénéfices de la géolocalisation
Conversion Matters présente : Les 4 bénéfices de la géolocalisation
 
Wat betekent-presentatie
Wat betekent-presentatieWat betekent-presentatie
Wat betekent-presentatie
 
Chek mate geolocation analyzer
Chek mate geolocation analyzerChek mate geolocation analyzer
Chek mate geolocation analyzer
 
Social commerce
Social commerceSocial commerce
Social commerce
 
Seminar
SeminarSeminar
Seminar
 
Lunch2.0 - Geolocation - July 2010
Lunch2.0 - Geolocation - July 2010Lunch2.0 - Geolocation - July 2010
Lunch2.0 - Geolocation - July 2010
 
Wireless fidelity (a.k.a Wi-Fi)
Wireless fidelity (a.k.a Wi-Fi)Wireless fidelity (a.k.a Wi-Fi)
Wireless fidelity (a.k.a Wi-Fi)
 
Wi-Fi Tecnology
Wi-Fi TecnologyWi-Fi Tecnology
Wi-Fi Tecnology
 
OpenSource for Entreprise
OpenSource for EntrepriseOpenSource for Entreprise
OpenSource for Entreprise
 
Vehicular sensor netwks ppt
Vehicular sensor netwks pptVehicular sensor netwks ppt
Vehicular sensor netwks ppt
 
Wi Fi
Wi FiWi Fi
Wi Fi
 
Vehicular Networks
Vehicular NetworksVehicular Networks
Vehicular Networks
 
Interactive Data Visualization with Tangible User Interface
Interactive Data Visualization with Tangible User InterfaceInteractive Data Visualization with Tangible User Interface
Interactive Data Visualization with Tangible User Interface
 
Wlan 802.11n - MAC Sublayer
Wlan 802.11n - MAC SublayerWlan 802.11n - MAC Sublayer
Wlan 802.11n - MAC Sublayer
 
Lecture 6 geolocation
Lecture 6 geolocationLecture 6 geolocation
Lecture 6 geolocation
 
Microwave oven
Microwave ovenMicrowave oven
Microwave oven
 
Vehicular ad hoc network
Vehicular ad hoc networkVehicular ad hoc network
Vehicular ad hoc network
 

Similar to W3C Geolocation API - Making Websites Location-aware

Building Apis That Rock
Building Apis That RockBuilding Apis That Rock
Building Apis That RockJeff Eaton
 
Firefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web InnovatorsFirefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web InnovatorsDietrich Ayala
 
Escape The Lab Tri Upa Slides
Escape The Lab Tri Upa SlidesEscape The Lab Tri Upa Slides
Escape The Lab Tri Upa Slidesbolt peters
 
Designing the experience of locative media
Designing the experience of locative mediaDesigning the experience of locative media
Designing the experience of locative mediaLauri Laineste
 
Web Motion: Motion Detection on the Web
Web Motion: Motion Detection on the WebWeb Motion: Motion Detection on the Web
Web Motion: Motion Detection on the Webfisherwebdev
 
Achieving Scale With Messaging And The Cloud 20090709
Achieving Scale With Messaging And The Cloud 20090709Achieving Scale With Messaging And The Cloud 20090709
Achieving Scale With Messaging And The Cloud 20090709leastfixedpoint
 
Making things Move on the iPhone
Making things Move on the iPhoneMaking things Move on the iPhone
Making things Move on the iPhoneJohn Wilker
 
Getting Off the Island
Getting Off the IslandGetting Off the Island
Getting Off the IslandESUG
 
Introtoduction to cocos2d
Introtoduction to  cocos2dIntrotoduction to  cocos2d
Introtoduction to cocos2dJohn Wilker
 

Similar to W3C Geolocation API - Making Websites Location-aware (12)

Building Apis That Rock
Building Apis That RockBuilding Apis That Rock
Building Apis That Rock
 
Firefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web InnovatorsFirefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web Innovators
 
Hawaii Pacific GIS Conference 2012: Internet GIS - Create Your Own Google Lik...
Hawaii Pacific GIS Conference 2012: Internet GIS - Create Your Own Google Lik...Hawaii Pacific GIS Conference 2012: Internet GIS - Create Your Own Google Lik...
Hawaii Pacific GIS Conference 2012: Internet GIS - Create Your Own Google Lik...
 
Depot Best Practices
Depot Best PracticesDepot Best Practices
Depot Best Practices
 
ERECOMPI
ERECOMPIERECOMPI
ERECOMPI
 
Escape The Lab Tri Upa Slides
Escape The Lab Tri Upa SlidesEscape The Lab Tri Upa Slides
Escape The Lab Tri Upa Slides
 
Designing the experience of locative media
Designing the experience of locative mediaDesigning the experience of locative media
Designing the experience of locative media
 
Web Motion: Motion Detection on the Web
Web Motion: Motion Detection on the WebWeb Motion: Motion Detection on the Web
Web Motion: Motion Detection on the Web
 
Achieving Scale With Messaging And The Cloud 20090709
Achieving Scale With Messaging And The Cloud 20090709Achieving Scale With Messaging And The Cloud 20090709
Achieving Scale With Messaging And The Cloud 20090709
 
Making things Move on the iPhone
Making things Move on the iPhoneMaking things Move on the iPhone
Making things Move on the iPhone
 
Getting Off the Island
Getting Off the IslandGetting Off the Island
Getting Off the Island
 
Introtoduction to cocos2d
Introtoduction to  cocos2dIntrotoduction to  cocos2d
Introtoduction to cocos2d
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

W3C Geolocation API - Making Websites Location-aware

  • 1. W3C Geolocation API Making Websites Location-aware Wednesday, April 1, 2009
  • 2. me • Director of Consumer Products at Skyhook Wireless • Founded Locationaware.org which eventually became W3C Geolocation API Working Group • Follow @rsarver to get the SlideShare link for slides after I post them Wednesday, April 1, 2009
  • 3. practical tools to allow you to add location capabilities to your website today Wednesday, April 1, 2009
  • 4. What is Geolocation? History of Geolocation on the web Current State of the Union Location Technologies Code Examples Questions Wednesday, April 1, 2009
  • 6. higher context = relevancy Wednesday, April 1, 2009
  • 7. higher location = relevancy Wednesday, April 1, 2009
  • 8. location comes in many flavors Wednesday, April 1, 2009
  • 11. 747 Howard St, San Francisco, CA Wednesday, April 1, 2009
  • 12. 4th St & Howard St Wednesday, April 1, 2009
  • 15. Business Search APIs • Yahoo Local Search API • Yelp API • Localeze - sells business listing information • small businesses are tough, no db is totally complete Wednesday, April 1, 2009
  • 16. how you display it can be used as a way of blurring location Wednesday, April 1, 2009
  • 17. Ryan checked into The Mission Wednesday, April 1, 2009
  • 18. map markers can be misleading when dealing with user’s location ... maybe use text instead Wednesday, April 1, 2009
  • 21. so, why should I use it? Wednesday, April 1, 2009
  • 23. HISTORY a lot has changed in a year Wednesday, April 1, 2009
  • 28. coalition of the willing Wednesday, April 1, 2009
  • 29. state of the union http://www.flickr.com/photos/xrrr/2478140383/ Wednesday, April 1, 2009
  • 30. 2009 is the year of location in the Browser Wednesday, April 1, 2009
  • 31. • Geode Extension in Mozilla Labs. Powered by Skyhook • W3C Geolocation API support natively in 3.1 (now called 3.5) • Opera Labs release with W3C Geolocation API support. Powered by Skyhook • Support in Chrome for Windows and Android Wednesday, April 1, 2009
  • 32. http://bit.ly/mozilla-geode http://bit.ly/opera-geolocation http://google.com/chrome Wednesday, April 1, 2009
  • 34. Two primary methods 1. IP Geolocation 2. Triangulation • GPS • Wi-Fi • Cell Tower Wednesday, April 1, 2009
  • 35. IP Geolocation Pros • Widely available • Detection happens server-side Cons • Only accurate to the city-level • Only in the right state 85% of the time • Costly • Produces false positives Wednesday, April 1, 2009
  • 36. IP Geolocation Vendors • MaxMind - http://www.maxmind.com • Has a free database - GeoLite City • Quova - http://www.quova.com • IPligence - http://www.ipilgence.com • IP2Location - http://www.ip2location.com Wednesday, April 1, 2009
  • 37. Triangulation GPS 10 m Wi-Fi 20 m Cell Tower 1000 m Wednesday, April 1, 2009
  • 38. GPS Pros • Accurate after it gets a fix • Highly accurate in rural area Cons • Doesn’t work indoors • Difficulty with Urban Canyons • Long Time to First Fix Wednesday, April 1, 2009
  • 40. Wi-Fi Positioning (WPS) Pros • Accurate • Works indoors and in Urban Areas • Quick Time to First Fix • Software-only, leverages existing Wi-Fi Cons • Doesn’t work well in rural areas Wednesday, April 1, 2009
  • 41. • Cross-platform, cross-browser plugin for adding geolocation to any website • Locate a user down to their exact street address with a few lines of javascript • http://loki.com/how • </plug> Wednesday, April 1, 2009
  • 42. Cell Triangulation Pros • Works where there is cell coverage (most areas) • Quick Time to First Fix • Software-only, leverages existing cellular radio Cons • Very inaccurate Wednesday, April 1, 2009
  • 43. short answer hyrbid is the way Wednesday, April 1, 2009
  • 44. W3C Geolocation API ... shut up and get to the code Wednesday, April 1, 2009
  • 45. Single shot lookup navigator.geolocation.getCurrentPosition(function(pos){ //show map at (pos.coords.latitude, pos.coords.longitude) }); Wednesday, April 1, 2009
  • 46. Position & Coordinates Objects 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; }; Wednesday, April 1, 2009
  • 47. Single shot lookup w/ callbacks 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); Wednesday, April 1, 2009
  • 48. PositionError Object 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; }; Wednesday, April 1, 2009
  • 49. Single shot lookup w/ callbacks & options 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}); Wednesday, April 1, 2009
  • 50. PositionOptions interface PositionOptions { attribute boolean enableHighAccuracy; attribute long timeout; attribute long maximumAge; }; Wednesday, April 1, 2009
  • 51. Single shot lookup w/ cached position 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, {maximumAge:300000, timeout:0}); Wednesday, April 1, 2009
  • 52. Periodic lookup w/ callbacks function moveMap(pos) { //update map to pos.coords.latitude, pos.coords.longitude } function showError(err) { alert(err.message + ‘, ’ + err.code); } // Track location with periodic updates watchId = navigator.geolocation.watchPosition(moveMap, showError); function stopTracking() { navigator.geolocation.clearWatch(watchId); } Wednesday, April 1, 2009
  • 53. Upcoming Geo Events • Where 2.0 San Jose, CA May 19th - 21st • WhereCamp San Francisco, CA May 23rd - 24th Wednesday, April 1, 2009
  • 54. Questions? tweet @rsarver with questions as well Wednesday, April 1, 2009

Editor's Notes

  1. - who here runs a website? - who here uses location of some kind on their website? - mobile?
  2. - who here already knows Skyhook?
  3. - its important that you can leave here
  4. - leave lots of time for questions at the end
  5. - location is a proxy to lots of metadata - rich demographic data - context about the physical surroundings of the user - events they might be at - nearby POIs - time of day, weather
  6. - the more context you have the more relevant the experience you can delivery
  7. - deliver the most highly relevant experience to your users - use most accurate location available
  8. - so lets define &#x201C;location&#x201D; - what does that mean?
  9. - going to become important that sites can work with lat/lon - w3c api will always deliver you a lat/lon - start to architect your apps to store lat/lon as well
  10. - anyone here use brightkite or foursquare? - disambiguate lat/lon into something meaningful. business names are great - also consider using custom place names
  11. - some location information is only relevant to nearby users - placenames, neighborhoods - add higher-level context for other users
  12. - maps can be a misnomer bc users dont always want to share exact location - EXAMPLE: user is in San Francisco -- where do you put the marker? - consider text display
  13. - Here is a video of BrightKite using auto-location - gives you a feel for how other sites are doing it
  14. - relevancy. too much noise, not enough signal - location is a piece of metadata that can make the entire web more relevant - better user experience - geotag photos, share location on social networks, local search, local news
  15. - Lets take a store finder as an example - each dot represents a Dunkin Donuts in Boston - if you ask a user to tell you where they are, they will say &#x201C;boston&#x201D; or &#x201C;02218&#x201D; - using precise location allows you to instantly show them the correct location and start to route them there
  16. - A lot has changed in one year, since i was here last - last year i was talking about the how it was coming together and some tools - now, W3C working group and 3 major browser vendors you can download today
  17. - Loki was launched at Where 2.0 in 2006 - toolbar to get skyhook&#x2019;s technology into the browser - eventually made a javascript API to the toolbar
  18. - May 2006 - i realized the only way for this to grow was to get consensus among browser vendors - needed to evangelize the idea of location on the web - no one knew you could make a laptop a gps-like device - pre iPhone
  19. - google picked it up, added it to Gears - started with cell positioning for mobile devices - created their own Javascript API
  20. - June 2008 - standardize the way geolocation is exposed through the browser
  21. - all major vendors are involved - already getting to draft - KISS
  22. &#x201C;its all coming together&#x201D;
  23. - bold proclamation - location was always the technology of next year, well its finally next year - desktops, laptops and netbooks will all be location enabled
  24. - accuracy is directly proportional to cell size - gps, wps = street address accuracy - cell = neighborhood / city accuracy
  25. - instead of waiting for all the browsers, add it now - cross platform, cross browser - on MapQuest.com/findme
  26. - Wi-Fi positioning is primary, IP as a fallback
  27. - REALLY this simple to add location to your website
  28. enableHighAccuracy will probably change
  29. do this to save a new location request. power friendly position <= 5 minutes timeout:0 = return cached position
  30. do this to save a new location request. power friendly position <= 5 minutes timeout:0 = return cached position
  31. - if you are looking to get more involved in geo, there are some great events to attend