我想通过Android的GeoCoder类使用用户输入文本进行搜索。这里是我的代码:Android GeoCoder:通过邮政编码搜索返回意外结果
Geocoder iGeocoder = new Geocoder(getContext(), Locale.GERMAN);
public Address getAdress(String aUserInput) {
List<Address> tAddressList = iGeocoder.getFromLocationName(aUserInput, 1000, 47.060940, 8.564278, 51.526396, 13.736392);
if(tAddressList != null &&
tAddressList.size() > 0) {
for(Address tAddress : tAddressList) {
// return the first adress found for germany.
Log.e(TAG, "returning Adress: " + tAddress);
if(tAddress.getCountryCode().equals("DE")) {
return tAddress;
}
}
return null;
} else {
return null;
}
}
边框我传递给getFromLocationName
粗略地表示,德国政府拜仁。我知道这个边界框并不能保证结果地址真的存在。我发现一些问题,特别是通过邮政编码搜索时。
- 通过邮政编码搜索时返回的一些结果地址没有“管理区域”,因此我无法筛选我想要的状态(=“拜仁”)。
- 奇怪的是,如果我搜索邮政编码97070,97078或97076,GeoCoder只返回美国俄勒冈州的地址。然而这些邮政编码也是在德国小镇维尔茨堡的地方。例如。 97082将返回维尔茨堡地址,但97070(维尔茨堡中央)不会被发现,它只返回俄勒冈地址。
你需要证明你在哪里上的拉链搜索代码码。 –
这就是代码。这一切都在一行“getFromLocationName ..”中完成。你错过了什么吗? – dan
啊 - 这是邮政编码,其余部分是静态的(我的意思是你的硬编码值)? –