gpt4 book ai didi

android - Android Geocoder 和 Google Geocoding 网络服务之间的不同结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:38:28 26 4
gpt4 key购买 nike

我正在创建一个 Android 应用程序,我需要使用地理定位。

我已经开始使用来自 Android 的 Geocoder API (android.location.geocoder),但它会导致一些问题(等待服务器响应超时),这似乎根据我所读的内容,这很常见。

为了在发生此类错误时使我的应用程序正常运行,我使用了地理编码网络服务

现在,应用程序每次都能正常工作。问题是来自 API 的地理编码器和来自 Web 服务的地理编码器返回的结果不同。

例如,Web 服务仅返回 3 个地址,其中只有城市名称和国家/地区,而来自 API 的地理编码返回大约 8 个地址,其中包含要素名称、大道、地点...

问题是:是否有办法使 Web 服务的结果与 API 的结果完全相同?

编辑

这是我的 MainGeocoder 类:

public class MainGeocoder {

private Geocoder geocoderAPI;
private GeocoderRest geocoderRest;

public MainGeocoder(Context context) {
geocoderAPI = new Geocoder(context);
geocoderRest = new GeocoderRest(context);
}

public List<Address> getFromLocationName(String search, int maxResults) {
List<Address> addresses;
try {
addresses = geocoderAPI.getFromLocationName(search, maxResults);
return addresses;
} catch (IOException e) {
e.printStackTrace();
try {
addresses = geocoderRest.getFromLocationName(search, maxResults);
return addresses;
} catch (IOException e1) {
return null;
} catch (LimitExceededException e1) {
return null;
}
}
}
}

它主要是尝试从 API Geocoder 获取地址列表。如果抛出 IO 异常,它会使用从此处粘贴的 GeocoderRest 类从 Web 服务获取此列表:https://stackoverflow.com/a/15117087/3571822

最佳答案

Is there a way to make the results from the web service exactly the same than the ones from the API?

根本没有。在大多数尝试中,这两个地理编码器之间总会存在差异。因为android.location.Geocoder在内部使用一个服务,你无法在源代码中找到它,你现在永远不会知道到底有什么区别,而是问谷歌。而且我认为他们不会泄露这些信息。

顺便说一句,您使用的 GeocoderRest 类甚至不解析响应中包含的一半信息。通常 Web 服务比 SDK 中的 API 更可靠。

关于android - Android Geocoder 和 Google Geocoding 网络服务之间的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24018094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com