Location Based Services for J2ME F. Ricci
Content � Location-based services � What is a location � How to obtain location data � Satellites � Cellular network � Short range positioning beacons � JSR 179 – Location API � LocationProvider � ProximityListener � LocationListener � Landmark and LandmarkStore
What location-based services do? � Location Based Services ( LBS) answ er three questions: � Where am I? � What’s around me? � How do I get there?
Where am I? � Localization Services � They determine the location of the user using one among several positioning technologies � Position is combined with other information to provide personalized applications and services � E.g.: Guide Services � The present location and information about personal preferences are combined to help users finding food, lodging, and entertainment fitting their tastes.
What is around me? � A user can have a device for searching point of interests (hotel, restaurants, bus stations, etc) that are around � A user may have a device alerting him when he is close to some predefined locations � A user can detect the presence of other user close to her location - with similar interests � Example: Nokia MARA project (Hyperlinking Reality s u i d a via Phones) r y t i m i x o r P Proximity Coordinates Event [ Lat, Lon, Altitude]
How do I get there? � In car , on a m otorbike , trekking � Provide m aps with large spatial coverage � Can play m usic and store data � Provide voice-based directions � Touchscreen � I ntegrated with mobile phone, ipod or a PC � Can store w aypoints and itineraries � Show points of interest (POI).
Fundamental positioning data The inform ation available � for an LBS are : Latitude (angular � distance from Equator) Longitude (angular � distance from Greenwich meridian) Altitude (above the � sea level) Orientation (angular � distance from the north pole)
WGS84 (World Geodetic System 1984) � The latitude range is between + 90.0 and -90.0 � The longitude range is between + 180.0 and -180.0 � The altitude is expressed in meters and represents the altitude of the point from the ellipsoid defined in the 1. Ocean 2. Ellipsoid WGS84 standard 3. Local plumb 4. Continent 5. Geoid http: / / en.wikipedia.org/ wiki/ Geoid
How positioning data can be obtained � Location data can be obtained from: � the m obile phone netw ork � Satellites � Short-range positioning beacons (RFID) � A LBS can exploit location data, obtained from a location provider, in two different ways: 1 .Use it in the device-based application : e.g. access the navigation system and getting directions 2 .Upload data to a server and retrieve results from the server: e.g. in fleet management applications to signal the truck position to the HQ and get new task assignment.
Example: Asso SAT (www.advent.it) � A powerful and compact computer, designed for the strict environmental conditions of the automotive � Installed in the vehicles and connected to the vehicle instruments - monitors the state of operation and the use of the vehicle � A GPS receiver can detect the vehicle position � Can be queried from the headquarters to know the vehicle position or can send the position with a given time frequency � Can record the route and link precise events (e.g., refueling) to the position � Data related to two months of operation can be stored, and sent to Headquarters (GPRS) � Data collected in the HQ can be analyzed.
Position from the Mobile Network � Cell Broadcast Service , or CBS is a carrier version of SMS - it enables a cell phone operator to broadcast messages to a group of cell phone users – e.g. cell info on channel 50 in Italy � The current cell I D - can be used to identify the Base Transceiver Station (BTS) that the device is communicating with and the location of that BTS � The accuracy of this method depends on the size of the cell – inaccurate as a GSM cell may be anywhere from 2 to 20 kilometers in diameter � Other techniques are based on triangularization used along with cell ID can achieve accuracy within 150 meters
Network Based Solutions GIS or Mapping Application LMU LMU TETRA Radio tower Gateway GIS or Mapping Application C&C Server Network Based Solutions Current Accuracy = 200m - 2km LMU Future Accuracy =100m - 500m LMU
Location Technologies Network-based � UL-TOA (Uplink Time of Arrival) � c = 2 9 9 7 9 2 4 5 8 m / s Base Station 1 Mobile T = distance 1 1 Base Station 2 = distance 2 T 2 Base Station 3 = distance 3 T 3
Location Technologies Network-based � AOA (Angle of Arrival) α 2 α 1
Using Satellites The Global Positioning System (GPS), controlled by the US � Department of Defense, uses a constellation of 24 satellites orbiting the earth GPS determines the device's position by calculating differences � in the tim es signals from different satellites take to reach the receiver GPS signals are encoded , so the mobile device must be equipped � with a GPS receiver GPS is potentially the m ost accurate m ethod (between 4 and 40 � meters if the GPS receiver has a clear view of the sky) � It has some draw backs : � The extra hardware can be costly � Consumes battery while in use � Requires some warm-up after a cold start to get an initial fix on visible satellites � It also suffers from "canyon effects" in cities, where satellite visibility is intermittent.
How GPS works? � Range from each satellite calculated � range = “time delay” * “speed of light” � Technique called trilateration is used to determine you position or “fix” � Intersection of spheres � At least 3 satellites required for 2D fix � However, 4 satellites should always be used � The 4th satellite used to compensate for inaccurate clock in GPS receivers � Yields much better accuracy and provides 3D fix
Determining Range � Receiver and satellite use same code � Synchronized code generation � Compare incoming code with receiver generated code Measure time difference Series of ones and zeroes repeating between the same part of code every 1023 bits. So Complicated alternation of bits that pattern looks random thus called “pseudorandom code”. By the receiver From the satellite
Accurate Timing is the Key � Satellites have highly accurate atomic clocks � Receivers have less accurate clocks � Measurements made using “nanoseconds” � 1 nanosecond = 1 billionth of a second � In 1 nanosecond the light travels for 0.299m � 1/ 1000th of a second error could introduce error of 299 Km � Discrepancy between satellite and receiver clocks must be resolved � Fourth satellite is required to solve the 4 unknowns (X, Y, Z and receiver clock error)
Sources of Errors � Largest source is due to the atmosphere � Atmospheric refraction � Charged particles � Water vapor Ionosphere (Charged Particles) Troposphere
Other Sources of Errors � Geometry of satellite positions � Satellite clock errors � Satellite position or “ephemeris” errors � Quality of GPS receiver � Multi-path errors
Short-range positioning beacons � In relatively small areas, such as a single building, a local area netw ork can provide locations along with other services � For example, appropriately equipped devices can use Bluetooth for short-range positioning � Another possibility is using RFI D ( Radio Frequency I dentification) � They can encode the position � Signal the position to the reader when it is close to the tag.
Location API – JSR 179 � The JSR 179 Location API are the J2ME tools for building LBS services � Are available for � CDC � CLDC 1.1 (Floating Point required) � The main classes are: � LocationProvider � Location and LocationListener � Coordinates and PromixityListener � LandMark and LandMarkStore
General Location API MIDlet Model addProximityListener() setLocationListener() proximityEvent() locationUpdated() getInstance() getInstance()
Fundamental Classes
LocationProvider Class Abstract Factory Class that build � concrete LocationProvider objects satisfying some «abstract» Criteria passed in the LocationProvider create construction static getInstance(Criteria criteria ) Criteria are encapsulated in a � Criteria object � getLocation(int timeout) LocationProviderImpl provides information about user «abstract» Location within a timeout getLocation(int timeout ) Location (exception otherwise) It can be in following states � s n r u t e r � AVAILABLE LocationImpl OUT_OF_SERVICE � TEMPORARILY_UNAVAILABLE � LocationListener and the � PromixityListener can listen to events send by a LocationProvider
Criteria Class � Information that describes the requirements that a particular instance of LocationProvider m ust satisfy � The requirement regard aspect like: � Horizontal accuracy � Vertical accuracy � Response time � Max consumption of service � Eventual cost � Info on speed or direction needed � Info on altitude needed � Info related to addresses needed � Is not mandatory that a LocationProvider must satisfy all the requirements.
Recommend
More recommend