Google地图地理编码API

发表于:2017年5月9日

入门

Google地图地理编码API是提供地理编码和地址反向地理编码的服务。

此服务也可作为客户端Google Maps JavaScript API的一部分提供,也可用于与 Google 客户端,Python客户端,Go Client和Node.js客户端进行Google地图服务的服务器端使用 。
地理编码是将地址(如街道地址)转换为地理坐标(如纬度和经度)的过程,可用于将地图上的标记放置在地图上或放置地图。

反向地理编码是将地理坐标转换为人类可读地址的过程。Google Maps Geocoding API的反向地理编码服务还可让您找到给定地点ID的地址。

示例请求和响应

您可以通过HTTP界面访问Google Maps Geocoding API。以下是地理编码和反向地理编码请求的示例。

地理编码请求和响应(纬度/经度查找)

以下示例请求“1600 Amphitheatre Parkway,Mountain View,CA”的纬度和经度,并指定输出必须是JSON格式。

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

您可以通过将网址输入到网络浏览器中进行测试(请务必使用实际的API密钥替换“YOUR_API_KEY” )。响应包括地址的纬度和经度。

查看开发人员指南 有关更多信息, 建设地址解析请求的URL和 可用的参数 和 了解响应。

以下是JSON中的地理编码响应示例:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "1600",
               "short_name" : "1600",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Amphitheatre Pkwy",
               "short_name" : "Amphitheatre Pkwy",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Mountain View",
               "short_name" : "Mountain View",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Santa Clara County",
               "short_name" : "Santa Clara County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "94043",
               "short_name" : "94043",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
         "geometry" : {
            "location" : {
               "lat" : 37.4224764,
               "lng" : -122.0842499
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 37.4238253802915,
                  "lng" : -122.0829009197085
               },
               "southwest" : {
                  "lat" : 37.4211274197085,
                  "lng" : -122.0855988802915
               }
            }
         },
         "place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}

反向地理编码请求和响应(地址查找)

以下示例请求在美国纽约州布鲁克林的给定纬度/经度对应的地址。它指定输出必须是JSON格式。

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
您可以通过将网址输入到网络浏览器中进行测试(请务必使用实际的API密钥替换“YOUR_API_KEY” )。响应包括纬度和经度位置的人类可读地址。

查看开发人员指南 有关详细信息, 建立反向地址解析请求的URL和 可用的参数 和 了解响应。

以下是JSON中的反向地理编码响应示例:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "277",
               "short_name" : "277",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Bedford Avenue",
               "short_name" : "Bedford Ave",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Williamsburg",
               "short_name" : "Williamsburg",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Brooklyn",
               "short_name" : "Brooklyn",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Kings",
               "short_name" : "Kings",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "New York",
               "short_name" : "NY",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "11211",
               "short_name" : "11211",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
         "geometry" : {
            "location" : {
               "lat" : 40.714232,
               "lng" : -73.9612889
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 40.7155809802915,
                  "lng" : -73.9599399197085
               },
               "southwest" : {
                  "lat" : 40.7128830197085,
                  "lng" : -73.96263788029151
               }
            }
         },
         "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
         "types" : [ "street_address" ]
      },

   ... Additional results truncated in this example[] ...

   ],
   "status" : "OK"
}

使用我们的客户端库开始编码

通过提供常见任务的简单本地实现(例如身份验证,请求限制和自动重试),客户端库可以通过Google Maps Web Service API进行开发。Google Maps Geocoding API可在 Java Client,Python Client,Go Client和Node.js Client for Google Maps Services中使用。

身份验证,配额和策略

激活API并获取API密钥

要使用Google Maps Geocoding API,您必须首先在Google API控制台中激活API,并获得正确的身份验证凭据。您需要在每个请求中提供API密钥( 如果您有Premium计划,则需要提供客户端ID)。

点击下面的按钮来浏览一个你将要执行的过程:

创建或选择项目
启用API
获取API密钥
获得钥匙
了解有关身份验证凭证的更多信息。

配额

有关Google Maps Geocoding API设定的配额的详细信息,请查看使用限制页面。

政策

使用Google Maps Geocoding API必须符合 API政策。

学到更多

您还可以使用Geocoding API进行更多操作。有关其他演示,示例,可用参数,状态代码和错误消息以及其他详细信息,请参阅 地理编码API开发人员指南。