当前位置: 代码迷 >> Web前端 >> google Map API兑现地址解析
  详细解决方案

google Map API兑现地址解析

热度:135   发布时间:2012-08-24 10:00:21.0
google Map API实现地址解析
Google map API的地址解析服务目前是不收费的,可以将详细的地址转化成经纬度。
测试HTML文件如下:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  var geocoder;
  function initialize() {
    geocoder = new google.maps.Geocoder();
  }

  function codeAddress() {
    var address = document.getElementById("address").value;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        alert(results[0].geometry.location);
      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }
    });
  }
</script>
</head>
<body onload="initialize()">
  <div>
    <input id="address" type="textbox" value="Sydney, NSW">
    <input type="button" value="Geocode" onclick="codeAddress()">
  </div>
</body>
</html>

不过这都依赖于Google的网上服务接口的支持,如果哪天Google退出中国市场或者有其他缘由不再将这些服务接口开放了,就没办法了。

再就是Google对该函数进行了速度以及数量限制,以下是Google上的说明:

Google Geocoding API 的使用有限制,即,每天 2,500 个地理位置查询请求。(Google Maps API Premier 用户每天最多可执行 100,000 个请求。)强制执行此限制是为了防止滥用和/或重复使用 Google Geocoding API。以后可能对此限制进行更改,而无需另行通知。此外,我们还强制设定了请求速率限制,以防滥用此服务。如果您超过了 24 小时的限制或者滥用此服务,Google Geocoding API 可能会暂停为您服务。如果您继续无视这个限制,将会阻止您对 Google Geocoding API 的访问。

我试着从后台提取了批量的地址信息,使用for循环进行批量解析,发现最多只解析了11个地址,其他的都没有解析。所以使用的时候解析单个地址是没有问题的,批量解析的话...。。。

  相关解决方案