首页 > 解决方案 > getAddressLine 中的索引值(int index)

问题描述

我正在 android studio 中开发一个移动应用程序,它收集用户的位置信息(纬度和经度)并对其进行地理编码以获取地址信息。我能够获得我认为代表州/省的国家名称和管理区域。但是,我只需要获取道路名称,在这种情况下,getAddressLine 方法返回完整地址。我注意到地址行接受一个必须为 0 及以上的索引号,但我想知道作为索引提供的最大数字是多少以及每个值代表什么。

我尝试输入不同的数字,但我想知道index返回哪个参数的值。

String road_name = "";
String state = "";
String country = "";
Geocoder geocoder = new Geocoder(getApplicationContext(),Locale.getDefault());
 try {
  List<Address> listAddresses = geocoder.getFromLocation(latitude, 
  longitude, 1);
  if (null != listAddresses && listAddresses.size(index) > 0) {
   road_name += listAddresses.get(0).getAddressLine(0);
   state += listAddresses.get(0).getSubAdminArea();
   country += listAddresses.get(0).getCountryName();
  }
 } catch (IOException e) {
  e.printStackTrace();
 }

标签: javagoogle-geocoder

解决方案


tl; dr您必须自己解析字符串。没有你想要的方法。

来自文档

返回由给定索引编号的地址行(从 0 开始),如果不存在这样的行,则返回 null。

因此,在地址有多行的情况下,该索引指定要返回地址的哪一行。它不是指地址线的特定部分。

getStreetName您必须自己解析它,因为我在文档中没有看到类似的内容。

您可能会从调查getThoroughfare()中受益,但即便如此,您仍然需要对其进行解析。


推荐阅读