我想获得多个纬度/经度的地址,有没有办法在一个请求中执行此操作?
我可以使用以下代码获取一个位置的地址:
try {
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(MainActivity.this, Locale.getDefault());
addresses = geocoder.getFromLocation(Double.parseDouble(latitude), Double.parseDouble(longitude), 1);
String address = addresses.get(0).getAddressLine(0);
Log.i("adresse :", address);
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
请帮助。
答案 0 :(得分:1)
创建一个方法,将其传递给您的坐标列表LatLngs并循环遍历您已有的代码。
答案 1 :(得分:1)
简短的回答是API不支持每个请求多个位置。
长期以来,Google已经设计了Geocoder API,以便在您进行客户端地理编码时客户端不会耗尽请求限制。请参阅following quote from this FAQ:
何时使用客户端地理编码
基本答案是“几乎总是”。由于地理编码限制是每个用户 会话,您的应用程序不会出现全球性风险 随着用户群的增长而限制。客户端地理编码不会面临 配额限制,除非您在一个地区内执行一批地理编码请求 用户会话。因此,一般情况下,运行客户端地理编码 不必担心你的配额。
存在两种客户端地理编码的基本架构。
完全在浏览器中运行地理编码和显示。例如, 用户在您的页面上输入地址。您的应用程序对其进行了编码 然后您的页面使用地理编码在地图上创建标记。或者你的 app使用地理编码进行一些简单的分析。没有数据发送到 你的服务器。这样可以减少服务器的负载,但不会给您带来负担 任何关于用户正在做什么的感觉。
在浏览器中运行地理编码,然后将其发送到服务器。对于 例如,用户输入地址。您的应用程序对其进行了地理编码 浏览器。然后,应用程序将数据发送到您的服务器。服务器 回复一些数据,例如附近的兴趣点。这个 允许您根据自己的数据自定义响应,也可以自定义响应 如果需要,缓存地理编码。此缓存允许您优化均匀 更多。您甚至可以使用地址查询服务器,看看是否有 最近缓存的地理编码,如果你这样做,请使用它。如果你 不要,然后没有结果返回浏览器,让它进行地理编码 结果并将其发送回服务器以进行缓存。
有关地理编码请求限制的更多细节,see this URL。