从坐标获取位置

时间:2012-05-20 20:52:48

标签: android android-location

我给出了纬度和经度的坐标,我想用那些制作一个位置对象。没有一个构造函数需要双倍才能创建一个位置,所以我试着这样:

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

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

4 个答案:

答案 0 :(得分:14)

只需使用新位置创建新位置(“reverseGeocoded”); 像这样

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);

答案 1 :(得分:4)

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

我认为你在谈论android.location.Location?

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

你想反转地理编码吗?如找到该地理坐标的地址?

或者您想将其用作“假”位置并将其提供给其他应用程序?

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

所以你可以像这样创建一个位置:

Location l = new Location("network");

但我不认为这会导致你想要的东西。

以下是文档的链接:

https://developer.android.com/reference/android/location/Location.html#Location%28java.lang.String%29

答案 2 :(得分:1)

Location l = new Location("any string"); 
l.setLatitude(lat);
l.setLongitude(lon);

答案 3 :(得分:0)

试试这个:

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();    
}