您的位置:首页 > 编程语言 > Go语言

google map api 地址解析

2015-12-03 17:41 501 查看
最近用到一个功能,给你个地址,测试一下能不能在google地图中搜得到,如果可以搜到,那么再发请求去请求一个静态地图图片,如果不能搜到,那么就不再发请求去请求静态地图图片,而是选择使用一个默认图片去显示。

OK,需求如上文所述,怎么办呢,google地图有这样一个api可以解决问题:
http://maps.google.com/maps/api/geocode/output?parameters
其中output有如下选项:

json:表示以json格式返回数据,默认行为
xml:表示以xml格式返回数据

还有另外一些参数,每个参数之间使用&符号进行分割,其他参数如下:

address:(必须)你要解析查询的地址
latlng:(必须,和address二选一即可)你希望获取的、距离最近的、可人工读取的经纬度信息
bounds: (可选)要在其中更显著地偏移地址解析结果的可视区域的边框。
region: (可选)区域代码,指定为 ccTLD(“顶级域”)双字符值。
language: (可选)传回结果时所使用的语言。请参见支持的区域语言列表。如果未提供language,地址解析器将尝试尽可能使用发送请求的区域的本地语言。
sensor: (必需)- 指示地址解析请求是否来自装有位置传感器的设备。该值必须为 true 或 false。

请注意:您可以传递 address 或 latlng 进行查找。(如果传递 latlng,则地址解析器执行反向地址解析。有关详细信息,请参阅反向地址解析。)

bounds 和 region 参数只会影响地址解析器返回的结果,但不能对其进行完全限制。

例子:
http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false返回结果: {
"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 相对来说较容易。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: