Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 返回地址范围的Geocoder API_Android_Google Maps_Gps_Android Maps V2_Android Location - Fatal编程技术网

Android 返回地址范围的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)

我正在尝试使用纬度和经度坐标来解析特定地址。目前,Geocoder API偶尔会返回一系列地址,即使所选位置是一栋独立的房子,而不是公寓楼

下面的方法接受纬度、经度和活动,并返回从Geocoder API返回的
地址
对象:

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
提供相同的地址范围。