摘要:无论是百度LBS开放平台,还是高德LBS开放平台,其调用量最高的接口,必然是定位,其次就是地址解析了,又称为地理编码。地址解析,就是将地址转换为经纬度。而逆地址解析,就是将经纬度转换为地址。经纬度一般是由专业测绘机构用GPS采集,然后使用国测局接口加密,最后呈现在互联网地图上的。而地址,这里说的是结构化的带街道门牌号的地址,比如“北京市朝阳区阜通东大街6号”,这个地址是由公安局颁发的。而将地址和经纬度一一对应起来,这个就是高德地图做的事情了,也就是地址解析接口的功能了。地址解析功能,实用性强,调用频次高,谷歌API的地址解析接口甚至是收费的!所以,现在有现成免费的接口,大家应该很开心呀。
---------------------------------------------------------------------------
使用高德提供的AMap.Geocoder插件即可实现地址解析,和逆地址解析。
地理编码类是指将地址信息和地理坐标点信息进行相互转化,包括将地址信息转换为地理坐标点的编码和将地理坐标点转换为地址信息的逆地理编码。
1、地理编码
地理编码是将地址信息转换为地理坐标点信息,你可以使用此项功能在指定位置添加一个点或是定位地图上的某个位置。接口为:
geocoder.getLocation("北京市海淀区苏州街");
代码:
var geocoder; //加载地理编码插件 mapObj.plugin(["AMap.Geocoder"],function(){ geocoder=new AMap.Geocoder({ radius:1000, //以已知坐标为中心点,radius为半径,返回范围内兴趣点和道路信息 city:"010"//城市,默认:"全国" }); //返回地理编码结果 AMap . event . addListener(geocoder, "complete",geocoder_callBack); geocoder.getLocation("北京市海淀区苏州街"); });
效果图:
2、逆地理编码
逆地理编码又称位置描述或地址解析,即从已知的经纬度坐标到对应的地址描述(如省市、街区、楼层、房间等)的转换。接口为:
geocoder.getAddress(lnglatXY);
代码:
var geocoder; var lnglatXY=new AMap.LngLat(116.396574,39.992706); //加载地理编码插件 mapObj.plugin(["AMap.Geocoder"],function(){ geocoder=new AMap.Geocoder({ radius:1000, //以已知坐标为中心点,radius为半径,返回范围内兴趣点和道路信息 extensions: "all"//返回地址描述以及附近兴趣点和道路信息,默认"base" }); //返回地理编码结果 AMap . event . addListener(geocoder, "complete",geocoder_callBack); //逆地理编码 geocoder.getAddress(lnglatXY); });
效果图:
3、全部源代码
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>地址解析</title> <link rel="stylesheet" type="text/css" href="zero.css" /> <script language="javascript" src="http://webapi.amap.com/maps?v=1.3&key=【您的key】"></script> </head> <body onLoad="mapInit()">