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 如何使用谷歌地图而不是位置地址从我的位置获取道路名称_Android_Google Maps_Directions - Fatal编程技术网

Android 如何使用谷歌地图而不是位置地址从我的位置获取道路名称

Android 如何使用谷歌地图而不是位置地址从我的位置获取道路名称,android,google-maps,directions,Android,Google Maps,Directions,我想在谷歌地图上获得道路名称,当我驾驶一辆汽车在道路上使用我的当前位置,我搜索了更多关于这一点,但我找不到解决方案。 我正在使用地理编码器获取我的位置名称,但它返回的是位置地址,而不是我在上面驾驶汽车的道路。 例如,goecoder返回地址行(5-街道、地区、国家) 当我在路上行驶10米时,地址变为(6-街道、地点、国家) 但我只想要长长的路的名字就像(街5) 我试图在geo coder中使用任何键的功能名称,但它返回的地址如下(5-street 5) 任何人都可以帮我吗?当你从地理编码器获取地

我想在谷歌地图上获得道路名称,当我驾驶一辆汽车在道路上使用我的当前位置,我搜索了更多关于这一点,但我找不到解决方案。 我正在使用地理编码器获取我的位置名称,但它返回的是位置地址,而不是我在上面驾驶汽车的道路。 例如,goecoder返回地址行(5-街道、地区、国家) 当我在路上行驶10米时,地址变为(6-街道、地点、国家) 但我只想要长长的路的名字就像(街5) 我试图在geo coder中使用任何键的功能名称,但它返回的地址如下(5-street 5)
任何人都可以帮我吗?

当你从地理编码器获取地址行时,你可以打电话使用GetThorroughe获取字符串,这将为你获取街道地址,例如“1600 Ampither Parkway”,然后,你可以打电话使用GetSubThorroughe获取字符串,如果不为空,可能返回通道的地址部分,例如上面发布的示例中的“1600”。然后,您可以在通道上执行字符串替换,将子通道替换为“”以去除数字。

您可以使用我正在使用的这段代码

   public String ReverseGeocodingStreet(Double lat,Double lng){
    String street= "";
    if(gc.isPresent()){
        List<Address> list = null;
        try {
            list = gc.getFromLocation(lat, lng,1);
        } catch (IOException e) {
            e.printStackTrace();
        }
        Address address = list.get(0);
        StringBuffer str = new StringBuffer();
        street = address.getThoroughfare();
    }
    return  street;
}
public String ReverseGeocodingStreet(双lat,双lng){
字符串街=”;
if(gc.isPresent()){
List=null;
试一试{
列表=gc.getFromLocation(纬度,液化天然气,1);
}捕获(IOE异常){
e、 printStackTrace();
}
地址=list.get(0);
StringBuffer str=新的StringBuffer();
street=地址。getthoroughway();
}
返回街;;
}

我看不出这个问题。是的,反向地理编码器将向您返回最接近您当前位置的LAT/LON位置的地址,但这将包括您所在道路的名称。你可以去掉你不想要的部分。如果我不理解您的问题,请澄清。地址如(1600 Ampither Parkway),我只需要道路名称(Ampither Parkway),如何仅从地址行获取道路名称如(1600 Ampither Parkway),我只需要道路名称(Ampither Parkway),如何仅从地址行获取道路名称请检查我在回答中所做的编辑,但我只希望道路名称为(Ampitheater Parkway)。文档不是很清楚,可能不适用于每个位置,但是。getAddressLine(0)应返回整个地址-“1600 Ampitheater Parkway Cupertino CA 95801”,address.GetthorRoughee()应该只返回'Ampitheater Parkway'(虽然文档中显示了地址),address.GetSubthoroughe()应该只返回'1600'。我会使用address.Getthoroughe()并查看这是否对您有效。我已经尝试使用address.Getthoroughe()和address.GetSubthoroughe()和功能名称,但无法获取道路名称。能否准确显示从address.getAddressLine(0)获得的内容,以及从address.GetThrougheare()获得的内容以及从address.GetSubThrougheare()获得的内容?在您测试的地区,地址可能没有很好的地理编码。您可以从硬编码一个LAT/LON开始,然后将其传递给地理编码器,地址是法国巴黎的埃菲尔铁塔,48.886787,2.295309不,此代码返回地址,如(1600 Ampither Parkway),我只需要道路名称(Ampitheater Parkway)不,此代码返回的地址类似于(1600 Ampitheater Parkway),我只需要道路名称(Ampitheater Parkway)。我已经尝试使用address.getThroughee()和address.getSubThroughee()以及功能名称,但无法获取道路名称。因此,您的位置(lat,lng)可能有问题