第一次写东西,技术水平不是很高,只是为了方便记忆。
最近项目中有一个在地图上显示定位的需求,这本来没什么,只要初始化一个地图,将后台传过来的定位信息通过高德API在地图上显示就行了,最主要的是需要让点像光源一样有闪烁的效果,本来是想在网上找一下copy的,结果没找到。所以自己研究了一下。
为了方便记忆,所以会将从怎么创建地图,到显示定位点的整个过程纪录下来。
首先声明这里用的是vue加高德API,第一步,将高德API引入vue,在这里先将下面这句代码放到index.html的头部。
<script src="https://webapi.amap.com/maps?v=1.4.10&key=你的key值"></script>
然后在webpack.base.conf.js中加入,这里window.AMap好像可以直接写AMap
externals: { 'AMap': 'window.AMap' }
然后在你需要的界面引用就行了
import AMap from 'AMap'
到此为止,是前期的准备工作。
接下来开始创建地图了,因为有时需要在地图上做数据更新,所以需要把地图的创建用一个方法提取出来,只在mounted里调用一次就行,避免数据更新是重复创建。
initmap() { //创建地图 this.map = new AMap.Map("container", { center: [120.061897, 30.356648], //设置中心点 // pitch: 60, // rotation: -35, resizeEnable: true, //是否监控地图容器尺寸变化 features: ["bg", "road", "point"], //隐藏默认楼块 mapStyle: "amap://styles/bf8a443a1cae459d53212187f63b444c", //设置地图的显示样式 // layers: [new AMap.TileLayer.Satellite()], //地图图层(卫星图层) new AMap.TileLayer() zoom: 16 //地图显示的缩放级别 }); }
这里值得注意的是mapStyle这个参数的值里bf8a443a1cae459d53212187f63b444c这个值,是我登录高德开发者平台,在自定义地图里自己创建发布的一个地图样式,个人认为根据图片创建地图更舒服一些。
接下来,因为我们的后台数据还没有对接好,所以自己定义了一条假数据。
var capitals = [ { center:[120.060824,30.357574