从多个纬度/经度获取多个地址

时间:2014-02-06 16:05:10

标签: android google-maps google-geocoder

我想获得多个纬度/经度的地址,有没有办法在一个请求中执行此操作?

我可以使用以下代码获取一个位置的地址:

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

请帮助。

2 个答案:

答案 0 :(得分:1)

创建一个方法,将其传递给您的坐标列表LatLngs并循环遍历您已有的代码。

答案 1 :(得分:1)

简短的回答是API不支持每个请求多个位置。

长期以来,Google已经设计了Geocoder API,以便在您进行客户端地理编码时客户端不会耗尽请求限制。请参阅following quote from this FAQ:

  

何时使用客户端地理编码

     

基本答案是“几乎总是”。由于地理编码限制是每个用户   会话,您的应用程序不会出现全球性风险   随着用户群的增长而限制。客户端地理编码不会面临   配额限制,除非您在一个地区内执行一批地理编码请求   用户会话。因此,一般情况下,运行客户端地理编码   不必担心你的配额。

     

存在两种客户端地理编码的基本架构。

     

完全在浏览器中运行地理编码和显示。例如,   用户在您的页面上输入地址。您的应用程序对其进行了编码   然后您的页面使用地理编码在地图上创建标记。或者你的   app使用地理编码进行一些简单的分析。没有数据发送到   你的服务器。这样可以减少服务器的负载,但不会给您带来负担   任何关于用户正在做什么的感觉。

     

在浏览器中运行地理编码,然后将其发送到服务器。对于   例如,用户输入地址。您的应用程序对其进行了地理编码   浏览器。然后,应用程序将数据发送到您的服务器。服务器   回复一些数据,例如附近的兴趣点。这个   允许您根据自己的数据自定义响应,也可以自定义响应   如果需要,缓存地理编码。此缓存允许您优化均匀   更多。您甚至可以使用地址查询服务器,看看是否有   最近缓存的地理编码,如果你这样做,请使用它。如果你   不要,然后没有结果返回浏览器,让它进行地理编码   结果并将其发送回服务器以进行缓存。

有关地理编码请求限制的更多细节,see this URL