SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler 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

Mais conteúdo relacionado

Destaque

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
 
Mechanism of a Microwave Oven.
Mechanism of a Microwave Oven.Mechanism of a Microwave Oven.
Mechanism of a Microwave Oven.Md. Afif Al Mamun
 
Information Visualisation (Multimedia 2009 course)
Information Visualisation (Multimedia 2009 course)Information Visualisation (Multimedia 2009 course)
Information Visualisation (Multimedia 2009 course)Joris Klerkx
 
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-Makoto SAKAI
 
Optical Wireless Communications - from the space to the chip.
Optical Wireless Communications - from the space to the chip.Optical Wireless Communications - from the space to the chip.
Optical Wireless Communications - from the space to the chip.Joaquin Perez
 

Destaque (20)

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
 
Vehicular network
Vehicular networkVehicular network
Vehicular network
 
Mechanism of a Microwave Oven.
Mechanism of a Microwave Oven.Mechanism of a Microwave Oven.
Mechanism of a Microwave Oven.
 
Information Visualisation (Multimedia 2009 course)
Information Visualisation (Multimedia 2009 course)Information Visualisation (Multimedia 2009 course)
Information Visualisation (Multimedia 2009 course)
 
Adhoc network
Adhoc networkAdhoc network
Adhoc network
 
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
 
Ultra wide band
Ultra wide bandUltra wide band
Ultra wide band
 
Optical Wireless Communications - from the space to the chip.
Optical Wireless Communications - from the space to the chip.Optical Wireless Communications - from the space to the chip.
Optical Wireless Communications - from the space to the chip.
 

Semelhante a 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
 

Semelhante a 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
 

Último

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
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
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
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
 
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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"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
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Último (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
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
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
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)
 
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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"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
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

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

Notas do Editor

  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