Android Geocoder - 从不同的地理位置调用时会得到不同的结果

3
我在我的Android程序中有以下代码。
List<Address> addressList = geoCoder.getFromLocation(37.790551,-122.433931, 1);
if (!addressList.isEmpty()) {
            address = addressList.get(0);
            String number = address.getSubThoroughfare();
            String streetName = address.getThoroughfare();
.....
}

这是一个请求,从旧金山的纬度和经度中获取街道名称(因此是1)。
当我在欧洲(特别是爱尔兰)的手机上执行此程序时,number 返回为 2250-2290streetname 返回为 Fillmore St
当我让朋友在加利福尼亚的手机上运行相同的代码时,numbernull,而streetname 仍然是 Fillmore st
我已经看到其他SO问题提到了区域设置,但地理位置是否会影响Android API中的查询呢?
Javascript的Geocoding API提到了区域偏差。我想知道在Android API中是否有类似的功能。我尝试创建Geocoder:
Geocoder geoCoder = new Geocoder(getApplicationContext(), Locale.US);

但这并不能重新创建基于加利福尼亚的结果。
2个回答

1

从让人们在不同的大陆上运行相同的代码来看,位置确实是一个因素。 然而,Javascript 地理编码 允许您指定一个区域


0

这些手机运行的是不同版本的安卓系统吗?另外,需要注意的一点是,“Geocoder类需要一个后端服务,该服务未包含在核心安卓框架中。”因此,如果这两个手机调用不同的后端服务来查询Geocoder,那么这可能解释了您所看到的输出。

我认为在Android 1.5中,他们包括了一个Google API后端服务实现Geocoder。我不知道新版本的安卓和Google API是否对Geocoder实现进行了更改,这可能会给您带来不同的结果,或者它来自其他后端服务。


两者都在运行Froyo系统。你如何指定后端? - Tim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接