npm 包 vue-map-utils 使用教程

阅读时长 21 分钟读完

介绍

在前端开发中,常常需要对地图进行操作和展示。然而,原生的地图 API 并不够简洁和方便。为了提高开发效率,社区出现了许多优秀的地图工具库,其中,vue-map-utils 是一款非常实用的工具库。

vue-map-utils 是一款基于 Vue.js 的地图工具库,它封装了一系列对地图进行绘制、操作和交互的函数和组件。相比原生的地图 API,它更加易用、简单明了,可以节约开发者的开发时间和精力。

下文将详细介绍 vue-map-utils 的安装、使用,还会给出具体的示例代码,希望能帮助读者更好地使用这款工具。

安装

首先,需要在项目中安装 vue-map-utils。可以使用 npm 命令进行安装:

也可以使用 yarn 进行安装:

使用

安装好 vue-map-utils 之后,就可以在项目中使用它了。下面是使用步骤:

  1. 引入并注册组件
  1. 在项目中使用组件
-- -------------------- ---- -------
----------
  -----
    ---- -----------
  ------
-----------

--------
------ ------- -
  --------- -
    --------------
  --

  -------- -
    --------- -
      ----- --- - ------------------

      -- ---------
    -
  -
-
---------

这样,就可以在项目中轻松使用 vue-map-utils 提供的组件和方法了。

组件和方法

vue-map-utils 提供了很多优秀的组件和方法,这里只介绍常用的一些:

Map 组件

Map 组件是 vue-map-utils 中最基本的组件,它封装了地图的初始化、销毁等操作,并在其中集成了许多对地图进行操作的函数。

Props

名称 说明 类型
id 组件 id String
amapkey 高德地图的 key String
mapStyle 地图的样式,可选 light/dark,默认为 light String
zoom 地图的缩放等级,可选 3~18,默认为 13 Number
center 地图的中心点,经纬度数组,如 [116.405467, 39.907761],默认为北京 Array
resizeEnable 是否监控地图容器尺寸变化,并及时调整地图大小,默认为 true Boolean
zoomEnable 地图是否可通过鼠标滚轮缩放,默认为 true Boolean
dragEnable 地图是否可通过鼠标拖拽平移,默认为 true Boolean
scrollWheel 地图是否允许通过鼠标滚轮缩放,默认为 true Boolean
keyboardEnable 是否启用键盘操作地图,默认为 true Boolean
doubleClickZoom 地图在双击时是否进行缩放,默认为 true Boolean
showIndoorMap 是否显示室内地图,默认为 false Boolean
expandZoomRange 是否支持地图缩放的扩展范围,默认为 false Boolean

Methods

名称 说明 参数
getCenter 获取地图的中心点
getZoom 获取地图的缩放等级
setCenter 设置地图的中心点 center: Number[]
setZoom 设置地图的缩放等级 zoom: Number
setZoomAndCenter 同时设置地图的缩放等级和中心点 zoom: Number, center: Number[]
getBounds 获取当前视野的经纬度范围
setMapStyle 设置地图的样式,可选 light/dark,默认为 light mapStyle: String
destroy 销毁地图

事件

名称 说明 参数
click 鼠标左键单击事件 e: MouseEvent
dblclick 鼠标左键双击事件 e: MouseEvent
rightclick 鼠标右键单击事件 e: MouseEvent
movestart 移动开始事件 e: MouseEvent
moving 移动进行时事件 e: MouseEvent
moveend 移动结束事件 e: MouseEvent
zoomchange 缩放等级发生变化事件 e: AMap.Map.ZoomEvent
resize 地图容器尺寸发生变化事件 e: AMap.Map.SizeEvent

Marker 组件

Marker 组件是用于在地图上添加点标记的组件,它可以添加文字标签和自定义图标。

Props

名称 说明 类型
position 点标记在地图上显示的位置,经纬度数组,如 [116.405467, 39.907761] Array<Number>
offset 点标记显示位置偏移量,像素值为正,向下和向右偏移 Array<Number>
icon 点标记图标的地址,可以是相对地址或者 URL String
label 点标记文本标签的内容 String
labelOffset 点标记文本标签偏移量 Array<Number>
extData 用户自定义属性,支持 JavaScript 对象 Any
draggable 是否可拖拽,支持 PC 端和移动端 Boolean
clickable 是否可点击 Boolean
animation 点标记的动画效果,如 drop/bounce 等 String
angle 点标记的旋转角度,从正北开始,顺时针计算,单位度 Number

Methods

名称 说明 参数
getPosition 获取点标记的经纬度
setPosition 设置点标记的经纬度 position: Array<Number>
setOffset 设置点标记的偏移量 offset: Array<Number>
setIcon 设置点标记的图标路径 icon: String
setLabel 设置点标记的文本标签 label: String
setLabelOffset 设置点标记的文本标签偏移量 offset: Array<Number>
setAngle 设置点标记的旋转角度,从正北开始,顺时针计算,单位度

事件

