我想在我的应用程序中实现一个功能,我可以看到我当前的位置,如果位置不准确,我甚至可以选择手动设置它。如何才能做到这一点?我应该使用网络服务吗?
修订
猜猜我的问题并不是很清楚。对不起。 我现在能够得到我的lat和long。但有时候它不是很准确。在那种情况下,我应该能够输入我的地名(州),我希望收到那个地方的标准纬度...我只是想知道如何实现它..
答案 0 :(得分:3)
这是我为自己的目的编写的一个MockLocationProvider
课程。它只是更改位置对象的纬度和经度并返回它。
public class MockLocationProvider {
public static Location getMockLocation(double latitude, double longitude) {
Location location = new Location(LocationManager.GPS_PROVIDER);
location.setLatitude(latitude);
location.setLongitude(longitude);
return location;
}
}
但是,无法真正理解为什么要在实际应用程序中使用它。我正在使用它进行测试。无论如何,希望这会有所帮助。
答案 1 :(得分:0)
您可能需要反向地理编码(http://en.wikipedia.org/wiki/Reverse_geocoding)。有一些免费服务。搜索“反向地理编码”,你会发现一些免费选项。我从来没有使用它们,所以我不能推荐它们。
答案 2 :(得分:0)
你需要一个地理编码器,一个将街道,城市名称转换成纬度的api。和lng。值。
如果你已经有办法发出http请求并解析json,你可以使用google web api: https://developers.google.com/maps/documentation/geocoding/intro?hl=de,它会返回良好的结果并且准确无误。此外,它有更多的信息,而不仅仅是lat和lng。
所有的灵魂都是谷歌地理编码器对象,它向后兼容,直到api等级1:https://developer.android.com/reference/android/location/Geocoder.html。这个往往并不总能取得好成绩,特别是对于较小的村庄而言,并不是那么出名的地方。
询问您是否需要更多帮助等。
朱利