ºÝºÝߣ

ºÝºÝߣ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

  • #2: - who here runs a website? - who here uses location of some kind on their website? - mobile?
  • #6: - 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
  • #7: - the more context you have the more relevant the experience you can delivery
  • #8: - deliver the most highly relevant experience to your users - use most accurate location available
  • #9: (seth) There&#x2019;s no single right answer.
  • #10: (seth) Are Ryan and I in the same place? Yes and no. The definition of a place is highly relative. Place names as well.
  • #11: (seth) Where on Earth ids are one solution.
  • #12: (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.
  • #14: (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).
  • #15: 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)
  • #20: - 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
  • #21: - 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
  • #22: - seth 1. privacy 2. precision
  • #23: (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.
  • #24: (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.
  • #26: - June 2008 - standardize the way geolocation is exposed through the browser
  • #27: - all major vendors are involved - already getting to draft - KISS
  • #28: &#x201C;its all coming together&#x201D;
  • #30: - instead of waiting for all the browsers, add it now - cross platform, cross browser - on MapQuest.com/findme
  • #31: (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
  • #40: 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).
  • #46: - if you are looking to get more involved in geo, there are some great events to attend