谷歌地图地理解析

地址解析就是将地址(如:贵州省贵阳市)转换为地理坐标(如经度:106.71,纬度:26.57)的过程。

地理反解析和上面的过程相反是将地理坐标(如纬度:26.57,经度:106.71)转换为地址(中国贵州省贵阳市南明区翠微巷7号 邮政编码: 550002)的过程。

受当地法律限制及各方面原因,国内很多地图并不包含地理解析和反解析功能(地理解析和反解析功能功能不够强悍),Google永远是最棒的。废话不多说要使用到Google map 地理解析和反解析功能,我们需要了解google.maps.Geocoder类,谷歌地图给我们提供了强大的api,下面我们来实现

 

1.初始化地图(最基本的,不解释)

//初始化地图
var map = new google.maps.Map(document.getElementById("map_canvas"),{
        center : new google.maps.LatLng(26.57, 106.72),
        zoom : 8,
        mapTypeId : google.maps.MapTypeId.ROADMAP
});

2.实例化谷歌Geocoder服务

//实例化Geocoder服务
var geocoder = new google.maps.Geocoder();

这样我们就可以进行地理解析和反解析了,使用代码:.

geocoder.geocode(request:GeocoderRequest, callback:function(Array., GeocoderStatus))

i. 数据请求:其中需要进行请求的数据GeocoderRequest可为4种属性:

属性 类型 描述
address string 需要解析的地名. 可选.
bounds LatLngBounds 经纬度搜索范围. 可选.(我没有具体试用过)
location LatLng(注意类型) 需要解析的经纬度. 可选.
region string 国家代码. 可选.(我没有具体试用过)

对于解析我们使用address,反解析使用location(注意传入的类型),请求的话,至少选择一种。

ii:结果处理:而对于回掉函数(即解析后返回的处理函数)包含两个内容,GeocoderResult(解析结果,数组类型)和GeocoderStatus(解析状态)

1.解析状态是使用Geocoder()进行解析后返回的状态,包含5种:

ERROR(谷歌地图服务可能出错)

INVALID_REQUEST(GeocoderRequest无效,即输入的请求是错误的,可能是没有选择,或者属性写错)

OK(解析完成,并有相应数据)

OVER_QUERY_LIMIT(响应超时)

REQUEST_DENIED(网页被禁止geocoder解析)

UNKNOWN_ERROR(未知错误)

ZERO_RESULTS(零结果)

我们能用的就是状态为OK的情况

2.解析结果

属性 类型 描述
address_components Array. GeocoderAddressComponents数组
formatted_address string 格式化后的最佳匹配地址(地名可小到街道)
geometry GeocoderGeometry GeocoderGeometry 对象
types Array. 一个表示返回的地理编码元素的类型的字符串数组

其中每一次解析成功后都会有上面的信息,我们最需要的就两样formatted_address和geometry。而address_components是一个地名数组,包含long_name(比如只返回省市名称),short_name和types,可以自己去试一下。

a. 格式化后的地名formatted_address,只需直接调用即可b.geometry返回一个GeocoderGeometry 对象,其中又包含有4个属性

Properties Type Description
bounds LatLngBounds 解析出来的精确的界限
location LatLng 纬度/经度坐标
location_type GeocoderLocationType 返回的location类型
viewport LatLngBounds 解析结果的视图范围

至此,所有关于地理解析和反解析就差不多说明完了,具体api参见https://developers.google.com/maps/documentation/javascript/reference#Geocoder

下面我们来实例一下实例代码:






谷歌地图地理解析和反解析geocode.geocoder详解






        

 

 

你可能感兴趣的:(GIS,地理解析)