Bruce Scharlau, University of Aberdeen, 2011

Slides:



Advertisements
Similar presentations
Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.
Advertisements

Android Application Development Tutorial. Topics Lecture 4 Overview Overview of Sensors Programming Tutorial 1: Tracking location with GPS and Google.
Dealing with the chaos monkey
Bruce Scharlau, University of Aberdeen, 2012 Data storage options for mobiles Mobile Computing.
Bruce Scharlau, University of Aberdeen, 2010 Android and Location Mobile Computing Unless otherwise stated, images are from android sdk.
Bruce Scharlau, University of Aberdeen, 2010 Android UI, and Networking Mobile Computing Based on android-sdk_2.2 Unless otherwise stated, images are from.
Members: Twinkle Agarwal Anjana Bhirde Ravi Madaiah David Hodgson Instructor: Dr. Perez Davila Mentor: Mr. Todd Guillory.
1 The phone in the cloud Utilizing resources hosted anywhere Claes Nilsson.
Term 2, 2011 Week 1. CONTENTS Sending and receiving devices Mobile devices connected to networks – Smart phones – Personal digital assistants – Hand-held.
Mobile Apps! Your customers are mobile. Is your business? Vbrookpartnersllc.com (864)
What is an application?. An application is... An application (or app) is a type of software that allows you to perform specific tasks! Applications for.
Location-aware Computing By Bonam Kim. Outline Introduction Motivation Location Determination Techniques Location-aware Services Example for Implementation.
SelfCon Foil no 1 Dynamic component systems 1. SelfCon Foil no 2 Pre-structured systems vs. dynamic component systems Pre-structured – emphasis on content.
Introducing to Location in Android LOCATION IS EVERYTHING Kamil Lelonek Kamil Lelonek
Location based services
Prepared by: Prepared by: Jameela Rabaya Jameela Rabaya Fatima Darawsha Fatima Darawsha.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Sensors. Point your phone at the sky, and Google Sky Map tells you which stars you’re looking at. Tilt your phone, and you can control the game you’re.
CS378 - Mobile Computing Maps. Using Google Maps Like other web services requires an API key from Google ons/google-apis/mapkey.html.
Company confidential Prepared by HERE Transit Sr. Product Manager, HERE Transit Product Overview David Volpe.
A reactive location-based service for geo-referenced individual data collection and analysis Xiujun Ma Department of Machine Intelligence, Peking University.
Multi-criteria infrastructure for location-based applications Shortly known as: Localization Platform Ronen Abraham Ido Cohen Yuval Efrati Tomer Sole'
Location Aware Devices  Location information can lead to creative applications  GPS hardware  cell tower positioning.
Cosc 4730 Phone Programming in Java An Introduction.
© 2009 Research In Motion Limited Introduction to GPS and Wi-Fi technology on BlackBerry smartphones.
SM3121 Software Technology Mark Green School of Creative Media.
© 2012 Microsoft Corporation. All rights reserved. Amazing apps. Windows 8 comes with built-in apps for the things you do most to help get your favorite.
Getting Your Message Across Presented by Duncan Craig Communications & Marketing Co-Ordinator.
Apps VS Mobile Websites Which is better?. Bizness Apps Survey Bizness Apps surveyed over 500 small business owners with both a mobile app and a mobile.
Your brand name here Beautiful mobile apps. Mobile landscape The rate of mobile computing has rapidly out- paced both the 80’s PC and the 90’s internet.
Microsoft Windows 2003 Server. Client/Server Environment Many client computers connect to a server.
INFORMATION TECHNOLOGY IN BUSINESS AND SOCIETY SESSION 21 – LOCATION-BASED SERVICES SEAN J. TAYLOR.
Location-Based API 1. 2 Location-Based Services or LBS allow software to obtain the phone's current location. This includes location obtained from the.
GIS technologies and Web Mapping Services
NetService Cardholder Tutorial GE Corporate Payment Services 4246 South Riverboat Road Salt Lake City, Utah Copyright Information.
Location based services Using Google Maps v2 etc. in Android apps 1Location based services.
Location based services
INTRODUCTION TO HTML5 Geolocation. Display a Specific Location with Google Maps  You can use the Google Maps API to display a custom map on your own.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
App Rights or wrongs ? A look at smartphone apps or: why RTFM* is not just important for geeks and “computer types” * = Read The F+*#ing (or “Fine”) Manual.
Mobile Technologies Introduction Basics of GSM Value Added Services SMS Short Codes Asterisk * LBS.
BeTelGeuse: Tool for Bluetooth Data Gathering Petteri Nurmi, Joonas Kukkonen, Eemil Lagerspetz, Jukka Suomela, Patrik Floréen Helsinki Institute for Information.
Mobile Apps For Small Businesses Your customers are mobile. Is your business?
Investigation in the development of Standalone Location Based Services Nkululeko Gojela Supervisor: Dr Hannah Thinyane FINAL PROJECT PRESENTATIONS.
Android Storage. There are several options for storage of data with Android We can put data into a preferences file. We can put data into a ‘normal’ file.
MAKANI ANDROID APPLICATION Prepared by: Asma’ Hamayel Alaa Shaheen.
Location. GPS Global Positioning System – At least 4 satellites typically used 3 required extra for error detection and altitude typically accurate within.
Mtivity Client Support System Quick start guide. Mtivity Client Support System We are very pleased to announce the launch of a new Client Support System.
Android - Location Based Services. Google Play services facilitates adding location awareness to your app with automated location tracking Geo fencing.
FriendFinder Location-aware social networking on mobile phones.
FriendFinder Location-aware social networking on mobile phones.
Pervasive Computing MIT SMA 5508 Spring 2006 Larry Rudolph 1 Location, Location, Location Larry Rudolph.
Sensors – Part 2 SE 395/595. Location in Android LocationManager class – Configure providers and their listeners LocationListener class – Handles update.
Bahram Rahimzadegan Utah Golf Course GIS 1820 Final.
Cosc 4735 LocationAware API. Previous on … Before we looked at GPS location. – d-gpslocation.pptx
Global Positioning System Or, Where the heck am I ???
3 rd -party APIs Kalin Kadiev Astea Solutions AD.
1. 2 Android location services Determining a device’s current location Tracking device movements Proximity alerts.
1 Terminal Management System Usage Overview Document Version 1.1.
Lesson 11: Web Services and API's
Mobile Computing CSE 40814/60814 Spring 2017.
Tracking and Booking Taxi
Lesson 11: Web Services & API's
Sensors, maps and fragments:
Mobile Computing CSE 40814/60814 Spring 2018.
SharePoint Online Authentication Patterns
Making a good thematic map – Extracting or collecting geographic data
Lesson 11: Web Services and API's
CS378 - Mobile Computing Location and Maps.
Maps, Geocoding, and Location-Based Services.
Presentation transcript:

