我给出了纬度和经度的坐标,我想用那些制作一个位置对象。没有一个构造函数需要双倍才能创建一个位置,所以我试着这样:
Location l = null;
l.setLatitude(lat);
l.setLongitude(lon);
但它崩溃了。有什么不同的想法吗?
答案 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");
但我不认为这会导致你想要的东西。
以下是文档的链接:
答案 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();
}