Adding "Where" to Mobile and Web Applications
-
Upload
rsarver -
Category
Technology
-
view
8.459 -
download
4
description
Transcript of Adding "Where" to Mobile and Web Applications
![Page 1: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/1.jpg)
Adding “Where” to Mobile and Web
Applications1Wednesday, April 23, 2008
![Page 2: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/2.jpg)
me
Ryan Sarver
Director of Consumer Products
Skyhook Wireless / Loki
http://loki.com
http://skyhookwireless.com
http://sarver.org
http://linkedin/in/rsarver
2Wednesday, April 23, 2008
![Page 3: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/3.jpg)
practical tools to allow you to add
location capabilities to your website or app
today
3Wednesday, April 23, 2008
![Page 4: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/4.jpg)
sarver.org for links after session
4Wednesday, April 23, 2008
![Page 5: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/5.jpg)
location = context
5Wednesday, April 23, 2008
![Page 6: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/6.jpg)
context = higher relevancy
6Wednesday, April 23, 2008
![Page 7: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/7.jpg)
location = higher relevancy
7Wednesday, April 23, 2008
![Page 8: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/8.jpg)
location comes in many flavors
8Wednesday, April 23, 2008
![Page 9: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/9.jpg)
42.2817, -71.18279
9Wednesday, April 23, 2008
![Page 10: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/10.jpg)
Polygons
10Wednesday, April 23, 2008
![Page 11: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/11.jpg)
747 Howard StSan Francisco, CA
11Wednesday, April 23, 2008
![Page 12: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/12.jpg)
Howard St & 3rd St
12Wednesday, April 23, 2008
![Page 13: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/13.jpg)
South of Market
13Wednesday, April 23, 2008
![Page 14: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/14.jpg)
how you display it can be used as a way of
blurring location
14Wednesday, April 23, 2008
![Page 15: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/15.jpg)
markers in maps can be difficult when dealing with exposed location
15Wednesday, April 23, 2008
![Page 16: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/16.jpg)
Ryan checked into Soma, San
Francisco, CA
16Wednesday, April 23, 2008
![Page 17: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/17.jpg)
Sharing Location with
Friendshttp://my.loki.com
17Wednesday, April 23, 2008
![Page 18: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/18.jpg)
1. Offer everything you can
2. Degrade gracefully
3. Allow the user to change it
Know your users, know your use cases!
Geotargeting Rules of Thumb
18Wednesday, April 23, 2008
![Page 19: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/19.jpg)
yoursite.com ?lat=&lng=
Tip!
19Wednesday, April 23, 2008
![Page 20: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/20.jpg)
where does location happen?
client & network
20Wednesday, April 23, 2008
![Page 21: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/21.jpg)
Mobile
Web Apps
Laptop
Location Broker(FireEagle)
Mobile
Web Apps
Laptop
asynchronous
many locations in,one location out
21Wednesday, April 23, 2008
![Page 22: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/22.jpg)
22Wednesday, April 23, 2008
![Page 23: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/23.jpg)
<?php$fe = new FireEagle( $fe_key, $fe_secret, $_SESSION['access_token'], $_SESSION['access_secret']);
$r = $fe->update(array(‘q’ => ‘san francisco, ca’));
$loc = $fe->user();foreach ($loc->user->location_hierarchy as $location) { echo $location->latitude.", ".$location->longitude;}?>
FireEagle Pseudo
23Wednesday, April 23, 2008
![Page 24: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/24.jpg)
Desktop Web Profile
• Stationary sessionssingle location lookups
• IndoorsGPS and Cell Tower don’t work
• Easier data entry
• More complex data can be displayed
24Wednesday, April 23, 2008
![Page 25: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/25.jpg)
Mobile Profile
• Transient sessionssingle location and continuous
• Indoors and OutdoosIP doesn’t work
• Difficult data entryminimize the amount typed
• Small screen size, low computing power, be “power-aware”
25Wednesday, April 23, 2008
![Page 26: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/26.jpg)
Geolocation Methods
1.Triangulate2.Associate3.Geo Term Extraction4.Data Entry / Geocoding
26Wednesday, April 23, 2008
![Page 27: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/27.jpg)
Triangulation
Determine position of an unknown object relative to known objects
• Wi-Fi
• GPS
• Cell Tower27Wednesday, April 23, 2008
![Page 28: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/28.jpg)
1 meter
20 meter
2,000 meter
GPS
Wi-Fi
Cell Tower28Wednesday, April 23, 2008
![Page 29: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/29.jpg)
San Francisco Wi-Fi
29Wednesday, April 23, 2008
![Page 30: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/30.jpg)
Wi-FiLoki Javascript API
http://loki.com/developers
http://loki.com/developers/documentation
30Wednesday, April 23, 2008
![Page 31: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/31.jpg)
GPS (sideload)Garmin Communicator
Pluginhttp://www.garmin.com/products/communicator/
http://developer.garmin.com/web-device/garmin-
communicator-plugin/
31Wednesday, April 23, 2008
![Page 32: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/32.jpg)
Association
32Wednesday, April 23, 2008
![Page 33: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/33.jpg)
Association
• Match an IP Address to a physical location
• Not an exact science
• Best for city-level geotargeting
• False positives and in the correct state only ~85%
33Wednesday, April 23, 2008
![Page 34: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/34.jpg)
IP Geolocation
Quovahttp://www.quova.com
ip2locationhttp://www.ip2location.com
MaxMindhttp://www.maxmind.com
34Wednesday, April 23, 2008
![Page 35: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/35.jpg)
Geo Term Extraction
Resolve an arbitrary string into a geographical point or area:
“food in cambridge” = “food” in “Cambridge, Massachusetts, USA”
MetaCarta Query Parser APIhttp://ondemand.metacarta.com/?method=QueryParser
Urban Mapping GeoModshttp://urbanmapping.com/geomods/index.html
35Wednesday, April 23, 2008
![Page 36: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/36.jpg)
Geocoding
Resolve a geographically-based string into a geographical point or area
36Wednesday, April 23, 2008
![Page 37: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/37.jpg)
Geocoding
• Geonames Webserviceshttp://www.geonames.org/export/
• Google Geocoder Classhttp://code.google.com/apis/maps/documentation/services.html#Geocoding
• Yahoo Geocoding APIhttp://developer.yahoo.com/maps/rest/V1/geocode.html
• Geocoder.ushttp://geocoder.us/
37Wednesday, April 23, 2008
![Page 38: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/38.jpg)
Location in the Browser
• LocationAware.orgSession at Where 2.0http://www.locationaware.org
• W3C Web APIhttp://www.w3.org/2006/webapi/
navigator.getGeolocation()
38Wednesday, April 23, 2008
![Page 39: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/39.jpg)
Mobile Location
39Wednesday, April 23, 2008
![Page 40: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/40.jpg)
Mobile Location APIs
• iPhone Core Location APIWi-Fi, Cell Tower
• Symbian S60 Location APIGPS, A-GPS
• J2ME JSR-179GPS, device-specific
40Wednesday, April 23, 2008
![Page 41: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/41.jpg)
@implementation MyLocationGetter
- (void)startUpdates{ if (nil == locationManager) locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self; locationManager.distanceFilter = 1000; // 1 kilometer locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; [locationManager startUpdatingLocation];
}
41Wednesday, April 23, 2008
![Page 42: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/42.jpg)
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ // Disable future updates to save power. [manager stopUpdatingLocation];
printf("latitude %+.6f, longitude %+.6f\n", newLocation.coordinate.latitude, newLocation.coordinate.longitude);}
http://forums.macrumors.com/showthread.php?t=455767
42Wednesday, April 23, 2008
![Page 43: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/43.jpg)
Other APIs / Platforms
• Skyhook SDKWinMo, S60, Linux, XP, Vista, OSXhttp://www.skyhookwireless.com/developers
• WHERE WidgetsAT&T, Sprint, Alltel, MetroPCShttp://developer.where.com/
43Wednesday, April 23, 2008
![Page 44: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/44.jpg)
Skyhook Example int main(int argc, char *argv[]) { WPS_SimpleAuthentication authentication; authentication.username = argv[1]; authentication.realm = argv[2]; WPS_Location* location; int rc = WPS_location(&authentication,
WPS_NO_STREET_ADDRESS_LOOKUP, &location);
if (rc == WPS_OK) printf("%f, %f\n", location->latitude, location->longitude); WPS_free_location(location); return 0; }
44Wednesday, April 23, 2008
![Page 45: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/45.jpg)
Cell Tower
• Zone Tag (yahoo)http://developer.yahoo.com/yrb/zonetag/
• OpenCellIDhttp://www.opencellid.org
• CellDBhttp://celldb.org/
45Wednesday, April 23, 2008
![Page 46: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/46.jpg)
Upcoming Events
• Where 2.0Burlingame, CAMay 12th - 14th
• WhereCampMountain View, CAMay 17th - 18th
46Wednesday, April 23, 2008
![Page 47: Adding "Where" to Mobile and Web Applications](https://reader031.fdocuments.us/reader031/viewer/2022012918/554fb447b4c905ad218b5442/html5/thumbnails/47.jpg)
Questions?
47Wednesday, April 23, 2008