85
To boldly go where no man has gone before: Exploring Geo in iPhone & Android Apr 1, 2010 Thu 2:50 PM San Jose

To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

  • Upload
    hakiet

  • View
    232

  • Download
    0

Embed Size (px)

Citation preview

Page 1: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

To boldly go where no man

has gone before:

Exploring Geo in iPhone &

AndroidApr 1, 2010 Thu

2:50 PM San Jose

Page 2: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

To boldly go where no man has gone before:

Exploring Geo in iPhone & Android

Stardate: -312751.7313546423

Page 3: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Stardate: -315974.3150684931

Jan 2007Three Years Ago

Page 4: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Widescreen iPod with touch controls

Stardate: -315974.3150684931

Page 5: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Revolutionary mobile phone

Stardate: -315974.3150684931

Page 6: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Breakthrough internet communicator

Stardate: -315974.3150684931

Page 7: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

iPod Phone Internet

Stardate: -315974.3150684931

Page 8: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

iPhone

Stardate: -315974.3150684931

Page 9: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Chief Science Officer

Stardate: -314000

Page 10: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Data Communications

Portable Sensing

Data Analysis

Stardate: -314000

Page 11: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Stardate: -314000

Tricorder

Page 12: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

iPhone

Stardate: -315974.3150684931

Page 13: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Stardate: -314000

Tricorder

Page 14: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Stardate: -314000

Tricorder iPhone

Page 15: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Data

Scanner

Recorder

Locator

SearchSensor

Compass

VoiceText

Stardate: -314000

Page 16: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Microphone(Audio)

Camera (Photo / Video)

External Accessory(Data)

Wireless Bluetooth (File)

Touch

GPS (Geo)

Magentometer(Compass)

Accelerometer(XZY)

(Device Orientation)

Data Plan / WiFi(Web / Email)

SMS(Data)

iPhone’s Anatomy

Phone(Audio)

Page 17: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Microphone(Audio)

Camera (Photo / Video)

External Accessory(Data)

Wireless Bluetooth (File)

GPS (Geo)

Magentometer(Compass)

Accelerometer(XZY)

(Device Orientation)

Data Plan / WiFi(Web / Email)

SMS(Data)

Portable Sensors

Phone(Audio)

Touch

Page 18: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Data Analysis

iPhone SDK

Xcode Interface Builder

Page 19: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Microphone(Audio)

Camera (Photo / Video)

External Accessory(Data)

Wireless Bluetooth (File)

Touch

GPS (Geo)

Magentometer(Compass)

Accelerometer(XZY)

(Device Orientation)

Data Plan / WiFi(Web / Email)

SMS(Data)

Data Communications

Phone(Audio)

Page 20: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Stardate: -315974.3150684931

Page 21: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MapKit Core Location

iPhone SDK Frameworks

Page 22: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

iPhone SDK Frameworks

Cocoa Touch Layer

Media Layer

Core Services Layer

Core OS Layer

iPhone SDK Frameworks

Page 23: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

iPhone SDK Frameworks

Cocoa Touch Layer

Media Layer

Core Services Layer

Core OS Layer

Map Kit

Core Location

iPhone SDK Frameworks

Page 24: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

CLLocation Manager

CLLocation

CLHeading

Core Location Framework: Class

Page 25: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Core Services Layer: Core Location

UIViewController InterfaceCLLocationManager

#import <CoreLocation/CoreLocation.h>@interface GetLocationViewController : UIViewController <CLLocationManagerDelegate> { CLLocationManager *locationManager; CLLocation *bestEffortAtLocation;}@property (nonatomic, retain) CLLocationManager *locationManager;@property (nonatomic, retain) CLLocation *bestEffortAtLocation;

Page 26: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

ViewController Method

// Create the manager object self.locationManager = [[[CLLocationManager alloc] init] autorelease];locationManager.delegate = self;locationManager.desiredAccuracy = [[setupInfo objectForKey:kSetupInfoKeyAccuracy] doubleValue];[locationManager startUpdatingLocation];

