Android 返回地址范围的Geocoder API
我正在尝试使用纬度和经度坐标来解析特定地址。目前,Geocoder API偶尔会返回一系列地址,即使所选位置是一栋独立的房子,而不是公寓楼 下面的方法接受纬度、经度和活动,并返回从Geocoder API返回的Android 返回地址范围的Geocoder API,android,google-maps,gps,android-maps-v2,android-location,Android,Google Maps,Gps,Android Maps V2,Android Location,我正在尝试使用纬度和经度坐标来解析特定地址。目前,Geocoder API偶尔会返回一系列地址,即使所选位置是一栋独立的房子,而不是公寓楼 下面的方法接受纬度、经度和活动,并返回从Geocoder API返回的地址对象: public static Address resolveAddress(double latitude, double longitude, Activity activity) { Geocoder geocoder = new Geocoder(activity)
地址对象:
public static Address resolveAddress(double latitude, double longitude, Activity activity) {
Geocoder geocoder = new Geocoder(activity);
List<Address> addresses;
try {
addresses = geocoder.getFromLocation(latitude, longitude, 1);
if (addresses != null && addresses.size() > 0 ) {
Log.d(TAG, "resolveAddress: " + addresses.get(0).toString());
return addresses.get(0);
}
} catch (IOException e) {
Log.e(TAG, e.getMessage(), e);
}
return null;
}
公共静态地址解析地址(双纬度、双经度、活动){
地理编码器地理编码器=新地理编码器(活动);
列出地址;
试一试{
地址=地理编码器.getFromLocation(纬度,经度,1);
if(addresses!=null&&addresses.size()>0){
Log.d(标记“resolveAddress:+addresses.get(0.toString());
返回地址。获取(0);
}
}捕获(IOE异常){
Log.e(标记,e.getMessage(),e);
}
返回null;
}
Geocoder API提供的getFromLocation()
方法接受一个maxResults
参数作为其最后一个参数,您可以在上面的代码中看到该参数设置为1。即使如此,虽然只返回一个结果,但在单个结果中会返回一系列街道编号
我假设GPS和安卓定位服务足够精确,可以解决一间房子的问题。如何使用纬度和经度坐标来最好地确定单个地址?您能给出一个结果中包含多个街道编号的纬度和经度对示例吗?当然,使用经度设置为-122.101
和纬度设置为37.412
的模拟器,我得到的结果是483-487胜利大道,加利福尼亚州山景城
。我认为您使用的lat、lng不够精确。我可以用这些坐标得到和你一样的结果。当我对地址“487 Victory Avenue,Mountain View,California”进行地理编码请求时,我得到的lat,lng为“37.4118933,-122.1008218”。如果我将此lat,lng放入反向地理编码请求中,结果数组中的第一个结果不再是地址范围,而是“487 Victory Avenue,Mountain View,California”如果使用更精确的lat,会得到更好的结果吗?使用经度-122.1008218
和纬度37.4118933
提供相同的地址范围。