Bruce Scharlau, University of Aberdeen, 2011 Location for Mobiles Mobile Computing Some slides from MobEduNet Bruce Scharlau, University of Aberdeen, 2011

Where… is the question answered by location How do I get there? What’s around me? Where am I? Bruce Scharlau, University of Aberdeen, 2011

Location needs context Car/Walk Bike ??? Where am I going, and how am I travelling there? Bruce Scharlau, University of Aberdeen, 2011

LBS can be pulled by the client Pull based scenarios let the user determine the interaction: get directions, find a shop, etc Bruce Scharlau, University of Aberdeen, 2011

LBS push and pull the client Push based scenarios let the service prompt the user: proximity based sending of adverts and coupons Special voucher for startbucks Bruce Scharlau, University of Aberdeen, 2011

Location can be determined a number of ways for mobiles A- GPS Satellite GPS Enhanced 911 Cell tower ID Local proximity for Bluetooth Bruce Scharlau, University of Aberdeen, 2011 http://www.flickr.com/photos/timothymorgan/75699268/

Location methods all offer different features Real-time positioning methods Accuracy depends on the method used Different level of accuracy Warm-up time Bruce Scharlau, University of Aberdeen, 2011

The output of the location also differs Location types: Spatial term Text description Text description is usually expressed as a street address, including city, postal code, etc. Bruce Scharlau, University of Aberdeen, 2011

Spatial terms provide latitude-longitude-altitude Latitude: 0-90 degrees north or south of the equator Longitude: 0-180 degrees east or west of the prime meridian, which passes through Greenwich, England Altitude: meters above sea level Bruce Scharlau, University of Aberdeen, 2011

Go the ‘long way round’ to remember lat/long Latitude = north/south of the equator Longitude = east/west of Greenwich Bruce Scharlau, University of Aberdeen, 2011

Location can be determined a number of ways for mobiles A- GPS Satellite GPS Enhanced 911 Cell tower ID Local proximity for Bluetooth Bruce Scharlau, University of Aberdeen, 2011 http://www.flickr.com/photos/timothymorgan/75699268/

Network based positioning uses Cell ID Device is communicating with a Base Transceiver Station (BTS) Current cell ID can be used to identify BTS Accuracy depends on the size of the cell: A GSM cell may be anywhere from 2 to 20 kilometers in diameter Other techniques used along with cell ID can achieve accuracy within 150 meters Bruce Scharlau, University of Aberdeen, 2011

Satellite based positioning GPS is controlled by the US Department of Defense, and other systems are also coming online Determines the device's position by calculating differences in the times signals from different satellites take to reach the receiver Most accurate method, between 4 and 40 meters Disadvantages: Extra hardware can be costly Consumes battery while in use Requires some warm-up „Canyon effects” in cities, where satellite visibility is intermittent Bruce Scharlau, University of Aberdeen, 2011

