如何以编程方式获取/设置当前位置?
我想在我的应用程序中实现一个功能,在那里我可以看到我的当前位置,如果位置不准确,我甚至可以选择手动设置它。如何才能做到这一点?我应该使用Web服务还是什么?如何以编程方式获取/设置当前位置?
修订
想我是不是我的问题很清楚。对不起。 我目前能够获得我的经验。但有时候它不是很准确。在这种情况下,我应该能够输入我的地名(状态),我想接受标准经纬度为那个地方..我只是想知道如何实现它..
这里有一点MockLocationProvider
I类已经为我的目的而写。它只是改变位置对象的经度和纬度并将其返回。
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;
}
}
但是,不能真正理解为什么你想在实际应用中使用它。我只是用来测试。无论如何,希望这有助于。
我知道这是一个老人,但说例如我实现这个代码。如果我在手机上打开GPS,它是否会按照我上面设置的纬度和长度来检测我的起点?如果没有,你能否建议我可以研究什么样的课程/服务来完成这个任务。 – andre3wap 2016-07-11 13:25:01
@ andre3wap这里是一个很好的开始:http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/ – 2016-07-15 08:20:51
您可能需要反向地理编码(http://en.wikipedia.org/wiki/Reverse_geocoding)。有一些免费的服务。搜索“反向地理编码”,你会发现一些免费的选项。我从来没有使用过它们,所以我不能推荐任何。
谢谢...将搜索并看到... – 2012-02-14 08:40:14
你需要一个地理编码器,一个将街道,城市名称转换为纬度的api。和lng。值。
如果你已经有一个方法,使HTTP请求和解析JSON,你可以使用谷歌的网页API: https://developers.google.com/maps/documentation/geocoding/intro?hl=de,它返回了良好的效果,是一种准确的。此外,它有更多的信息,而不仅仅是拉特和lng。
并且所有在一个灵魂将是谷歌地理编码器对象是向后兼容,直到API级别1:https://developer.android.com/reference/android/location/Geocoder.html。这一个往往不会总是回报良好的结果,特别是对于较小的村庄,而不是那么知名的地方。
询问是否需要更多的帮助等。
朱利叶斯·
请添加更多的细节,你已经尝试过你的问题是什么。 – poitroae 2012-02-11 15:35:57
当你说“手动设置选项,如果位置不准确”,这是特定于你的应用程序还是整个手机?换句话说,如果您在堪萨斯州中部手动指定位置,Google地图(以及任何其他位置感知应用程序)是否会在堪萨斯州中显示您? – Mendhak 2012-02-11 15:39:03
[这里](http://developer.android.com/guide/topics/location/index.html)是Android中定位服务的概述,您可能需要。 – 2012-02-11 15:41:14