Android 从坐标中获取位置

Android 从坐标中获取位置,android,android-location,Android,Android Location,我已经给出了纬度和经度的坐标,我想用这些坐标创建一个location对象。没有一个构造函数需要双倍来创建位置,所以我尝试如下: Location l = null; l.setLatitude(lat); l.setLongitude(lon); Location l = new Location("network"); 但它崩溃了。有什么不同的想法吗?这会崩溃,因为您无法对不存在的对象调用方法 我猜你说的是安卓。位置。位置 这通常由Android的各种定位服务返回。 你想用它做什么

我已经给出了纬度和经度的坐标,我想用这些坐标创建一个location对象。没有一个构造函数需要双倍来创建位置,所以我尝试如下:

 Location l = null;
 l.setLatitude(lat);
 l.setLongitude(lon);
Location l = new Location("network");

但它崩溃了。有什么不同的想法吗?

这会崩溃,因为您无法对不存在的对象调用方法

我猜你说的是安卓。位置。位置

这通常由Android的各种定位服务返回。 你想用它做什么

您想对其进行反向地理编码吗?就像在找一个地理坐标的地址一样

或者你想用它作为一个“假”位置,并将其提供给其他应用程序

顺便说一句,有两个构造器。一个采用定位服务的名称,另一个采用复制构造函数并采用现有位置

因此,您可以创建如下位置:

 Location l = null;
 l.setLatitude(lat);
 l.setLongitude(lon);
Location l = new Location("network");
但我不认为这会导致你想要的东西

以下是文档的链接:


只需使用新位置创建一个新位置(“反向编码”); 像这样

GeoPoint newCurrent = new GeoPoint(59529200, 18071400);
        Location current = new Location("reverseGeocoded");
        current.setLatitude(newCurrent.getLatitudeE6() / 1e6);
        current.setLongitude(newCurrent.getLongitudeE6() / 1e6);
        current.setAccuracy(3333);
        current.setBearing(333);
试试这个:

public double lat;  
public double lon;  

public void onLocationChanged(Location loc)  
{  
lat=loc.getLatitude();  
lon=loc.getLongitude();  
Toast.makeText(getBaseContext(),"Latitude:" + lat +Longitude"+lon,Toast.LENGTH_LONG).show();    
}

不。我正在做的是,对于给定的位置a,使用Google Places API接收附近的位置,我需要计算位置和当前位置之间的距离。我看到了distanceto()方法,但它接受location对象。因此,我需要从lon创建位置,并从Google的JSON对象中返回lat。l为null。为什么要调用这些方法呢?因为没有一个构造函数将两个double作为参数,后来我了解到可以通过将任何字符串作为提供程序来实现。