Short-range positioning beacons use Bluetooth Small areas like single buildings Local area network can provide location Bluetooth for short-range positioning Bruce Scharlau, University of Aberdeen, 2011

Accuracy is dependent upon the application Some applications don't need high accuracy: Position information from a larger area Others will be useless if the location isn't accurate enough: Navigation applications Bruce Scharlau, University of Aberdeen, 2011

There are also other issues to consider Where were you at?, asks the boss. Where is the shipment?, asks the delivery man. What is the pattern of behaviour for this customer?, asks the network operator. All can be answered with Location data, but should they be? Bruce Scharlau, University of Aberdeen, 2011

Nokia and maps the dark horse? Believe still long way to go with maps: generic now, tailored per context in future Crosss-platform HERE Maps with API for developers Combine maps with AR for more information and content http://www.guardian.co.uk/technology/appsblog/2012/nov/14/nokia-here-maps-location Bruce Scharlau, University of Aberdeen, 2011

Foursquare is like a loyalty card Analytics and Yield management: some 500,000 registered merchants with dashboard allows merchants to claim their venue, run specials, and access a host of other data about how 15mn customers interact with their business in real-time. Customer loyalty: Foursquare wants to be "a digital version of a stamp card." This is where check-in specials come in: Free drinks for the mayor or for the nth check-in.  Search and Discovery: Foursquare added the Explore feature a year ago to let users search neighborhoods and garner recommendations for nearby businesses.  Deals: Foursquare has partnered with a number of daily deal sites over the past year to provide real-time location-based deals http://www.businessinsider.com/bii-report-heres-how-location-based-services-like-foursquare-are-trying-to-become-big-businesses-2012-9 Bruce Scharlau, University of Aberdeen, 2011

Bruce Scharlau, University of Aberdeen, 2011 Location apps not easy Facebook places is little-used by business; possibly as not mobile based app Google Latitude not done much and more of a bolt-on to maps Yelp both desktop (search for places to eat/drink/etc) and mobile with reviews etc, but mainly US Bruce Scharlau, University of Aberdeen, 2011

Location based services aren’t corporate enough Security and privacy policies fine for individuals, but not at business level. People want more control over who sees where they are Location is really another form of social media http://www.computerworld.com/s/article/9226785/Location_based_services_Are_they_there_yet_ Bruce Scharlau, University of Aberdeen, 2011

LBS in iOS uses location + maps Core location provides ‘where’ someone is Maps handled by Map Kit Framework Geocoding to move from lat/long to place objects (address, building, etc) on map Reverse geocoding also possible Issue with maps at moment… Bruce Scharlau, University of Aberdeen, 2011

Bruce Scharlau, University of Aberdeen, 2011 And where is Aberdeen? What’s the latitude and longitude of Aberdeen? Bruce Scharlau, University of Aberdeen, 2011

Aberdeen is west of London 57.1467°N 2.0901°W http://www.earthtools.org/ Bruce Scharlau, University of Aberdeen, 2011

Use Google API for location Select Google APIs for new projects using maps and location Otherwise your app won’t run Bruce Scharlau, University of Aberdeen, 2011

Also put permissions in manifest Need to add permissions for INTERNET ACCESS_COURSE_LOCATION ACCESS_FINE_LOCATION Bruce Scharlau, University of Aberdeen, 2011

Manifest also needs to specify map library Apps with maps need to specify need as ‘true’ for com.google.android.maps library in manifest Bruce Scharlau, University of Aberdeen, 2011

Map layouts need API key Need to get Google MAPs API key to use maps in your apps – referenced in layout http://code.google.com/android/add-ons/google-apis/mapkey.html This allows map tiles to be downloaded to your application Bruce Scharlau, University of Aberdeen, 2011

Direction API for routes included Can use direction API within maps API for routes http://www.anddev.org/google_driving_directions_-_mapview_overlayed-t826.html Bruce Scharlau, University of Aberdeen, 2011

LocationListener updates map This is about as simple as it gets for map display http://www.vogella.de/articles/Android/article.html#locationapi Bruce Scharlau, University of Aberdeen, 2011

Use DDMS tool to set location Bruce Scharlau, University of Aberdeen, 2011

Geocoder library to look up location Bruce Scharlau, University of Aberdeen, 2011

Bruce Scharlau, University of Aberdeen, 2011 Summary Maps need API key to be displayed Maps needs permissions set in manifest Maps need API enabled Lots of work done over network Bruce Scharlau, University of Aberdeen, 2011

Location API for Java ME is JSR 179 JSR 179: javax.microedition.location package Physical location Orientation (compass direction) Support the creation and use of databases of known landmarks, stored in the device Bruce Scharlau, University of Aberdeen, 2011

