【发布时间】:2014-07-23 23:04:47
【问题描述】:
我正在创建一个 Android 应用程序,我需要使用地理位置。
我已经开始使用来自 Android (android.location.geocoder) 的 Geocoder API,但它会导致一些问题(等待服务器响应超时),这似乎根据我所读到的内容是常见的。
为了让我的应用程序在发生此类错误时正常工作,我使用了地理编码网络服务。
现在,该应用程序每次都能正常工作。问题是API的geocoder和web service的geocoder返回的结果不一样。
例如,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
【问题讨论】:
-
你能发布你的代码来调用地理编码器和网络服务吗?我也使用了类似的技术,但是从地理编码网络服务返回的 json 很大
-
我在编辑中添加了代码。
标签: android google-maps-android-api-2 google-geocoding-api