
googlegeocodingapi.docx
19页Google Geocoding API1. 什么是地址解析?2. 受众3. 使用限制4. 地址解析请求5. 地址解析响应a. JSON 输出格式b. XML 输出格式c. 状态代码d. 结果e. 地址组成部分的类型6. 反向地址解析7. 视口偏向8. 区域偏向新功能!Google Geocoding API 的功能进行了显著升级和增强本文将介绍这一最新版的 Google Geocoding API (V3)请注意,原来的Google Geocoding API V2 已经弃用使用该服务的用户应升级到此版本注意:Google Geocoding API 不再需要 Google Maps API 密钥!Google Maps API Premier 用户还需要使用新的加密密钥为其网址签名有关详细信息,请参见 Premier 文档什么是地址解析?地址解析是将地址(如“1600 Amphitheatre Parkway, Mountain View, CA”)转换为地理坐标(如纬度 37.423021 和经度 -122.083739)的过程,您可以根据转换得到的坐标放置标记或定位地图Google Geocoding API 可让您通过 HTTP 请求直接访问地址解析器。
此外,该服务还可让您执行反向操作(将坐标转换为地址);此过程称为“反向地址解析”受众本文适用于要在某个 Google Maps API 所提供的地图中使用地址解析数据的网站和移动产品开发人员其中包含此 API 的使用说明以及有关可用参数的参考资料此服务通常用于对静态(事先已知的)地址进行地址解析,以便将应用程序内容放置在地图上;此服务并不用于实时响应用户输入等操作对于动态地址解析(例如在用户界面元素内),请查阅 JavaScript API V2 客户端地址解析器、JavaScript API V3 客户端地址解析器或 Maps API for Flash 地址解析器的文档地址解析是一种耗时耗资源的任务请尽可能地对已知地址预先进行地址解析(使用本文所描述的 Google Geocoding API 或其他地址解析服务),并将结果存储在您自己设计的临时缓存中使用限制Google Geocoding API 的使用有限制,即,每天 2,500 个地理位置查询请求Google Maps API Premier 用户每天最多可执行 100,000 个请求强制执行此限制是为了防止滥用和/或重复使用 Google Geocoding API。
以后可能对此限制进行更改,而无需另行通知此外,我们还强制设定了请求速率限制,以防滥用此服务如果您超过了 24 小时的限制或者滥用此服务,Google Geocoding API 可能会暂停为您服务如果您继续无视这个限制,将会阻止您对 Google Geocoding API 的访问请注意:Google Geocoding API 只能与 Google Maps 配合使用;不能只进行地址解析而不在地图上显示结果有关允许的用法的完整详细信息,请参见 Google Maps API 服务条款许可限制地址解析请求Google Geocoding API 请求必须采用以下形式: 可以是以下值之一:· json(建议)表示以 JavaScript 对象表示法 (JSON) 的形式输出· xml 表示以 XML 的形式输出要通过 HTTPS 访问 Geocoding API,请使用以下网址: HTTPS在这两种情况中,有些参数为必填,而有些则为可选根据网址的标准,所有参数均使用字符 & (&) 分隔下面枚举了这些参数及其可能的值Google Geocoding API 使用以下网址参数定义地址解析请求:· address(必需)- 您要进行地址解析的地址。
或者· latlng(必需)- 您希望获取的、距离最近的、可人工读取地址的纬度/经度文本值· bounds(可选)- 要在其中更显著地偏移地址解析结果的可视区域的边框有关详细信息,请参见下文的可视区域偏向· region(可选)- 区域代码,指定为 ccTLD(“顶级域”)双字符值有关详细信息,请参见下文的区域偏向· language(可选)- 传回结果时所使用的语言请参见支持的区域语言列表请注意,我们会经常更新支持的语言,因此该列表可能并不详尽如果未提供 language,地址解析器将尝试尽可能使用发送请求的区域的本地语言· sensor(必需)- 指示地址解析请求是否来自装有位置传感器的设备该值必须为 true 或 false 请注意:您可以传递 address 或 latlng 进行查找如果传递 latlng,则地址解析器执行反向地址解析有关详细信息,请参阅反向地址解析bounds 和 region 参数只会影响地址解析器返回的结果,但不能对其进行完全限制地址解析响应地址解析响应将以网址请求路径中的 output 标记所指示的格式传回JSON 输出格式在此示例中,Google Geocoding API 为针对“1600 Amphitheatre Parkway, Mountain View, CA”的查询请求一个 json 响应: sensor 参数设为变量“true_or_false”以强调您必须将该值显式设置为 true 或 false。
此请求传回的 JSON 如下所示请注意,实际的 JSON 可能包含较少的空白您不应假定请求之间的空白的数量或格式{ "status": "OK", "results": [ { "types": street_address, "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "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": "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 } ], "geometry": { "location": { "lat": 37.4219720, "lng": -122.0841430 }, "location_type": "ROOFTOP", "viewport": { "southwest": { "lat": 37.4188244, "lng": -122.0872906 }, "northeast": { "lat": 37.4251196, "lng": -122.0809954 } } } } ]}请注意,JSON 响应包含两个根元素:· "status" 包含请求中的元数据。
请参见下文的状态代码· "results" 包含一个经过地址解析的地址信息和几何图形信息的数组通常,对于地址查询,只会在 "results" 数组中传回一个条目,但在进行模糊地址查询时,地址解析器可能会传回多个结果请注意,如果您希望从结果中提取值,则这些结果通常需要进行解析解析 JSON 相对来说较容易有关一些设计模式建议,请参见解析 JSONXML 输出格式在此示例中,Google Geocoding API 为上面所示的相同查询(针对“1600 Amphitheatre Parkway, Mountain View, CA”)请求一个 xml 响应: XML 如下所示:












