java - 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();
}
解决方案
tl; dr您必须自己解析字符串。没有你想要的方法。
来自文档:
返回由给定索引编号的地址行(从 0 开始),如果不存在这样的行,则返回 null。
因此,在地址有多行的情况下,该索引指定要返回地址的哪一行。它不是指地址线的特定部分。
getStreetName
您必须自己解析它,因为我在文档中没有看到类似的内容。
您可能会从调查getThoroughfare()中受益,但即便如此,您仍然需要对其进行解析。
推荐阅读
- java - 从中运行批处理文件后如何继续执行Java类
- r - strucchange 中的 breakdates 给出浮点数而不是日期
- git - GitHub Pages 显示白页
- c# - 如何使用 WebClient 的下载将文件下载到特定位置
- android - Jenkins gradle 守护进程似乎无法重复使用或清理,并且在连续几次构建后系统崩溃
- hadoop - 备用资源管理器在接管控制权时如何计算节点及其各自的节点标签详细信息?
- gps - NMEA输出中的ublox GPS奇怪字符
- android - Flutter 应用恢复;当活动被系统杀死时如何保存应用程序状态?
- mysql - MySQL GROUP BY,同时按列内容保留某些行
- mobile - 创建我的 CodeIgniter 网站的移动版本