Most visited

Recently visited

Added in API level 1

Location

public class Location
extends Object implements Parcelable

java.lang.Object
   ↳ android.location.Location


代表地理位置的数据类。

一个位置可以包含纬度,经度,时间戳和其他信息,如方位,高度和速度。

LocationManager生成的所有位置都保证具有有效的纬度,经度和时间戳(UTC时间和启动以来的实时实时时间),所有其他参数都是可选的。

Summary

Constants

int FORMAT_DEGREES

常量用于以“[+ - ] DDD.DDDDD格式指定经度或纬度的格式,其中D表示度数。

int FORMAT_MINUTES

常量用于以“[+ - ] DDD:MM.MMMMM”的形式指定经度或纬度的格式,其中D表示度数,M表示弧的分钟数(1分钟= 1/60度)。

int FORMAT_SECONDS

常量用于以“DDD:MM:SS.SSSSS”的形式指定经度或纬度的格式,其中D表示度数,M表示弧的分钟数,S表示弧的秒数(1分钟= 1/60度, 1秒= 1/3600度)。

Inherited constants

From interface android.os.Parcelable

Fields

public static final Creator<Location> CREATOR

Public constructors

Location(String provider)

使用指定的提供者构建新的位置。

Location(Location l)

构建一个从现有的位置对象复制的新位置对象。

Public methods

float bearingTo(Location dest)

当沿着这个位置和给定位置之间的最短路径行进时,返回真北方东方的近似初始方位。

static double convert(String coordinate)

将FORMAT_DEGREES,FORMAT_MINUTES或FORMAT_SECONDS描述的格式之一转换为双精度型。

static String convert(double coordinate, int outputType)

将坐标转换为字符串表示形式。

int describeContents()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。

static void distanceBetween(double startLatitude, double startLongitude, double endLatitude, double endLongitude, float[] results)

计算两个位置之间的大致距离(以米为单位),以及可选的两个位置之间最短路径的初始和最终方位。

float distanceTo(Location dest)

返回此位置与给定位置之间的近似距离(以米为单位)。

void dump(Printer pw, String prefix)
float getAccuracy()

以米为单位获取此位置的估计准确度。

double getAltitude()

如果可用,请获取高度,WGS 84参考椭球面以上的高度。

float getBearing()

以度为单位获得轴承。

long getElapsedRealtimeNanos()

从系统引导开始,实时返回此修复程序的时间。

Bundle getExtras()

将有关位置修复程序的其他提供程序特定信息作为捆绑包返回。

double getLatitude()

以度为单位获取纬度。

double getLongitude()

获取经度,以度为单位。

String getProvider()

返回生成此修复程序的提供程序的名称。

float getSpeed()

如有可用,以米/秒为单位获得速度。

long getTime()

返回此修复程序的UTC时间,以毫秒为单位,自1970年1月1日起。

boolean hasAccuracy()

如果此位置有准确性,则为真。

boolean hasAltitude()

如果此位置有高度,则为真。

boolean hasBearing()

如果此位置有轴承,则为真。

boolean hasSpeed()

如果这个位置有速度,则为真。

boolean isFromMockProvider()

如果位置来自模拟提供者,则返回true。

void removeAccuracy()

从这个位置删除准确性。

void removeAltitude()

从此位置移除高度。

void removeBearing()

从这个位置移除轴承。

void removeSpeed()

从这个位置移除速度。

void reset()

清除位置的内容。

void set(Location l)

将位置的内容设置为给定位置的值。

void setAccuracy(float accuracy)

设置此位置的估计精度,米。

void setAltitude(double altitude)

设置WGS 84参考椭球面以上的高度。

void setBearing(float bearing)

以度为单位设置轴承。

void setElapsedRealtimeNanos(long time)

从系统引导开始,设置此修复的实时时间。

void setExtras(Bundle extras)

将与此修复相关的额外信息设置为给定的Bundle。

void setLatitude(double latitude)

以度为单位设置纬度。

void setLongitude(double longitude)