The Location API has only a few components Source: Nokia Location Guide Bruce Scharlau, University of Aberdeen, 2011

Bruce Scharlau, University of Aberdeen, 2011 JSR 179 requires CLDC 1.1 Connected Device Configuration (CDC) or Connected Limited Device Configuration 1.1 (CLDC) for floating-point numbers CLDC 1.0 does not support floating-point numbers No requirements for MIDP Bruce Scharlau, University of Aberdeen, 2011

Hardware determines the other requirements, ie BT, GPS, orientataion Hardware platform determines which location methods are supported At least one is needed for using LBS Request providers with particular characteristics, such as a minimum degree of accuracy Some location methods may be free; others may entail service fees Bruce Scharlau, University of Aberdeen, 2011

Using Java ME the Location API starts with a Criteria Need a LocationProvider, but can only call that once you know the criteria for choosing one: cost, accuracy, etc Criteria c = new Criteria(); LocationProvider lp = LocationProvider.getInstance(c); Bruce Scharlau, University of Aberdeen, 2011

Bruce Scharlau, University of Aberdeen, 2011 Don’t need to write any extra code to get coordinates from Bluetooth GPS API checks for ‘best’ LocationProvider given the Criteria requirements If it finds an ‘on-board’ device, then it uses that. If not, then it checks the Bluetooth list of devices for a suitable one, and uses this. Bruce Scharlau, University of Aberdeen, 2011

Bruce Scharlau, University of Aberdeen, 2011 With a LocationProvider you can call getLocation() to find your location No matching LocationProvider returns null, and a LocationException if no LocationProviders are available Location location = lp.getLocation(10); // timeout in seconds QualifiedCoordinates qc = location.getQualifiedCoordinates(); double lat = qc.getLatitude(); double lon = qc.getLongitude(); Bruce Scharlau, University of Aberdeen, 2011

Get period updates on your position with LocationListener // method added by LocationListener public void locationUpdated(LocationProvider provider, Location location) { QualifiedCoordinates qc = location.getQualifiedCoordinates(); double lat = qc.getLatitude(); double lon = qc.getLongitude(); String latString = Double.toString(lat); String lonString = Double.toString(lon); log("locationUpdated(): " + latString + " " + lonString); } public void providerStateChanged(LocationProvider provider, int newState) { log("providerStateChanged()"); Bruce Scharlau, University of Aberdeen, 2011

Use ProximityListener to find out when you’re close to a location These only work on supported devices Bruce Scharlau, University of Aberdeen, 2011

The LandmarkStore provides a location database Easy to create a LandmarkStore LandmarkStore.createLandmarkStore("Auction"); All LandmarkStores available to ALL Java ME apps String[] stores = LandmarkStore.listLandmarkStores(); Bruce Scharlau, University of Aberdeen, 2011

Find your LandmarkStore and then add landmark LandmarkStore ls = LandmarkStore.getInstance("Auction"); qc = new QualifiedCoordinates(35.977876, -78.514786, Float.NaN, Float.NaN, Float.NaN); Landmark landmark = new Landmark("Baseball park", "Forest Park", qc, null); ls.addCategory("Sports"); ls.addLandmark(landmark, "Sports"); Bruce Scharlau, University of Aberdeen, 2011

Find landmarks meeting set criteria using Enumeration Enumeration ge = ls.getLandmarks(null, 35.963280, 36.010783, -78.555336, -78.483582); while (ge.hasMoreElements()) { Landmark found = (Landmark) ge.nextElement(); log(" " + found.getName()); } ls.getLandmarks(double minLatitude, double maxLatitude, double minLongitude, double maxLongitude); Bruce Scharlau, University of Aberdeen, 2011

You may also be able to determine the Orientation of the device Orientation provides an understanding of ‘North’ either as magnetic, or ‘true North’ as ‘magnetic north’ moves over time This can be used in some devices such as the N95 as a type of ‘accelerometer’ similar to what is used in the Wii controls Bruce Scharlau, University of Aberdeen, 2011

Nokia’s TouristRoute example provides a LBS and MVC study Source: Nokia Location Guide Bruce Scharlau, University of Aberdeen, 2011

TouristRoute startup follows criteria requirements Source: Nokia Location Guide Bruce Scharlau, University of Aberdeen, 2011

TouristRoute is ‘blueprint’ of sorts, but raises questions too Uses many classes – decomposses objects and views Might be better to use fewer, test if need performance, or other issues resolved Bruce Scharlau, University of Aberdeen, 2011

Further references for Location API http://www.ibm.com/developerworks/edu/wi-dw-wi-mobilesa-i.html IBM example that shows how to use external event tool in WTK (registration required) http://www.forum.nokia.com/main/resources/technologies/location_based_services/java.html Nokia tutorial also good on using its tools, and on MVC design for larger app Bruce Scharlau, University of Aberdeen, 2011