ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Location on the Web
Making Web Applications Location-aware
Ryan

? Director of Consumer Products at Skyhook
  Wireless
? Founded Locationaware.org which
  eventually became W3C Geolocation API
  Working Group
Seth


? Engineering lead for Fire Eagle at Yahoo!
? Developer evangelist
practical tools and code to
allow you to add location to
your web application today
location = context
higher
context =
          relevancy
higher
location =
           relevancy
location is relative
the world isn¡¯t only points




        ... what constitutes a place?
WOEIDs
GeoPlanet
http://developer.yahoo.com/geo
Location Technologies
sensed vs. declared
 active vs. passive
sensed location
Three primary methods
1. IP Geolocation
2. Triangulation
  ? GPS
  ? Wi-Fi
  ? Cell Tower

3. Declarative - just ask
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
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
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
so, why should I use it?
Where 2.0 2009 - Location on the Web
considerations
privacy
precision
browser-based
(active) location
W3C Geolocation API
coalition of the willing
state of the union



http://www.?ickr.com/photos/xrrr/2478140383/
? W3C Geolocation API support
  natively in Firefox 3.5




? Opera Labs release with W3C
  Geolocation API support



? Support in Chrome for Windows
  and Gears - desktop / Android
? 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>
Tips for browser-
  based Geolocation
? Plan for asynchronous call - show status
  to user
? Request location on page load if its
  available
? Fallback to IP if necessary, but message
  it to user
... shut up and get to the code
Simple Example
Plotting location on a
         map
Store Finder w/ Local
  Business Search
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;
};
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;
};
brokered (passive)
     location
? Location broker
? Ecosystem
? APIs for updating and querying (REST and
  XMPP)
? http://?reeagle.yahoo.net/developer
? </plug>
Tips for broker-based
     Geolocation
? Location is barely current--?nd ways to
  reduce latency
? Share--back to Fire Eagle and with other
  users
? Don¡¯t violate users¡¯ trust--say what you
  use their location for
... shut up and get to the code
Querying a user¡¯s
    location
Updating a user¡¯s
   location
Receiving a user¡¯s
location (real-time)
WhereCamp
     SocialText Of?ce
     Palo Alto
     Friday and Saturday
     wherecamp.org
Questions?

More Related Content

Where 2.0 2009 - Location on the Web

Editor's Notes

  1. - who here runs a website? - who here uses location of some kind on their website? - mobile?
  2. - 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
  3. - the more context you have the more relevant the experience you can delivery
  4. - deliver the most highly relevant experience to your users - use most accurate location available
  5. (seth) There&#x2019;s no single right answer.
  6. (seth) Are Ryan and I in the same place? Yes and no. The definition of a place is highly relative. Place names as well.
  7. (seth) Where on Earth ids are one solution.
  8. (seth) GeoPlanet is Yahoo!&#x2019;s answer to the &#x201C;what constitutes a place&#x201D; problem. Places are referred to with unique identifiers and related to one another. It&#x2019;s just one approach, but it helps.
  9. (seth) Complementary approaches, complementary tools. Sensed location is device-centric, declared location requires the user&#x2019;s input. Active location is a means for determining where a user is when s/he is in front of a computer. Passive location is a means for determining where a user is when s/he is away from a computer, but has a device that can sense location with them (e.g. SPOT, cell phone).
  10. Sensed location is the more obvious approach, and potentially most useful, as it involves less user intervention. However, it is not without problems: sensed locations may be wrong, and, as location is a socially relative construct, may disrupt or offend the user. (e.g. neighborhood boundaries)
  11. - 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
  12. - 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
  13. - seth 1. privacy 2. precision
  14. (seth) A user&#x2019;s location is a facet of their identity; they are sharing it with you (or allowing you to sense it) in exchange for something of value. They trust you. It&#x2019;s your responsibility to respect your users by not sharing it out, or being explicit about what you intend to do with it once it passes into our hands.
  15. (seth) Precision is one way to protect a user&#x2019;s location; just request the level of granularity that your application requires rather than always asking for a user&#x2019;s exact location. You probably don&#x2019;t need it, and it will give your users a greater sense of safety when using your application.
  16. - June 2008 - standardize the way geolocation is exposed through the browser
  17. - all major vendors are involved - already getting to draft - KISS
  18. &#x201C;its all coming together&#x201D;
  19. - instead of waiting for all the browsers, add it now - cross platform, cross browser - on MapQuest.com/findme
  20. (ryan) - Here is a video of BrightKite using auto-location - gives you a feel for how other sites are doing it (seth) - imagine brightkite updating while you&#x2019;re out in the world and sharing it with friends who are online; a single application can take advantage of both active and passive location
  21. Fire Eagle is a location broker; alone it does nothing. It is part of a rich ecosystem where applications with access to users&#x2019; location can allow them to share it with applications that would like access to location data. Privacy is core: users have control over what applications can do what with their location (and what level they&#x2019;re allowed to see).
  22. - if you are looking to get more involved in geo, there are some great events to attend