2013-02-11 53 views

回答

1

我的gps位置是否是我的确切位置?

这可能会有所不同,这取决于您实际所处的位置。通常GPS信号的误差在5到50米之间。这可以通过手机塔和其他网络结构来减少。有一个清晰,通畅的天空视图也有助于获得一个准确的信号。

如果有的话,任何人都可以提供一些资源将纬度经度 的位置转换为城市或地点。

您可以尝试使用谷歌的Geocoding API或其他Nominatim这是一个开源的对应项。

0

Geocoder对象,你可以调用getFromLocation

public List<Address> getFromLocation (double latitude, double longitude, int maxResults) 

这将返回有一个方法Address对象的列表getLocality

Geocoder gcd = new Geocoder(context, Locale.getDefault()); 
List<Address> addresses = gcd.getFromLocation(lat, lng, 1); 
if (addresses.size() > 0) 
    System.out.println(addresses.get(0).getLocality()); 
+0

出现上下文错误。我必须将其定义为变量或其他内容吗? – 2013-02-11 07:55:32

+0

您的上下文是'YourActivity.this' – jlopez 2013-02-11 07:57:35

+0

其显示错误未处理IOException .. – 2013-02-11 08:39:30

0

试试这个

Geocoder gCoder = new Geocoder(myContext); 
ArrayList<Address> addresses = gCoder.getFromLocation(123456789, 123456789, 1); 
if (addresses != null && addresses.size() > 0) { 
Toast.makeToast(myContext, "country: " + adresses.get(0).getCountryName(), Toast.LENGTH_LONG).show(); 
} 
+0

其显示上下文无法解析到一个类型 – 2013-02-11 07:30:19

+0

我没有问题,相同的代码。我使用MyContext的活动背景作为Myactivity.this及其工作 – 2013-02-11 07:35:50