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

POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...Postman
 
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdfSpace Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdfPostman
 
Postman: An Introduction for Developers
Postman: An Introduction for DevelopersPostman: An Introduction for Developers
Postman: An Introduction for DevelopersPostman
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)중선 곽
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101Nikita Sharma
 
SignalR With ASP.Net part1
SignalR With ASP.Net part1SignalR With ASP.Net part1
SignalR With ASP.Net part1Esraa Ammar
 
Practical Malware Analysis: Ch 8: Debugging
Practical Malware Analysis: Ch 8: Debugging Practical Malware Analysis: Ch 8: Debugging
Practical Malware Analysis: Ch 8: Debugging Sam Bowne
 
Automação de testes de API utilizando Postman
Automação de testes de API utilizando PostmanAutomação de testes de API utilizando Postman
Automação de testes de API utilizando PostmanLucas Amaral
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API TestingBruno Pedro
 
Advanced API Debugging
Advanced API DebuggingAdvanced API Debugging
Advanced API DebuggingPostman
 
Web Application Performance
Web Application PerformanceWeb Application Performance
Web Application PerformanceCodeFireTech
 
Postman: An Introduction for Testers
Postman: An Introduction for TestersPostman: An Introduction for Testers
Postman: An Introduction for TestersPostman
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman
 

What's hot (20)

POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
 
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdfSpace Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdf
 
Postman: An Introduction for Developers
Postman: An Introduction for DevelopersPostman: An Introduction for Developers
Postman: An Introduction for Developers
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 
Api Testing
Api TestingApi Testing
Api Testing
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101
 
SignalR With ASP.Net part1
SignalR With ASP.Net part1SignalR With ASP.Net part1
SignalR With ASP.Net part1
 
Practical Malware Analysis: Ch 8: Debugging
Practical Malware Analysis: Ch 8: Debugging Practical Malware Analysis: Ch 8: Debugging
Practical Malware Analysis: Ch 8: Debugging
 
Api testing
Api testingApi testing
Api testing
 
Automação de testes de API utilizando Postman
Automação de testes de API utilizando PostmanAutomação de testes de API utilizando Postman
Automação de testes de API utilizando Postman
 
Api testing
Api testingApi testing
Api testing
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API Testing
 
Postman
PostmanPostman
Postman
 
Belajar Postman test runner
Belajar Postman test runnerBelajar Postman test runner
Belajar Postman test runner
 
Advanced API Debugging
Advanced API DebuggingAdvanced API Debugging
Advanced API Debugging
 
What is RabbitMQ ?
What is RabbitMQ ?What is RabbitMQ ?
What is RabbitMQ ?
 
Web Application Performance
Web Application PerformanceWeb Application Performance
Web Application Performance
 
Postman: An Introduction for Testers
Postman: An Introduction for TestersPostman: An Introduction for Testers
Postman: An Introduction for Testers
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
 

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

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Recently uploaded (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

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