web移动端学习:高德地图demo(二)

喜夏-厌秋 提交于 2020-02-27 12:49:01
  1. 在上一篇中使用了JS的方式加载插件,现在可以使用官方推荐的方法加载所需的插件 就是在header标签里的script标签中的KEY值后面加上 &plugin=AMap.Autocomplete 如下

   <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=申请到的KEY&plugin=AMap.Autocomplete"></script>
  1. 使用之前的调用函数依旧有效
new AMap.Autocomplete().search(this.value,function(status,data){ 
	console.log(data.tips);
})

但这里推荐使用官方推荐的写法,更加简便而且美观

var auto = new AMap.Autocomplete({
	input:'sinput'//直接给到一个输入框的id
});

在高德开发者手册里还有介绍其他手册,请自行查询 高德地图开发者WEB手册:输入提示和POI搜索

运行效果:

自带样式的搜索结果好看很多,但这里只出现了搜索结果

要实现点击搜索结果跳转,还需要调用select事件。

var auto = new AMap.Autocomplete({
	input:sinput
});
//点击结果跳转
auto.on('select',function(info){
            //console.log(info.poi);
            var P = info.poi.location.P;
            var Q = info.poi.location.Q;
            map.setCenter([Q,P]);
    });
  1. 添加POI,实现兴趣点功能,整合代码

记得要注释掉前面的点击提示结果跳转,不然在POI搜索前会有一个跳转的动作

//实现POI功能
AMap.service(["AMap.PlaceSearch"], function() {
    map.getCity(function(info){
    //console.log(info.citycode);
    //构造地点查询类
	var placeSearch = new AMap.PlaceSearch({ 
          pageSize: 5, // 单页显示结果条数
          pageIndex: 1, // 页码
          city: info.citycode, // 兴趣点城市
          citylimit: true,  //是否强制限制在设置的城市内搜索
          map: map, // 展现结果的地图实例
          panel: "node", // 结果列表将在此容器中进行展示。
          autoFitView: true // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
        });
	//点击按钮关键字查询
	//btn2.onclick = function(){
          	//placeSearch.search(this.value);
        //};	
	//TODO 针对选中的poi实现自己的功能,整合输入提示和POI功能
        AMap.event.addListener(auto, "select", function(e){
		placeSearch.setCity(e.poi.adcode);
		placeSearch.search(e.poi.name)
      	});
    });
});
  1. 这时候的地图大致完成,更多功能可以通过官方手册学习研究

https://lbs.amap.com/api/javascript-api/guide/abc/prepare

这里的POI并不能出现图片,是因为图片加载只能在线上加载,需要使用Node.js服务,具体以后再说。 过年了,新年快了嗷

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!