以度为单位设置经度。

void setProvider(String provider)

设置生成此修复程序的提供程序的名称。

void setSpeed(float speed)

设置速度,以米/秒为单位。

void setTime(long time)

设置此修复程序的UTC时间,以毫秒为单位,自1970年1月1日起。

String toString()

返回对象的字符串表示形式。

void writeToParcel(Parcel parcel, int flags)

将此对象平铺到一个包裹中。

Inherited methods

From class java.lang.Object
From interface android.os.Parcelable

Constants

FORMAT_DEGREES

Added in API level 1
int FORMAT_DEGREES

常量用于以“[+ - ] DDD.DDDDD格式指定经度或纬度的格式,其中D表示度数。

常量值:0(0x00000000)

FORMAT_MINUTES

Added in API level 1
int FORMAT_MINUTES

常量用于以“[+ - ] DDD:MM.MMMMM”的形式指定经度或纬度的格式,其中D表示度数,M表示弧的分钟数(1分钟= 1/60度)。

常数值:1(0x00000001)

FORMAT_SECONDS

Added in API level 1
int FORMAT_SECONDS

常量用于以“DDD:MM:SS.SSSSS”的形式指定经度或纬度的格式,其中D表示度数,M表示弧的分钟数,S表示弧的秒数(1分钟= 1/60度, 1秒= 1/3600度)。

常量值:2(0x00000002)

Fields

CREATOR

Added in API level 1
Creator<Location> CREATOR

Public constructors

Location

Added in API level 1
Location (String provider)

使用指定的提供者构建新的位置。

默认时间,经度和纬度为0,并且该位置没有方位,高度,速度,准确度或附加值。

Parameters
provider String: the name of the provider that generated this location

Location

Added in API level 1
Location (Location l)

构建一个从现有的位置对象复制的新位置对象。

Parameters
l Location

Public methods

bearingTo

Added in API level 1
float bearingTo (Location dest)

当沿着这个位置和给定位置之间的最短路径行进时,返回真北方东方的近似初始方位。 最短路径使用WGS84椭球定义。 (几乎)对映的位置可能会产生无意义的结果。

Parameters
dest Location: the destination location
Returns
float the initial bearing in degrees

convert

Added in API level 1
double convert (String coordinate)

将FORMAT_DEGREES,FORMAT_MINUTES或FORMAT_SECONDS描述的格式之一转换为双精度型。 此转换是在区域设置不可知的方法中执行的,因此不保证与convert(double, int)

Parameters
coordinate String
Returns
double
Throws
NullPointerException if coordinate is null
IllegalArgumentException if the coordinate is not in one of the valid formats.

convert

Added in API level 1
String convert (double coordinate, 
                int outputType)

将坐标转换为字符串表示形式。 outputType可以是FORMAT_DEGREES,FORMAT_MINUTES或FORMAT_SECONDS中的一种。 坐标必须是-180.0到180.0之间的有效双精度。 此转换在依赖于默认区域设置的方法中执行,因此不保证与convert(String)一起convert(String)

Parameters
coordinate double
outputType int
Returns
String
Throws
IllegalArgumentException if coordinate is less than -180.0, greater than 180.0, or is not a number.
IllegalArgumentException if outputType is not one of FORMAT_DEGREES, FORMAT_MINUTES, or FORMAT_SECONDS.

describeContents

Added in API level 1
int describeContents ()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。 例如,如果对象在writeToParcel(Parcel, int)的输出中包含writeToParcel(Parcel, int) ,则此方法的返回值必须包含CONTENTS_FILE_DESCRIPTOR位。

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance.

distanceBetween

Added in API level 1
void distanceBetween (double startLatitude, 
                double startLongitude, 
                double endLatitude, 
                double endLongitude, 
                float[] results)

计算两个位置之间的大致距离(以米为单位),以及可选的两个位置之间最短路径的初始和最终方位。 距离和方位使用WGS84椭球定义。

