7

我已经给出了纬度和经度的坐标,我想用它们制作一个位置对象。没有一个构造函数需要双打来制作一个位置,所以我尝试这样:

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

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

4

4 回答 4

14

只需使用 new Location("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);
于 2012-05-20T21:03:30.210 回答
4

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

我想你在谈论android.location.Location?

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

你想反向地理编码吗?就像找到那个地理坐标的地址一样?

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

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

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

Location l = new Location("network");

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

这是文档的链接:

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

于 2012-05-20T21:02:58.460 回答
1
Location l = new Location("any string"); 
l.setLatitude(lat);
l.setLongitude(lon);
于 2012-05-20T21:05:10.293 回答
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();    
}
于 2013-01-04T06:09:42.193 回答