名称 说明 参数
click 鼠标左键单击事件 e: AMap.Marker.Event
dblclick 鼠标左键双击事件 e: AMap.Marker.Event
rightclick 鼠标右键单击事件 e: AMap.Marker.Event
mouseover 鼠标移到点标记上触发事件 e: AMap.Marker.Event
mouseout 鼠标从点标记移开触发事件 e: AMap.Marker.Event
mousedown 鼠标在点标记上按下触发事件 e: AMap.Marker.Event
mouseup 鼠标在点标记上松开触发事件 e: AMap.Marker.Event
mousemove 鼠标在点标记上移动触发事件 e: AMap.Marker.Event
dragstart 开始拖拽点标记时触发事件 e: AMap.Marker.Event
dragging 拖拽标记进行时触发事件 e: AMap.Marker.Event
dragend 结束拖拽点标记时触发事件 e: AMap.Marker.Event

Polyline 组件

Polyline 组件是用于在地图上添加折线的组件,它可以添加自定义的样式。

Props

名称 说明 类型
path 折线的节点坐标信息,经纬度数组,如 [[116.405467,39.907761], [116.406467,39.907761]] Array<Array<Number>>
strokeColor 折线颜色,可选 argb、rgb、rrggbb、#rrggbb,如 #FF0000 String
strokeOpacity 折线透明度,范围为 0~1,0 表示完全透明,1 表示不透明 Number
strokeWeight 折线宽度,单位:像素 Number
strokeStyle 折线样式,可选实线(solid)或虚线(dashed) String
lineCap 折线拐角处的绘制方式,可选 round/butt/square String
lineJoin 折线两端点与相邻线段交汇处的绘制方式,可选 round/bevel/miter String
extData 用户自定义属性,支持 JavaScript 对象 Any
draggable 是否可拖拽,支持 PC 端和移动端 Boolean
clickable 是否可点击 Boolean
showDir 是否显示方向箭头,默认为 false Boolean

Methods

名称 说明 参数
getPath 获取折线的所有节点坐标
setPath 设置折线的所有节点坐标 path: Array<Array<Number>>
setOptions 设置折线的样式属性 options: Object

事件

名称 说明 参数
click 鼠标左键单击事件 e: AMap.Polyline.Event
dblclick 鼠标左键双击事件 e: AMap.Polyline.Event
rightclick 鼠标右键单击事件 e: AMap.Polyline.Event
mouseover 鼠标移到折线上触发事件 e: AMap.Polyline.Event
mouseout 鼠标从折线移开触发事件 e: AMap.Polyline.Event
mousedown 鼠标在折线上按下触发事件 e: AMap.Polyline.Event
mouseup 鼠标在折线上松开触发事件 e: AMap.Polyline.Event
mousemove 鼠标在折线上移动触发事件 e: AMap.Polyline.Event
dragstart 开始拖拽折线时触发事件 e: AMap.Polyline.Event
dragging 拖拽折线进行时触发事件 e: AMap.Polyline.Event
dragend 结束拖拽折线时触发事件 e: AMap.Polyline.Event

Circle 组件

Circle 组件是用于在地图上添加圆形的组件,它可以添加自定义的样式。

Props

名称 说明 类型
center 圆中心点经纬度,如 [116.405467,39.907761] Array<Number>
radius 圆半径,单位:米 Number
strokeColor 描边颜色,可选 argb、rgb、rrggbb、#rrggbb,如 #FF0000 String
fillColor 填充颜色,可选 argb、rgb、rrggbb、#rrggbb,如 #FF0000 String
strokeOpacity 线条透明度,范围为 0~1,0 表示完全透明,1 表示不透明 Number
strokeWeight 线条宽度,单位:像素 Number
fillOpacity 填充透明度,范围为 0~1,0 表示完全透明,1 表示不透明 Number
extData 用户自定义属性,支持 JavaScript 对象 Any
draggable 是否可拖拽,支持 PC 端和移动端 Boolean
clickable 是否可点击 Boolean

Methods

名称 说明 参数
getCenter 获取圆心经纬度
setCenter 设置圆心经纬度 center: Array<Number>
getRadius 获取圆的半径
setRadius 设置圆的半径 radius: Number
getBounds 获取当前圆的最小外接矩形
setOptions 设置圆的样式属性 options: Object

事件

名称 说明 参数
click 鼠标左键单击事件 e: AMap.Circle.Event
dblclick 鼠标左键双击事件 e: AMap.Circle.Event
rightclick 鼠标右键单击事件 e: AMap.Circle.Event
mouseover 鼠标移到圆内触发事件 e: AMap.Circle.Event
mouseout 鼠标从圆内移开触发事件 e: AMap.Circle.Event
mousedown 鼠标在圆内按下触发事件 e: AMap.Circle.Event
mouseup 鼠标在圆内松开触发事件 e: AMap.Circle.Event
mousemove 鼠标在圆内移动触发事件 e: AMap.Circle.Event
dragstart 开始拖拽圆形时触发事件 e: AMap.Circle.Event
dragging 拖拽圆形进行时触发事件 e: AMap.Circle.Event
dragend 结束拖拽圆形时触发事件 e: AMap.Circle.Event

BezierCurve 组件

BezierCurve 组件是用于在地图上添加贝塞尔曲线的组件,它可以自定义贝塞尔曲线的起点、终点和控制点,实现更为自由的曲线绘制。

Props

名称 说明 类型
path 贝塞尔曲线的节点坐标信息,三点曲线,经纬度数组,如 [[116.405467,39.907761], [116.406467,39.907761], [116.407467,39.909761]] Array<Array<Number>>
strokeColor 曲线

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562e881e8991b448e0940

纠错
反馈