W3C Geolocation API - Making Websites Location-aware

28,034
-1

Published on

my slides from the Web 2.0 Expo session on the W3C Geolocation API

Published in: Technology, Business
2 Comments
21 Likes
Statistics
Notes
  • www.giite.com

    We provide various Online & Classroom courses to help you achieve your goals.
    GIITE Training is the fastest way to match you with IT market Industry, whether you want to learn from home or take virtual classes,
    You will find the ultimate in convenience and instructions when you understand the benefits of our training program.
    It is known that the field of IT training has been a fast growing area of expertise in recent years, In order to keep up and adjust to its expansion in the technology world, verity of IT Training courses have been developed and IS now being offered to yo
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Nice overview thanks. When I worked at MapQuest back in the day one very important issue that MapQuest couldn't solve was customer feedback of the form 'That's not my beautiful house' when our geolocater got it wrong, we could not correct it. How do we put customer feedback into these systems?
    Do any allow me to update the geolocation of my wifi when I move to a new city?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
28,034
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
395
Comments
2
Likes
21
Embeds 0
No embeds

No notes for slide
  • - who here runs a website?
    - who here uses location of some kind on their website?
    - mobile?
  • - who here already knows Skyhook?
  • - its important that you can leave here
  • - leave lots of time for questions at the end
  • - 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
  • - the more context you have the more relevant the experience you can delivery

  • - deliver the most highly relevant experience to your users
    - use most accurate location available

  • - so lets define “location”
    - what does that mean?
  • - 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





  • - anyone here use brightkite or foursquare?
    - disambiguate lat/lon into something meaningful. business names are great
    - also consider using custom place names

  • - some location information is only relevant to nearby users
    - placenames, neighborhoods
    - add higher-level context for other users
  • - 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
  • - Here is a video of BrightKite using auto-location
    - gives you a feel for how other sites are doing it
  • - 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
  • - 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 “boston” or “02218”
    - using precise location allows you to instantly show them the correct location and start to route them there
  • - 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
  • - Loki was launched at Where 2.0 in 2006
    - toolbar to get skyhook’s technology into the browser
    - eventually made a javascript API to the toolbar
  • - 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
  • - google picked it up, added it to Gears
    - started with cell positioning for mobile devices
    - created their own Javascript API
  • - June 2008
    - standardize the way geolocation is exposed through the browser

  • - all major vendors are involved
    - already getting to draft
    - KISS
  • “its all coming together”
  • - bold proclamation
    - location was always the technology of next year, well its finally next year
    - desktops, laptops and netbooks will all be location enabled






  • - accuracy is directly proportional to cell size
    - gps, wps = street address accuracy
    - cell = neighborhood / city accuracy



  • - instead of waiting for all the browsers, add it now
    - cross platform, cross browser
    - on MapQuest.com/findme

  • - Wi-Fi positioning is primary, IP as a fallback

  • - REALLY this simple to add location to your website




  • enableHighAccuracy will probably change
  • do this to save a new location request. power friendly
    position <= 5 minutes
    timeout:0 = return cached position
  • do this to save a new location request. power friendly
    position <= 5 minutes
    timeout:0 = return cached position
  • - if you are looking to get more involved in geo, there are some great events to attend

  • W3C Geolocation API - Making Websites Location-aware

    1. 1. W3C Geolocation API Making Websites Location-aware Wednesday, April 1, 2009
    2. 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. 3. practical tools to allow you to add location capabilities to your website today Wednesday, April 1, 2009
    4. 4. What is Geolocation? History of Geolocation on the web Current State of the Union Location Technologies Code Examples Questions Wednesday, April 1, 2009
    5. 5. location = context Wednesday, April 1, 2009
    6. 6. higher context = relevancy Wednesday, April 1, 2009
    7. 7. higher location = relevancy Wednesday, April 1, 2009
    8. 8. location comes in many flavors Wednesday, April 1, 2009
    9. 9. 37.78467, -122.40162 Wednesday, April 1, 2009
    10. 10. Wednesday, April 1, 2009
    11. 11. 747 Howard St, San Francisco, CA Wednesday, April 1, 2009
    12. 12. 4th St & Howard St Wednesday, April 1, 2009
    13. 13. Soma Wednesday, April 1, 2009
    14. 14. Pete’s Coffee Wednesday, April 1, 2009
    15. 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. 16. how you display it can be used as a way of blurring location Wednesday, April 1, 2009
    17. 17. Ryan checked into The Mission Wednesday, April 1, 2009
    18. 18. map markers can be misleading when dealing with user’s location ... maybe use text instead Wednesday, April 1, 2009
    19. 19. Wednesday, April 1, 2009
    20. 20. Wednesday, April 1, 2009
    21. 21. so, why should I use it? Wednesday, April 1, 2009
    22. 22. Wednesday, April 1, 2009
    23. 23. HISTORY a lot has changed in a year Wednesday, April 1, 2009
    24. 24. Wednesday, April 1, 2009
    25. 25. locationaware.org Wednesday, April 1, 2009
    26. 26. Google Gears Wednesday, April 1, 2009
    27. 27. W3C Geolocation API Wednesday, April 1, 2009
    28. 28. coalition of the willing Wednesday, April 1, 2009
    29. 29. state of the union http://www.flickr.com/photos/xrrr/2478140383/ Wednesday, April 1, 2009
    30. 30. 2009 is the year of location in the Browser Wednesday, April 1, 2009
    31. 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. 32. http://bit.ly/mozilla-geode http://bit.ly/opera-geolocation http://google.com/chrome Wednesday, April 1, 2009
    33. 33. Location Technologies Wednesday, April 1, 2009
    34. 34. Two primary methods 1. IP Geolocation 2. Triangulation • GPS • Wi-Fi • Cell Tower Wednesday, April 1, 2009
    35. 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. 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. 37. Triangulation GPS 10 m Wi-Fi 20 m Cell Tower 1000 m Wednesday, April 1, 2009
    38. 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
    39. 39. Wi-Fi Triangulation Wednesday, April 1, 2009
    40. 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. 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. 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. 43. short answer hyrbid is the way Wednesday, April 1, 2009
    44. 44. W3C Geolocation API ... shut up and get to the code Wednesday, April 1, 2009
    45. 45. Single shot lookup navigator.geolocation.getCurrentPosition(function(pos){ //show map at (pos.coords.latitude, pos.coords.longitude) }); Wednesday, April 1, 2009
    46. 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. 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. 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. 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. 50. PositionOptions interface PositionOptions { attribute boolean enableHighAccuracy; attribute long timeout; attribute long maximumAge; }; Wednesday, April 1, 2009
    51. 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. 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. 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. 54. Questions? tweet @rsarver with questions as well Wednesday, April 1, 2009

    ×