# MapPicker 标记地图点位

版本:1.13.0

开发:姜炎6

交互:王海鸥

UI:鲁欣如

规范:[已评审] http://10.33.43.73/BBG_UED/BUI_Design/bscs/v2.0/issues/13

# 安装

$ npm i @hui-pro/map-picker -D
# 或者
$ yarn add @hui-pro/map-picker --dev

# 引入

import mapPicker from '@hui-pro/map-picker';
// 地图选点控件涉及字体文件,所以需要定义字体文件路径的变量才行
$--map-picker-font-path: '~@hui-pro/map-picker/theme/fonts';
import '@hui-pro/map-picker/theme/index.scss';
Vue.use(mapPicker);

# 基础用法

基础用法

直接引入map-picker控件,然后通过setting属性传入地图配置信息,v-model绑定当前选中点的坐标

提示

遇到回显场景时,请注意把坐标的赋值操作放到 rendercomplete 事件回调函数中进行,否则回显逻辑可能有问题。

下面是模拟用的setting

以下json仅供本地调试使用,实际开发时,请记得替换。这个json来自于gis服务,配好专题地图后,可通过接口拿到该配置信息。

# API

# Attributes

参数 说明 类型 可选值 默认值
setting 当前使用地图的配置信息,来自于 gis 服务,配好专题地图后,可通过接口拿到该配置信息。 String - -
pointer-icon 自定义选点 icon。此属性必须有三个字段(normal,moving,size):normal 和 moving 分别对应普通状态和移动状态,值可以相同;size 是个数组,描述 icon 的宽高,两个状态下的 icon 必须相同大小。 Object - 图标见 demo,size 默认[40,40]
context 加载地图资源的上下文,如果配置了这个属性,那么地图将通过指定的上下文去加载地图资源 Object - {}

# 方法

方法名 说明 参数
setMarkerPosition 修改标记点的位置 (feature:Feature, coor:Array),feature 是地图上的标记点,可通过 getFeature 方法获取到。coor 是个数组,内容是标记点的坐标,一般需要回显时要用到这个方法
setMapCenter 设置地图中心点 (coor:Array),coor 是个数组,内容是中心点的坐标
transform 坐标系转换的方法 (coor:Array, source String, destination String),coor 是个数组,待转换的坐标;source 是字符串,代表源坐标系编码;destination 是字符串,代表目标坐标系编码(默认双向绑定值的编码是:3857。经纬度的编码是:4326)。
startEdit 进入编辑状态 调用该方法,可以进入选点状态,点击右键或者按下 esc 自动退出编辑状态,所以也就无需手动退出编辑状态了。
getMap 获取 openlayer 的 map 实例,可基于此做更多个性化定制操作
getFeature 获取标记点元素,用于后续修改标记点的样式,可基于此做更多个性化定制操作

# 事件

名称 类型 描述
rendercomplete 1.5.1+ 地图渲染完毕抛出该事件 请注意,对地图以及标记点的相关操作请确保在该事件触发之后进行

# slot

名称 类型 描述
operate-bar 普通具名插槽 可以自定义操作区域的内容