计算出的距离存储在结果[0]中。 如果结果长度大于或等于2,则初始方位将存储在结果[1]中。 如果结果长度为3或更大,则最终方位将存储在结果[2]中。

Parameters
startLatitude double: the starting latitude
startLongitude double: the starting longitude
endLatitude double: the ending latitude
endLongitude double: the ending longitude
results float: an array of floats to hold the results
Throws
IllegalArgumentException if results is null or has length < 1

distanceTo

Added in API level 1
float distanceTo (Location dest)

返回此位置与给定位置之间的近似距离(以米为单位)。 距离使用WGS84椭球定义。

Parameters
dest Location: the destination location
Returns
float the approximate distance in meters

dump

Added in API level 3
void dump (Printer pw, 
                String prefix)

Parameters
pw Printer
prefix String

getAccuracy

Added in API level 1
float getAccuracy ()

以米为单位获取此位置的估计准确度。

我们将准确度定义为68%置信度的半径。 换句话说,如果您绘制一个以该位置的经度和纬度为中心的圆,其半径等于精度,则真实位置在圆内的概率为68%。

以统计学术语来说,假定位置误差是随机的,且具有正态分布,所以68%置信圈表示一个标准偏差。 请注意,在实践中,位置错误并不总是遵循如此简单的分布。

这种精度估算只涉及水平精度,并不表示方位精度,速度或高度(如果包含在此位置)。

如果这个位置没有准确性,则返回0.0。 LocationManager生成的所有位置LocationManager包含准确性。

Returns
float

getAltitude

Added in API level 1
double getAltitude ()

如果可用,请获取高度,WGS 84参考椭球面以上的高度。

如果这个位置没有高度,则返回0.0。

Returns
double

getBearing

Added in API level 1
float getBearing ()

以度为单位获得轴承。

方位是该设备的水平行进方向,与设备方向无关。 如果设备具有轴承,则保证在范围内(0.0,360.0)。

如果这个位置没有轴承,则返回0.0。

Returns
float

getElapsedRealtimeNanos

Added in API level 17
long getElapsedRealtimeNanos ()

从系统引导开始,实时返回此修复程序的时间。

此值可以与elapsedRealtimeNanos()进行可靠比较,以计算修复的时间并比较位置修复。 这是可靠的,因为经过实时保证每个系统启动都是单调的,并且即使在系统处于深度睡眠时也会继续增加(与getTime()不同)。

LocationManager生成的所有位置都保证具有有效的实时实时数据。

Returns
long elapsed real-time of fix, in nanoseconds since system boot.

getExtras

Added in API level 1
Bundle getExtras ()

将有关位置修复程序的其他提供程序特定信息作为捆绑包返回。 密钥和值由提供者决定。 如果没有可用的附加信息,则返回null。

下面列出了许多常用的键/值对。 使用此列表中的任何密钥的提供商必须按照以下说明提供相应的值。

  • satellites - the number of satellites used to derive the fix

Returns
Bundle

getLatitude

Added in API level 1
double getLatitude ()

以度为单位获取纬度。

LocationManager生成的所有位置将具有有效的纬度。

Returns
double

getLongitude

Added in API level 1
double getLongitude ()

获取经度,以度为单位。

LocationManager生成的所有位置将具有有效的经度。

Returns
double

getProvider

Added in API level 1
String getProvider ()

返回生成此修复程序的提供程序的名称。

Returns
String the provider, or null if it has not been set

getSpeed

Added in API level 1
float getSpeed ()

如有可用,以米/秒为单位获得速度。

如果这个位置没有速度,则返回0.0。

Returns
float

getTime

Added in API level 1
long getTime ()

返回此修复程序的UTC时间,以毫秒为单位,自1970年1月1日起。

请注意,设备上的UTC时间不是单调的:它可以不可预测地向前或向后跳转。 所以在计算时间增量时总是使用getElapsedRealtimeNanos()

另一方面, getTime()对于向用户显示人类可读时间或在重新启动或跨设备时仔细比较位置修复很有用。

