你现在的位置:首页 > PHP网站建设知识库 > google api > 正文

google Map API实现地址解析

Google map API的地址解析服务目前是不收费的,可以将详细的地址转化成经纬度。google api开发

地址解析请求

Google Geocoding API 请求必须采用以下形式:
http://maps.google.com/maps/api/geocode/output?parameters
其中,output 可以是以下值之一:
json(建议)表示以 JavaScript 对象表示法 (JSON) 的形式输出
xml 表示以 XML 的形式输出
有些参数是必需的,有些是可选的。根据网址的标准,所有参数均使用字符 & (&) 分隔。下面枚举了这些参数及其可能的值。
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 响应:
http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false
在此示例中,我们将 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 相对来说较容易。