Core Services Layer: Core Location

CLLocationManager

Page 27: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

CLLocationDegrees

Core Services Layer: Core Location

CLLocationCoordinate2D

CCLocationAccuracy

Accuracy Constants

CLLocationSpeed

CLLocation Class Constants

CLLocationDirection

Page 28: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

locationManager.desiredAccuracyis the most important property of Location

Manager. It determines the amount of power it consumed.

kCLLocationAccuracyBestkCLLocationAccuracyNearestTenMeterskCLLocationAccuracyHundredMeterskCLLocationAccuracyKilometerkCLLocationAccuracyThreeKilometers

Best10 Meters

100 Meters1000 Meters3000 Meters

Accuracy ConstantsCLLocation Class

Constant values are to specify the accuracy of a location.

Core Services Layer: Core Location

Page 29: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

CLLocationDegrees

Core Services Layer: Core Location

CLLocationSpeed

CLLocation Class Constants

Delivers a latitude or longitude value specified in degrees. Data type is double.

Delivers the speed at which the device is moving in meters per second. Data type is double.

Page 30: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

CLLocationDirection

Core Services Layer: Core Location

CLLocation Class Constants

Delivers a direction that is measured in degrees and relative to true north. Data type is double.

North is 0 degreesEast is 90 degreesSouth is 180 degreesAny “-” value indicates an invalid direction

Page 31: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

CCLocationDirection

Clockwise

Page 32: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

altitude

Core Services Layer: Core Location

coordinate

course

horizontalAccuracy

speed

CLLocation Class Properties

timestamp

verticalAccuracy

Page 33: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

altitude

Core Services Layer: Core Location

coordinate

course

horizontalAccuracy

speed

Read-Only

timestamp

verticalAccuracy

Page 34: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

altitude (meters)

Core Services Layer: Core Location

coordinate

course (degrees)

horizontalAccuracy (meters)

speed (meters per sec)

Measurement Units

timestamp (NSDate)

verticalAccuracy (meters)

Page 35: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

CLLocation Manager

CLLocation

CLHeading

Core Location Framework: Class

Page 36: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Create a CLLocationManager object to get heading by invoking [CLLocationManager

startUpdatingHeading].

iPhone 3GS contains a magnetometer – a magnetic field detector. It displays the raw

x, y, and z magnetometer values. Magnitude of the magnetic field is

computed in strength.

CLLocationManagerCore Location

Core Services Layer: Core Location

Page 37: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

headingAvailable

Core Services Layer: Core Location

headingFilter

startUpdatingHeading

stopUpdatingHeading

Heading Filter Value

CLLocationManager ClassProperties

Instance Methods

Constants

Page 38: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

CLLocationManagerCore Location

