AMap.PlaceSearch
地点搜索服务,提供某一特定地区的位置查询服务。PlaceSearch构造函数的参数为可选,表达为参数对象PlaceSearchOptions。PlaceSearchOptions允许设置搜索城市、搜索数据类别、搜索结果详略、搜索结果排序规则等。用户可以通过自定义回调函数取回并显示查询结果。若服务请求失败,系统将返回错误信息。
高德地图为我们提供了某一地区的查询服务,通过该插件我们可以查询某一地区的服务位于说明地方,比方说我想区喝杯奶茶,这时候我们就可以通过该插件来定位附近的奶茶店有多少家了。
eg
<!doctype html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="chrome=1"><meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"><style type="text/css">body,html{height: 100%;margin: 0px;}#container{height: 50%;margin: 0px;}#result{height: 50%;margin: 0px;}</style><title>快速入门</title></head><body><div id="container" tabindex="0"></div><div id="result"></div><script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=mykey"></script><script type="text/javascript">var map = new AMap.Map('container', {resizeEnable: true,center:[116.519942, 39.924677],zoom:11});AMap.service('AMap.PlaceSearch',function(){//回调函数//实例化PlaceSearchplaceSearch= new AMap.PlaceSearch({pageSize: 5,//每页显示多少行pageIndex: 1,//显示的下标从那个开始type:'餐饮服务',//类别,可以以|后面加其他类city: "010", //城市map: map,//显示地图panel: "result"//服务显示的面板});//TODO: 使用placeSearch对象调用关键字搜索的功能placeSearch.search('公园', function(status, result) {});})</script></body>
</html>
效果图
应用场景
直接使用服务返回的数据,构造的option中不写map和panel属性,在search方法中传入回调函数,自己实现自己所想实现的效果图,如:
JavaScript
var placeSearch = new AMap.PlaceSearch({ //构造地点查询类pageSize: 5,pageIndex: 1,city: "010"//城市
});
//关键字查询
placeSearch.search('方恒', function(status, result) {//TODO:开发者使用result自己创建交互面板和地图展示
});
官方api
还有好多,想深入了解可以到高德官网自行了解
对于poi兴趣点来说,一般我们只拿一些比较基本的数据就行了,比如经纬度,城市编码,省份编码,电话,邮件等,如下:
console.log("建议城市名称:"+result.poiList.pois[0].name);console.log("poi所在省份:"+result.poiList.pois[0].pname);console.log("行政区编码:"+result.poiList.pois[0].adcode);console.log("poi所在省份编码:"+result.poiList.pois[0].pcode);console.log("poi所在城市编码:"+result.poiList.pois[0].citycode);console.log("电子邮箱:"+result.poiList.pois[0].email);console.log("邮编:"+result.poiList.pois[0].postcode);console.log("全局唯一ID:"+result.poiList.pois[0].id);console.log("poi所在城市名称:"+result.poiList.pois[0].cityname);console.log("poi所在行政区名称:"+result.poiList.pois[0].adname);console.log("地址:"+result.poiList.pois[0].address);console.log("电话:"+result.poiList.pois[0].tel);console.log("city name:"+result.poiList.pois[0].entr_location);//入口经纬度,POI点有出入口信息时返回,否则返回空字符串console.log("city name:"+result.poiList.pois[0].exit_location);//出口经纬度,POI点有出入口信息时返回,否则返回空字符串console.log("兴趣点经纬度:"+result.poiList.pois[0].location);//兴趣点经纬度
以上是开发中比较常见的信息
placeSearch.searchNearBy
周边搜索:对某一地区指定范围,进行搜索,如下显示了一个最基本的周边搜索案例
var map = new AMap.Map('container', {resizeEnable: true,center:[116.519942, 39.924677],zoom:11});AMap.service('AMap.PlaceSearch',function(){//回调函数//实例化PlaceSearchplaceSearch= new AMap.PlaceSearch({pageSize: 5,pageIndex: 1,children:1,type:'餐饮服务',city: "010", //城市map: map,panel: "result"});//TODO: 使用placeSearch对象调用关键字搜索的功能// placeSearch.search('奶茶', function(status, result) {// for(var obj in result){// console.log(obj);// }// });placeSearch.searchNearBy("奶茶", [116.405467, 39.907761], 500, function(status, result) {if (status === 'complete' && result.info === 'OK') {//TODO : 解析返回结果,如果设置了map和panel,api将帮助完成点标注和列表}});})
如上给出了[116.405467, 39.907761]这个为中心点,500为半径,也就是说以[116.405467, 39.907761]这个中心点500米范围内进行搜索,如下所示
参考:高德官方文档