public class Location extends Object
Location
class represents the standard set of basic location
information. This includes the timestamped coordinates, accuracy, speed,
course, and information about the positioning method used for the location,
plus an optional textual address.
The location method is indicated using a bit field. The individual bits are defined using constants in this class. This bit field is a bitwise combination of the location method technology bits (MTE_*), method type (MTY_*) and method assistance information (MTA_*). All other bits in the 32 bit integer than those that have defined constants in this class are reserved and MUST not be set by implementations (i.e. these bits must be 0).
A Location
object may be either 'valid' or 'invalid'. The
validity can be queried using the isValid
method. A valid
Location
object represents a location with valid coordinates and
the getQualifiedCoordinates
method must return there
coordinates. An invalid Location
object doesn't have valid
coordinates, but the extra info that is obtained from the
getExtraInfo
method can provide information about the reason why
it was not possible to provide a valid Location
. For an invalid
Location
object, the getQualifiedCoordinates
method
may return either null
or some coordinates where the information
is not necessarily fully correct. The periodic location updates to the
LocationListener
may return invalid Location objects if it isn't
possible to determine the location.
This class is only a container for the information. When the platform
implementation returns Location
objects, it MUST ensure that it
only returns objects where the parameters have values set as described for
their semantics in this class.
Modifier and Type | Field and Description |
---|---|
static int |
MTA_ASSISTED
Location method is assisted by the other party (Terminal assisted for
Network based, Network assisted for terminal based).
|
static int |
MTA_UNASSISTED
Location method is unassisted.
|
static int |
MTE_ANGLEOFARRIVAL
Location method Angle of Arrival for cellular / terrestrial RF system.
|
static int |
MTE_CELLID
Location method Cell-ID for cellular (in GSM, this is the same as CGI,
Cell Global Identity).
|
static int |
MTE_SATELLITE
Location method using satellites (for example, Global Positioning System
(GPS)).
|
static int |
MTE_SHORTRANGE
Location method Short-range positioning system (for example, Bluetooth
LP).
|
static int |
MTE_TIMEDIFFERENCE
Location method Time Difference for cellular / terrestrial RF system (for
example, Enhanced Observed Time Difference (E-OTD) for GSM).
|
static int |
MTE_TIMEOFARRIVAL
Location method Time of Arrival (TOA) for cellular / terrestrial RF
system.
|
static int |
MTY_NETWORKBASED
Location method is of type network based.
|
static int |
MTY_TERMINALBASED
Location method is of type terminal based.
|
Modifier | Constructor and Description |
---|---|
protected |
Location()
A protected constructor for the
Location to allow
implementations of LocationProviders to construct the
Location instances. |
Modifier and Type | Method and Description |
---|---|
AddressInfo |
getAddressInfo()
Returns the
AddressInfo associated with this
Location object. |
float |
getCourse()
Returns the terminal's course made good in degrees relative to true
north.
|
String |
getExtraInfo(String mimetype)
Returns extra information about the location.
|
int |
getLocationMethod()
Returns information about the location method used.
|
QualifiedCoordinates |
getQualifiedCoordinates()
Returns the coordinates of this location and their accuracy.
|
float |
getSpeed()
Returns the terminal's current ground speed in meters per second (m/s) at
the time of measurement.
|
long |
getTimestamp()
Returns the time stamp at which the data was collected.
|
boolean |
isValid()
Returns whether this
Location instance represents a valid
location with coordinates or an invalid one where all the data,
especially the latitude and longitude coordinates, may not be present. |
public static final int MTE_SATELLITE
public static final int MTE_TIMEDIFFERENCE
public static final int MTE_TIMEOFARRIVAL
public static final int MTE_CELLID
public static final int MTE_SHORTRANGE
public static final int MTE_ANGLEOFARRIVAL
public static final int MTY_TERMINALBASED
public static final int MTY_NETWORKBASED
public static final int MTA_ASSISTED
public static final int MTA_UNASSISTED
protected Location()
Location
to allow
implementations of LocationProviders
to construct the
Location
instances.
This method is not intended to be used by applications.
This constructor sets the fields to implementation specific default values. Location providers are expected to set the fields to the correct values after constructing the object instance.
public boolean isValid()
Location
instance represents a valid
location with coordinates or an invalid one where all the data,
especially the latitude and longitude coordinates, may not be present.
A valid Location
object contains valid coordinates whereas
an invalid Location
object may not contain valid coordinates
but may contain other information via the getExtraInfo()
method to provide information on why it was not possible to provide a
valid Location
object.
Location
instance is valid and false indicating an
invalid Location
instancegetExtraInfo(String)
public long getTimestamp()
Implementations make best effort to set the timestamp as close to this
point in time as possible. The time returned is the time of the local
clock in the terminal in milliseconds using the same clock and same time
representation as System.currentTimeMillis()
.
System.currentTimeMillis()
public QualifiedCoordinates getQualifiedCoordinates()
QualifiedCoordinates
object. If the coordinates
are not known, returns null
.public float getSpeed()
Float.NaN
if the speed is not knownpublic float getCourse()
Float.NaN
if the course is not knownpublic int getLocationMethod()
For example, if the location method used is terminal based, network assisted E-OTD, the value 0x00050002 ( = MTY_TERMINALBASED | MTA_ASSISTED | MTE_TIMEDIFFERENCE) would be returned.
If the location is determined by combining several location technologies, the returned value may have several MTE_* bits set.
If the used location method is unknown, the returned value must have all the bits set to zero.
Only bits that have defined constants within this class are allowed to be used. Other bits are reserved and must be set to 0.
public AddressInfo getAddressInfo()
AddressInfo
associated with this
Location
object. If no address is available,
null
is returned.AddressInfo
associated with this
Location
objectpublic String getExtraInfo(String mimetype)
A MIME type is used to identify the type of the extra information when
requesting it. If the implementation supports this type, it returns the
extra information as a String encoded according to format identified by
the MIME type. If the implementation does not support this type, the
method returns null
.
This specification does not require implementations to support any extra information type.
The following MIME types are defined here together with their definitions in order to ensure interoperability of implementations wishing to use these types. The definition of these types here is not an indication that these formats are preferred over any other format not defined here.
When the MIME type is "application/X-jsr179-location-nmea", the returned string shall be a valid sequence of NMEA sentences formatted according to the syntax specified in the NMEA 0183 v3.1 specification. These sentences shall represent the set of NMEA sentences that are related to this location at the time this location was created.
When the MIME type is "application/X-jsr179-location-lif", the returned string shall contain an XML formatted document containing the "pd" element defined in the LIF Mobile Location Protocol TS 101 v3.0.0 as the root element of the document.
When the MIME type is "text/plain", the returned string shall contain textual extra information that can be displayed to the end user.
mimetype
- the MIME type of the requested extra informationnull
if the
information for the requested MIME type is not available or not
supported by this implementation.