G.T*_*.T. 6 android google-geocoding-api google-maps-android-api-2
我正在创建一个Android应用程序,我需要使用地理位置.
我已经开始使用Android的Geocoder API(android.location.geocoder),但它会导致一些问题(等待服务器响应的时间超时),根据我所读的内容,这似乎很常见.
为了使我的应用程序在发生此类错误时正常工作,我使用了Geocoding Web服务.
现在,应用程序每次都有效.问题是地理编码器从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;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
它基本上试图从API Geocoder获取地址列表.如果抛出IO异常,它将使用从此处粘贴的GeocoderRest类从Web服务获取此列表:https://stackoverflow.com/a/15117087/3571822
有没有办法让 Web 服务的结果与 API 的结果完全相同?
根本不。在大多数尝试中,这两个地理编码器之间总是存在差异。因为android.location.Geocoder在内部使用了一个 Service,你无法在源代码中找到它,所以你永远不会现在确切的区别在哪里,而是询问 Google。我认为他们不会泄露这些信息。
顺便说一句,您使用的 GeocoderRest 类甚至不解析响应中包含的一半信息。通常 Web 服务比 SDK 中的 API 更可靠。
| 归档时间: |
|
| 查看次数: |
1923 次 |
| 最近记录: |