if (locationManager.headingAvailable == NO) {self.locationManager = nil; // No compass is available } else {

// heading service configuration locationManager.headingFilter = kCLHeadingFilterNone; // setup delegate callbacks locationManager.delegate = self; // start the compass [locationManager startUpdatingHeading]; }}

Core Services Layer: Core Location

Page 39: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

CLLocation Manager

CLLocation

CLHeading

Core Location Framework: Class

Page 40: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

CLHeadingCore Location

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)heading { // Update the labels with the raw x, y, and z values. [xLabel setText:[NSString stringWithFormat:@"%.1f", heading.x]]; [yLabel setText:[NSString stringWithFormat:@"%.1f", heading.y]]; [zLabel setText:[NSString stringWithFormat:@"%.1f", heading.z]];}

MapKit Framework: Class

Page 41: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MapKit Core Location

iPhone SDK Frameworks

Page 42: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MKAnnotationView

MKMapView

MKPinAnnotationView

MapKit Framework: Class

MKPlacemark

MKReverseGeocoder

MKUserLocation

Page 43: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MKReverseGeocoder offers services to convert a map coordinate (latitude &

Longitude) to info such as country, city, or street. It works with a network-based map service to look up placemark information

for a specified coordinate value.

MKReverseGeocoder

Cocoa Touch Layer: MapKit Framework

Page 44: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MKReverseGeocoder

Cocoa Touch Layer: MapKit Framework

Each app is limited to amount of

reverse geocoding

Send one reverse-geocoding

request for any one user action

Reuse the results from initial

request

Suggest not to send one reverse-

geocode request per minute

Page 45: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MKAnnotationView

MKMapView

MKPinAnnotationView

MapKit Framework: Class

MKPlacemark

MKReverseGeocoder

MKUserLocation

Page 46: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Cocoa Touch Layer: MapKit Framework

annotationsVisibleRect

mapType

centerCoordinate

delegate

region

selectedAnnotations

showsUserLocation

userLocation

userLocationVisible

zoomEnabled

annotations

MKMapView Class Properties

scrollEnabled

Page 47: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MKMapType

MKMapView Class

It delivers the type of map to display.

MKMapTypeStandardMKMapTypeSatellite MKMapTypeHybrid

Cocoa Touch Layer: MapKit Framework

Page 48: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MKAnnotationView

MKMapView

MKPinAnnotationView

MapKit Framework: Class

MKPlacemark

MKReverseGeocoder

MKUserLocation

Page 49: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Cocoa Touch Layer: MapKit Framework

leftCalloutAccessoryViewcalloutOffset

enabled

canShowCallout

centerOffset

image

reuseIdentifier

rightCalloutAccessoryView

selected

annotation

MKAnnotationView Class Properties

Page 50: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MKAnnotationView

MKMapView

MKPinAnnotationView

MapKit Framework: Class

MKPlacemark

MKReverseGeocoder

MKUserLocation

Page 51: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

MKAnnotationView Class Properties

Cocoa Touch Layer: MapKit Framework

animatesDrop

pinColor

MKPinAnnotationColor

Properties

Constants

MKPinAnnotationColorRed (Destination Points)MKPinAnnotationColorGreen (Starting Points)MKPinAnnotationColorPurple (User-specified Points)

Page 52: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

iPhone VS Android

Page 53: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Android SDK

Google Maps External Library

Location Services

Page 54: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

package: android.location

Classes

GpsSatellite LocationProvider

Geocoder LocationManager

Criteria Location

Address GpsStatus

Page 55: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

getLongitude()

getSpeed()

getTime()

Location Class Methods

getProvider()

package: android.location

getAccuracy()

getAltitude()

getBearing()

getExtras()

getLatitude()

Page 56: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Android SDK

Google Maps External Library

Location Services

Page 57: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Android SDK

Use Google APIs add-on

Download Maps external library

Must register with Google Maps service

Obtain a Maps API Key

Google MapsExternal Library

Page 58: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Android SDK

Declare Maps Library

Request internet permission

Hide title bar

AndroidManifest.xml

<uses-library android:name=”com.google.android.maps” /><uses-permission android:name=”android.permission.INTERNET” /><activity android:name=”.HelloMaps” android:label=”@string/app_name” android:theme=”@android:style/Theme.NoTitleBar”>

Page 59: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Android SDK

res/layout/main.xml

<?xml version=”1.0” encoding=”utf-8”?><com.google.android.maps.MapView xmlns:android=”http://schmas.android.com/apk/res/android” android:id=@+id/mapview” android:layout_width=”fill_parent” android:layout_height=”fill_parent” android:clickable=”true” android:apiKey=”Map API Key”/>

Page 60: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Android SDK

HelloMaps.java

public class HelloMaps extends MapActivity

@Override protected boolean isRouteDisplayed() {return false;}

@Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}

+

MapView mapView = (MapView) findViewById(R.id.mapview);mapView.setBuiltInZoomControls(true);

Page 61: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

3rd Party SDK: HTML / CSS / JavaScript

PhoneGap Titanium Mobile

Page 62: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

