赞
踩
当时使用vue-amp做的一个地图展示大屏
高德地图的官网API:https://lbs.amap.com/api/javascript-api/summary/
vue-amap的中文文档:https://elemefe.github.io/vue-amap/#/zh-cn/introduction/install
npm方式,推荐使用npm引入
npm install vue-amap --save
CDN方式
<script src="https://unpkg.com/vue-amap/dist/index.js"></script>
在main.js中引入,对应的插件有注释说明
- import VueAMap from 'vue-amap';
- Vue.use(VueAMap);
- VueAMap.initAMapApiLoader({
- key: '自己的key',
- plugin: [
- "AMap.Autocomplete", // 输入提示插件
- "AMap.PlaceSearch", // POI搜索插件
- "AMap.Scale", // 右下角缩略图插件 比例尺
- "AMap.OverView", // 地图鹰眼插件
- "AMap.ToolBar", // 地图工具条
- "AMap.MapType", // 类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
- "AMap.PolyEditor", // 编辑 折线多,边形
- "AMap.CircleEditor", // 圆形编辑器插件
- "AMap.Geolocation", // 定位控件,用来获取和展示用户主机所在的经纬度位置
- "AMap.ControlBar" // 缩放、尺寸控制器
- ],
- // 默认高德 sdk 版本为 1.4.4
- v: '1.4.15',
- });
- <el-amap
- ref="centerMap"
- class="amap-box"
- :vid="'amapVue'"
- :zoom="mapConfig.zoom"
- :zooms="mapConfig.zooms"
- :center="mapConfig.center"
- :amap-manager="amapManager"
- :plugin="plugin"
- :events="mapEvents"
- >
- </el-amap>
- mapConfig: {
- zoom: 15, // 当前缩放层级
- zooms: [14, 18], // 地图缩放层级范围
- center: [115.779166, 33.824559], // 地图中心点
- },
官网上有明确说明,可以通过amapManager来获取一系列的地图对象实例(地图、点、线等)
在这里我使用到了一个插件:图层控制,使用图层控制来显示卫星图,再使用css样式表来将右上角的图层控制器给隐藏,在我的另外一篇有说明https://blog.csdn.net/m0_37755267/article/details/119572237
- plugin: [
- {
- pName: "MapType",
- defaultType: 1, //0代表默认,1代表卫星
- showTraffic: false, // 路网
- showRoad: true, // 路况
- }
- ]
events我是叫它事件集合对象,因为所有的一些回调函数或事件方法都可以在这下面写,地图的events里有一些地图的渲染生命周期的回调,具体参考官网,主要用的两个init()和complete()
init()中有个参数,此参数就是地图的实例对象
complete()地图加载完成后触发,在这里我主要是将地图的所有覆盖物展示在可视区域内,使用
amapManager.getMap().setFitView();
- mapEvents: {
- init: (o) => {
- // ... 初始地图的一些操作
- },
- complete: () => {
- // ... 地图渲染完成后的一些操作
- }
- }
- <el-amap-ground-image
- :vid="'backImage'"
- :url="groundimage.url"
- :bounds="groundimage.bounds"
- ></el-amap-ground-image>
bounds是图片左上角、右上角的坐标(我觉得这里有点坑,应该设4个点,2个点很不好对应)
- groundimage: {
- url: "自定义的图片地址",
- bounds: [
- [115.751557, 33.837427],
- [115.799549, 33.837356],
- ]
- }
- <el-amap-marker
- v-for="(item, index) in poiLists"
- :vid="'amap-marker-one' + index"
- :position="item.position"
- :icon="item.icon"
- :clickable="true"
- :events="item.events"
- :animation="item.animation"
- :label="poiTemplate(ele, item)"
- :extData="item"
- ></el-amap-marker>
- events: {
- click: (e) => {
- // ...点击操作
- },
- dblclick: (e) => {
- // ...双击操作
- },
- ...
- }
marker点弹跳效果:设置值为 AMAP_ANIMATION_BOUNCE
content可以是文字字符串也可以是html
offset是label的偏移量,[x, y]
- {
- content: "<div class='poi-content'>${item.eventName}</div>",
- offset: [40, 7],
- }
方法 | 返回值 | 说明 |
---|---|---|
getOffset( ) | Pixel | 获取Marker偏移量(自v1.3 新增) |
setOffset(offset:Pixel) | 设置Marker偏移量(自v1.3 新增) | |
setAnimation(animate:String ) | 设置点标记的动画效果 | |
getAnimation( ) | String | 获取点标记的动画效果类型 |
setClickable(clickable:Boolean ) | 设置点标记是支持鼠标单击事件 | |
getClickable( ) | Boolean | 获取点标记是否支持鼠标单击事件 |
getPosition( ) | LngLat | 获取点标记的位置 |
setPosition(lnglat:LngLat) | 设置点标记位置 | |
setAngle(angle:Number) | 设置点标记的旋转角度 | |
getAngle() | Number | 获取点标记的旋转角度 |
setzIndex(index:Number) | 设置点标记的叠加顺序,默认最先添加的点标记在最底层 | |
setIcon(content:String/Icon) | 设置点标记的显示图标 | |
getIcon( ) | String /Icon | 当点标记未自定义图标时,获取Icon内容 |
setDraggable(draggable:Boolean) | 设置点标记对象是否可拖拽移动 | |
getDraggable( ) | Boolean | 获取点标记对象是否可拖拽移动 |
hide( ) | 点标记隐藏 | |
show( ) | 点标记显示 | |
setCursor(Cursor) | String | 设置鼠标悬停时的光标。 参数cur可为CSS标注中的光标样式 |
setContent(html:String|htmlDOM) | 设置点标记显示内容,可以是HTML要素字符串或者HTML DOM对象 | |
getContent( ) | String | 获取点标记内容 |
moveAlong(lnglatlist,speed,f,circlable) | 以指定的速度,点标记沿指定的路径移动。参数lnglats为路径坐标串;speed为指定速度,单位:千米/小时;回调函数f中可添加自定义功能;参数loop表明是否循环执行动画,默认为false | |
moveTo(lnglat,speed,Function) | 以给定速度移动点标记到指定位置。参数lnglat为指定位置,必设;speed为指定速度,单位:千米/小时;回调函数f中添加自定义功能 | |
stopMove( ) | 点标记停止动画 | |
setMap(map:Map) | 为Marker指定目标显示地图。当参数值取null时,地图上移除当前Marker:setMap(null) | |
getMap() | Map | 获取Marker所在地图对象 |
setTitle(title:String) | 鼠标滑过点标时的文字提示 | |
getTitle( ) | String | 获取点标记的文字提示 |
setTop(isTop:Boolean) | 地图上有多个marker时,当isTop为true时,marker将显示在最前面;当为false时,marker取消置顶 | |
getTop( ) | Boolean | |
setShadow(icon:Icon) | 为marker设置阴影效果 | |
getShadow( ) | Icon | 获取marker的阴影图标 |
setShape(shape:MarkerShape) | 设置marker的可点击区域 | |
getShape( ) | MarkerShape | 获取marker的可点击区域 |
setExtData(ext:Any) | 设置用户自定义属性,支持JavaScript API任意数据类型,如Marker的id等 | |
getExtData( ) | Any | 获取用户自定义属性 |
这个多边形好像没什么说的,path接收一个二维数组,里面是经纬度集合
- <el-amap-polygon
- :vid="'amap-polygon-one'"
- :path="areaPointerList"
- editable="true"
- strokeStyle="dashed" // 边线是实线还是虚线,dashed、solid
- strokeColor="#FF0000" // 边线颜色值
- strokeWeight="2" // 边线宽度
- strokeOpacity="0.8" //边线透明度
- fillColor="#1791fc" // 封闭区域内的填充色
- fillOpacity="0.3" // 封闭区域内的透明度
- ></el-amap-polygon>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。