【问题标题】:How to get road name from my location using google map not the location address如何使用谷歌地图而不是位置地址从我的位置获取道路名称
【发布时间】:2019-05-13 22:46:52
【问题描述】:

当我使用当前位置在路上开车时,我想在谷歌地图中获取道路名称,我对此进行了更多搜索,但找不到解决方案。 我正在使用地理编码器来获取我的位置名称,但它返回的位置地址不是我在上面开车的道路。 即以 goecoder 返回地址行为例(5- 街道、地区、国家) 当我在路上行驶 10 米时,地址变为(6- 街道、地区、国家) 但我只想要长长的路名,比如 (street 5) 我尝试使用地理编码器中的任何键的功能名称,但它返回的地址如(5-street 5) 有谁能帮帮我吗?

【问题讨论】:

  • 我没有看到这个问题。是的,反向地理编码器将为您返回一个最接近您当前位置的 LAT/LON 位置的地址,但这将包括您所在道路的名称。你可以去掉你不想要的部分。如果我不理解您的问题,请澄清。
  • 地址如(1600 Ampitheater Parkway),我只想要道路名称(Ampitheater Parkway),如何仅从地址行获取道路名称
  • 地址如(1600 Ampitheater Parkway),我只想要道路名称(Ampitheater Parkway),如何仅从地址行获取道路名称
  • 请检查我对答案所做的编辑

标签: android google-maps directions


【解决方案1】:

当您从地理编码器中获取地址行后,您可以使用 getThoroughfare 调用获取字符串,这将获取街道地址,例如“1600 Ampitheater Parkway”,然后,您可以调用获取使用 getSubThoroughfare 的字符串,如果不为 null,则可能返回 Thoroughfare 的地址部分,例如上面发布的示例中的“1600”。然后,您可以对 Thoroughfare 字符串进行字符串替换,将 Sub-Thoroughfare 替换为 "" 以去除数字。

【讨论】:

  • 但我只希望道路名称为 (Ampitheater Parkway)
  • 文档不是很清楚,它可能不适用于每个位置,但 .getAddressLine(0) 应该返回整个地址 - '1600 Ampitheater Parkway Cupertino CA 95801',address.getThoroughfare() 应该只返回“Ampitheater Parkway”(尽管文档显示它带有地址),并且 address.getSubThoroughfare() 应该只返回“1600”。我会使用 address.getThoroughfare() 看看是否适合你。
  • 我已经尝试使用 address.getThoroughfare() 和 address.getSubThoroughfare() 和特征名称,但无法获取道路名称
  • 您能否准确地展示您从 address.getAddressLine(0) 获得的信息,以及您从 address.getThoroughfare() 获得的信息以及从 address.getSubThoroughfare() 获得的信息?您正在测试的区域中的地址可能没有很好地进行地理编码。您可以从硬编码一个 LAT/LON 开始,将其传递给地理编码器,用于法国巴黎埃菲尔铁塔等著名地点,48.886787, 2.295309
【解决方案2】:

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

   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;
}

【讨论】:

  • 不,此代码返回地址如(1600 Ampitheater Parkway),我只想要道路名称(Ampitheater Parkway)
  • 不,此代码返回地址如(1600 Ampitheater Parkway),我只想要道路名称(Ampitheater Parkway)
  • 我已经尝试使用 address.getThoroughfare() 和 address.getSubThoroughfare() 和特征名称,但无法获取道路名称
  • 所以你的位置(纬度,经度)问题可能有问题
猜你喜欢
  • 2014-06-01
  • 2012-09-18
  • 1970-01-01
  • 2013-12-08
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多