function run() { var win = function(position) { // Grab coordinates object from the Position object passed into success callback. var coords = position.coords; // Call for static google maps data – make sure you use your own Google Maps API key! var url = "http://maps.google.com/maps/api/staticmap?center=" + coords.latitude + "," + coords.longitude + "&zoom=13&size=320x480&maptype=roadmap&key=MyGoogleMapsAPIKey&sensor=true"; document.getElementById('map').setAttribute('src',url); }; var fail = function(e) { alert('Can\'t retrieve position.\nError: ' + e); }; navigator.geolocation.getCurrentPosition(win, fail); }

3rd Party SDK: PhoneGap

Page 63: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

3rd Party SDK: HTML / CSS / JavaScript

PhoneGap Titanium Mobile

Page 64: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

3rd Party SDK: Titanium

geolocation.js

var longitude = e.coords.longitude; var latitude = e.coords.latitude; var altitude = e.coords.altitude; var heading = e.coords.heading; var accuracy = e.coords.accuracy; var speed = e.coords.speed; var timestamp = e.coords.timestamp; var altitudeAccuracy = e.coords.altitudeAccuracy;

Corresponding to iphone SDK: Core Location Framework: CLLocationManager & CLLocation

JavaScript Library

Page 65: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

JavaScript Library

3rd Party SDK: Titanium

geolocation.js

Corresponding to iphone SDK: Core Location Framework: CLHeading

var x = e.heading.x;var y = e.heading.y;var z = e.heading.z;var magneticHeading = e.heading.magneticHeading;var accuracy = e.heading.accuracy;var trueHeading = e.heading.trueHeading;var timestamp = e.heading.timestamp;

Page 66: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

JavaScript Library

3rd Party SDK: Titanium

map_view.js

var mapview = Titanium.Map.createView({ mapType: Titanium.Map.STANDARD_TYPE, region: {latitude:33.74511, longitude:-84.38993, latitudeDelta:0.01, longitudeDelta:0.01}, animate:true, regionFit:true, userLocation:true, annotations:[apple, atlanta]});

Corresponding to iphone SDK: MapKit Framework

Page 67: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Chief Science Officer

Stardate: -314000

Page 68: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Stardate: -312969.2922374429

01.12.2010Earthdate

Page 69: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Stardate: -314000

Haiti 2010 Earthquake

Page 70: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Stardate: -312927.6255707762

01.27.2010Earthdate

Page 71: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Medical Tricorder

Page 72: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

STANFORD UNIVERSITYSchool of Engineering (EE46)

Save The WorldEngineering For Good

Have Fun Doing It

Page 73: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

STANFORD UNIVERSITYSchool of Engineering

Engineering For GoodSave The World and Have Fun Doing It

(EE 46)

Page 74: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Save The World

Malaria

TB

HIV

Page 75: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Scanner: 2D Objects

Camera (Photo / Video)

Bar Code

QR Code

Optical Character Recognition

(OCR)

Augmented Reality (AR)

Page 76: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Scanner: Life forms

Detect Diseases

Page 77: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Identify Patients

Scanner: Life forms

Page 78: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Medical Tricorder

Page 79: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Medical Tricorder

Page 80: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Medical Tricorder

Page 81: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

The Future Begins

Malaria

TB

HIV

Page 82: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

The Future BeginsJan 12, 2010

Haiti Earthquake 7.0M

Feb 27, 2010Chile Earthquake 8.8M

Mar 4, 2010Taiwan Earthquake 6.4M

Feb 26, 2010Japan Earthquake 7.3M

Mar 15, 2010Japan Earthquake 6.6M

Page 83: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Medical Tricorder

http://www.ghrf.org

Global Health Research Foundation

Stanford EE46

http://zwazosms.agilityhoster.com/iphone/

Page 84: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Medical Tricorder

Page 85: To boldly go where no man has gone before: Exploring …assets.en.oreilly.com/1/event/34/To boldly go where no man has gone... · where no man has gone before: Exploring Geo in

Q&Ahttp://www.slideshare.net/bess.ho