Google map api 3.9 Service Geocoder 地理信息解析
2012-07-06 16:17
633 查看
Geocoder 地理解析相关服务对象
A service for converting between an address and a
这是一个提供 位置名称 和 经纬度 互相转换的服务。
构造函数 Geocoder() 用来创建一个 地理解系服务对象。在使用中实际上是 var geocoder = new google.maps.Geocoder();
方法:
geocode(request:GeocoderRequest, callback:function(Array.<GeocoderResult>, GeocoderStatus)) 创建一个解析请求
现在来具体讲一下这个这个方法。
第一个参数是 GeocoderRequest ,这是一个地理信息服务请求对象接下来会具体的讲解。用于创建一个请求。
第二个参数是 function 也就是一个回调函数。 回调函数会返回两个参数,第一个参数是一个结果数组,第二个参数是解析状态(也是一个对象)
这里写一个 Demo :
var geocoder = new google.maps.Geocoder();
//要解析的地址
var address = "北京林业大学";
//创建请求对象
var geocoderRequest = {address : address};
geocoder.geocode( geocoderRequest , function(results, status) {
//判断解析状态
if (status == google.maps.GeocoderStatus.OK) {
//如果返回成功,把返回的第一个点设置为屏幕的中心点。
map.setCenter(results[0].geometry.location);
// 把返回的第一个点标记在地图上。
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
这个Demo程序的地址是 https://google-developers.appspot.com/maps/documentation/javascript/examples/geocoding-simple
到这里地址解析成经纬度已经说的很明白了。当然有人说如果第一个点并不是真正需要的呢?
这里可以在回调函数里面进行操作。
其实只需要稍微修改一点
for(var i = 0;i< results.length;i++){
var marker = new google.maps.Marker({
map: map,
position: results[i].geometry.location
});
}
在标记外面加上一层循环就可以了。
GeocoderRequest 对象
The specification for a geocoding request to be sent to the Geocoder.
Geocoder 发送请求时的参数规范对象。(没有构造函数,不能用new的方法创建,可以直接用动态对象)
属性
以上四个属性只需要传入一个就可以进行解析。
通过经纬度进行反向解析的Demo地址:https://google-developers.appspot.com/maps/documentation/javascript/examples/geocoding-reverse
GeocoderStatus 对象
The status returned by the Geocoder on the completion of a call to geocode().
在地理解系对象进行请求结束后返回的状态。
返回值有下面7种
GeocoderResult 对象
A single geocoder result retrieved from the geocode server. A geocode request may return multiple result objects. Note that though this result is "JSON-like," it is not strictly JSON, as it indirectly includes a LatLng object.
从服务器返回的单个请求结果。一个请求可以返回多个结果对象。返回的结果是一个类似于json的对象,但是不是严格意义上的json, 间接的包含了LatlLng 经纬度对象。
属性:
GeocoderAddressComponent 对象
A single address component within a GeocoderResult. A full address may consist of multiple address components.
解析结果里面的地址组件。一个完整的地址可能包含很多地址组件。
属性:
GeocoderGeometry 对象
Geometry information about this GeocoderResult
解析结果的空间信息
属性:
GeocoderLocationType 对象
Describes the type of location returned from a geocode.
描述解析返回结果的地点类型
类型值:
介绍到这里,已经把地点和经纬度解析的功能介绍完了,希望对某些人有一些帮助:)
A service for converting between an address and a
LatLng
这是一个提供 位置名称 和 经纬度 互相转换的服务。
构造函数 Geocoder() 用来创建一个 地理解系服务对象。在使用中实际上是 var geocoder = new google.maps.Geocoder();
方法:
geocode(request:GeocoderRequest, callback:function(Array.<GeocoderResult>, GeocoderStatus)) 创建一个解析请求
现在来具体讲一下这个这个方法。
第一个参数是 GeocoderRequest ,这是一个地理信息服务请求对象接下来会具体的讲解。用于创建一个请求。
第二个参数是 function 也就是一个回调函数。 回调函数会返回两个参数,第一个参数是一个结果数组,第二个参数是解析状态(也是一个对象)
这里写一个 Demo :
var geocoder = new google.maps.Geocoder();
//要解析的地址
var address = "北京林业大学";
//创建请求对象
var geocoderRequest = {address : address};
geocoder.geocode( geocoderRequest , function(results, status) {
//判断解析状态
if (status == google.maps.GeocoderStatus.OK) {
//如果返回成功,把返回的第一个点设置为屏幕的中心点。
map.setCenter(results[0].geometry.location);
// 把返回的第一个点标记在地图上。
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
这个Demo程序的地址是 https://google-developers.appspot.com/maps/documentation/javascript/examples/geocoding-simple
到这里地址解析成经纬度已经说的很明白了。当然有人说如果第一个点并不是真正需要的呢?
这里可以在回调函数里面进行操作。
其实只需要稍微修改一点
for(var i = 0;i< results.length;i++){
var marker = new google.maps.Marker({
map: map,
position: results[i].geometry.location
});
}
在标记外面加上一层循环就可以了。
GeocoderRequest 对象
The specification for a geocoding request to be sent to the Geocoder.
Geocoder 发送请求时的参数规范对象。(没有构造函数,不能用new的方法创建,可以直接用动态对象)
属性
address | string | 需要解析的地址 |
bounds | LatLngBounds | 要搜索的区域 |
location | LatLng | 需要反解析的经纬度 |
region | string | 国家代码顶级域 |
通过经纬度进行反向解析的Demo地址:https://google-developers.appspot.com/maps/documentation/javascript/examples/geocoding-reverse
GeocoderStatus 对象
The status returned by the Geocoder on the completion of a call to geocode().
在地理解系对象进行请求结束后返回的状态。
返回值有下面7种
ERROR | 与Google服务器连接错误。 |
INVALID_REQUEST | 非法的解析请求 |
OK | 返回值包含成功解析的 |
OVER_QUERY_LIMIT | 超出了查询频率,可以稍后重试 |
REQUEST_DENIED | 这个网页不允许使用这个服务 |
UNKNOWN_ERROR | 一个服务器错误导致了解系服务不能执行,重新执行可能会返回成功 |
ZERO_RESULTS | 没有结果返回 |
A single geocoder result retrieved from the geocode server. A geocode request may return multiple result objects. Note that though this result is "JSON-like," it is not strictly JSON, as it indirectly includes a LatLng object.
从服务器返回的单个请求结果。一个请求可以返回多个结果对象。返回的结果是一个类似于json的对象,但是不是严格意义上的json, 间接的包含了LatlLng 经纬度对象。
属性:
address_components | Array.<GeocoderAddressComponent> | 一个 GeocoderAddressComponent 的数组对象 |
formatted_address | string | 可读的地址 |
geometry | GeocoderGeometry | 一个 GeocoderGeometry 对象(这个最主要,用于解析) |
types | Array.<string> | 提示解析返回的对象类型的数组 |
A single address component within a GeocoderResult. A full address may consist of multiple address components.
解析结果里面的地址组件。一个完整的地址可能包含很多地址组件。
属性:
long_name | string | 地址组件的全称 |
short_name | string | 地址组件的段名称 |
types | Array.<string> | 这个地址组件的类型,例如locality 地区country 国家,很少会用到 |
Geometry information about this GeocoderResult
解析结果的空间信息
属性:
bounds | LatLngBounds | 如果可以确定,返回的结果的精确界限 |
location | LatLng | 结果的经纬度坐标对象 |
location_type | GeocoderLocationType | 返回结果的类型(GeocoderLocationType 对象里面会进行介绍) |
viewport | LatLngBounds | 推荐的可视界限 |
Describes the type of location returned from a geocode.
描述解析返回结果的地点类型
类型值:
APPROXIMATE | 近似的结果 |
GEOMETRIC_CENTER | 几何中心,比如直线的中点或者正方形的中心等等。 |
RANGE_INTERPOLATED | 返回的插值相对的精确结果 |
ROOFTOP | 返回精确的结果 |
相关文章推荐
- Java通过google map api实现地址解析的方法
- iPhone开发笔记(13)调用GoogleMap API实现地理逆向编码
- Google Map API抓取地图坐标信息小程序
- Google Map API 依据地名输出经纬度信息
- google Map API实现地址解析
- 利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
- 结合Google Maps API和GeoIP/新浪/搜狐接口的IP地理信息可视化查询
- GoogleMap Geocoding API 地址解析受限的解决办法
- 对Google Maps API的JS文件解析(map.js)
- Google 地理信息反解析
- 4000 Google Map for Android 官方API 学习与解析
- Google Maps API 2.0解析(17-GSmallMapControl和GSmallZoomControl两个简单的控件)
- Google Map API和百度地图API用于地理编码
- Google Maps API 2.0解析(10-GMapType GTileLayer _GoogleMapMercSpec _KeyholeMapMercSpec地图类型)
- google Map api地理位置坐标转换
- 使用Google Geocoding API来进行关键字搜索,获取相关的地理位置信息
- iOS中NSJSONSerialization解析JSON数据暨google地理信息处理案例
- google Map api地理位置坐标转换
- google Map API实现地址解析
- GPS定位纬度,经度后,通过GOOGLE MAP API解析出地址