LocationManager生成的所有位置都保证具有有效的UTC时间,但请记住自生成位置以来系统时间可能已更改。

Returns
long time of fix, in milliseconds since January 1, 1970.

hasAccuracy

Added in API level 1
boolean hasAccuracy ()

如果此位置有准确性,则为真。

LocationManager生成的所有位置都具有准确性。

Returns
boolean

hasAltitude

Added in API level 1
boolean hasAltitude ()

如果此位置有高度,则为真。

Returns
boolean

hasBearing

Added in API level 1
boolean hasBearing ()

如果此位置有轴承,则为真。

Returns
boolean

hasSpeed

Added in API level 1
boolean hasSpeed ()

如果这个位置有速度,则为真。

Returns
boolean

isFromMockProvider

Added in API level 18
boolean isFromMockProvider ()

如果位置来自模拟提供者,则返回true。

Returns
boolean true if this Location came from a mock provider, false otherwise

removeAccuracy

Added in API level 1
void removeAccuracy ()

从这个位置删除准确性。

在此调用之后, hasAccuracy()将返回false,而 getAccuracy()将返回0.0。

removeAltitude

Added in API level 1
void removeAltitude ()

从此位置移除高度。

在此调用之后, hasAltitude()将返回false,并且 getAltitude()将返回0.0。

removeBearing

Added in API level 1
void removeBearing ()

从这个位置移除轴承。

在此调用之后, hasBearing()将返回false,并且 getBearing()将返回0.0。

removeSpeed

Added in API level 1
void removeSpeed ()

从这个位置移除速度。

在此调用 hasSpeed()将返回false,并且 getSpeed()将返回0.0。

reset

Added in API level 1
void reset ()

清除位置的内容。

set

Added in API level 1
void set (Location l)

将位置的内容设置为给定位置的值。

Parameters
l Location

setAccuracy

Added in API level 1
void setAccuracy (float accuracy)

设置此位置的估计精度,米。

准确度的定义见 getAccuracy()

在此调用后 hasAccuracy()将返回true。

Parameters
accuracy float

setAltitude

Added in API level 1
void setAltitude (double altitude)

设置WGS 84参考椭球面以上的高度。

在此调用后 hasAltitude()将返回true。

Parameters
altitude double

setBearing

Added in API level 1
void setBearing (float bearing)

以度为单位设置轴承。

方位是该设备的水平行进方向,与设备方向无关。

输入将被包裹到范围(0.0,360.0)中。

Parameters
bearing float

setElapsedRealtimeNanos

Added in API level 17
void setElapsedRealtimeNanos (long time)

从系统引导开始,设置此修复的实时时间。

Parameters
time long: elapsed real-time of fix, in nanoseconds since system boot.

setExtras

Added in API level 1
void setExtras (Bundle extras)

将与此修复相关的额外信息设置为给定的Bundle。

Parameters
extras Bundle

setLatitude

Added in API level 1
void setLatitude (double latitude)

以度为单位设置纬度。

Parameters
latitude double

setLongitude

Added in API level 1
void setLongitude (double longitude)

以度为单位设置经度。

Parameters
longitude double

setProvider

Added in API level 1
void setProvider (String provider)

设置生成此修复程序的提供程序的名称。

Parameters
provider String

setSpeed

Added in API level 1
void setSpeed (float speed)

设置速度,以米/秒为单位。

在此调用后 hasSpeed()将返回true。

Parameters
speed float

setTime

Added in API level 1
void setTime (long time)

设置此修复程序的UTC时间,以毫秒为单位,自1970年1月1日起。

Parameters
time long: UTC time of this fix, in milliseconds since January 1, 1970

toString

Added in API level 1
String toString ()

返回对象的字符串表示形式。 通常, toString方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。

ObjecttoString方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @ ”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.

writeToParcel

Added in API level 1
void writeToParcel (Parcel parcel, 
                int flags)

将此对象平铺到一个包裹中。

Parameters
parcel Parcel: The Parcel in which the object should be written.
flags int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE.

Hooray!