Google Maps Geocoding API 是一项提供地址地理编码和反向地理编码的服务。
该服务还作为客户端 Google Maps JavaScript API 的一部分提供,或者在服务器端与 Java Client、Python Client、Go Client 以及 Node.js Client for Google Maps Services 配合使用。
地理编码是将地址(如街道地址)转换为地理坐标(如纬度和经度)的过程,可以利用地理编码在地图上放置标记,或在地图上定位。
反向地理编码是将地理坐标转换为可人工读取的地址的过程。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
可以在网络浏览器中输入该网址进行测试(务必将“YOUR_API_KEY”替换成实际使用的 API 密钥)。响应包括地址的纬度和经度。
请查看开发者指南,了解有关生成地理编码请求网址和可用参数以及理解响应的详细信息。
下面是一个 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
可以在网络浏览器中输入该网址进行测试(务必将“YOUR_API_KEY”替换成实际使用的 API 密钥)。响应包括该纬度和经度位置所对应的人类可读地址。
请查看开发者指南,了解有关生成反向地理编码请求网址和可用参数以及理解响应的详细信息。
下面是一个 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 开发工作。Java Client、Python Client、Go Client 和 Node.js Client for Google Maps Services 中提供了 Google Maps Geocoding API。
身份验证、配额和政策
激活 API 和获取 API 密钥
要使用 Google Maps Geocoding API,您必须先在 Google API Console 中激活 API,并获取正确的身份验证凭据。需要在每个请求中提供 API 密钥(如果加入的是高级计划,则需提供客户端 ID)。
点击以下按钮完成整个流程,在此过程中您将:
- 创建或选择项目
- 启用 API
- 获取 API 密钥
配额
查看使用限制页面,了解有关为 Google Maps Geocoding API 设置的配额的详情。
政策
必须按照 API 政策使用 Google Maps Geocoding API。
了解详情
Geocoding API 还有其他用途。请参阅 Geocoding API 开发者指南,了解更多演示、示例、可用参数、状态代码和错误消息以及其他详情。
