Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

enn-group-map

Package Overview
Dependencies
Maintainers
2
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

enn-group-map

UI公共组件 - 地图组件

  • 0.2.2
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
2
Weekly downloads
 
Created
Source

enn-map

npm 地址

gitlab 地址

主要功能介绍

  1. 传入 datas 坐标,可渲染点
  2. 地图渲染完会触发 init 事件,暴露 map 和 BMapGL 两个对象,可在直接操作地图
  3. 地图移动或者 zoom 改变会触发 changeView,监听事件可获取相关地图数据,再从后台重新获取 datas,更新地图点(浏览器变化不会触发 changeView 事件)
  4. 传入 viewDatas 坐标,同样渲染点(与 datas 一起,谁改变,就渲染谁,不会同时渲染),viewDatas 的改变会触发地图视图移动,即会把所有 viewDatas 渲染到视图中
  5. 传入 paths 可渲染移动路径

使用步骤

// main.js中引入,并注册
import EnnMap from "enn-map";
Vue.use(EnnMap, {
  ak: "ak",
});
<enn-map
  style="width:100vw;height:90vh;"
  :datas="datas"
  :viewDatas="viewDatas"
  :paths="paths"
  :imgs="iconImgs"
  @changeView="getNewData"
/>

props

参数类型必填默认值说明
datasarray[]数据,具体看下面 ☆
viewDatasarray[]数据,格式同 datas
pathsarray[]路径数据,具体看下面 □
imgsarray-自定义图标,具体看下面 △
allPathTimenumber10路径运动总时长
infoWidthstringmax-content弹框宽度
maxInfoWidthstring300px弹框最大宽度
infoImgWidthstring300px弹框图片宽度
infoImgHeightstring150px弹框图片高度
infoAnchornumber-26弹框 y 轴偏移
viewTimernumber800地图视图改变防抖毫秒数
viewLocationbooleanfalsechangeView 是否携带城市地址信息
akstring-百度地图 ak
centernumber[]杭州经纬度地图 center
zoomnumber15地图 zoom
mapOptionsobject-百度地图初始化参数 minZoom/maxZoom/mapType
zoomControlobject/booleannull百度自带的缩放控件
locationControlobject/booleannull百度自带定位放控件
customZoomControlobject/booleantrue自定义缩放控件
customTypeControlobject/booleantrue自定义地图类型控件

datas ☆ 介绍

参数类型必填默认值说明
idstring/number-唯一标识,用于点清理等工作,必传
lngstring-点经度
latstring-点纬度
imgimage-展示图片
infos二维数组/string-展示的文字
iconindex-根据传入的 imgs,设置每个点的图标,不传则使用百度默认
noClickboolean-不触发点击 marker 事件
titleKeysstring-指定 infos 中哪个数据有悬浮 title
infoBtn{text:'xxx'}-添加按钮,会触发全局的 mapClick 事件
labelFnfunction-自定义 Label,返回{content,style,anchor},高优先级
  • labelFn 回调接受两个参数(data, point)。需要返回包含 content(渲染内容)、style(对应样式)、anchor(label 偏移量)的对象

例如:

[
  {
    id: "4968-a081",
    lat: "31.792512",
    lng: "116.829919",
    img: "http://192.168.0.222:10010/static/media/default.jpg",
    infos: [
      ["名称", "#次高压4#"],
      ["压力", "六安次高压"],
      ["标号", "站至合肥新奥啊啊啊啊啊啊啊门站"],
      ["标号222", "站至合肥新奥啊啊啊啊啊啊啊门站"],
    ],
    icon: 0,
  },
  {
    id: 2,
    lat: 20,
    lng: 116,
    infos: "将会被渲染成richInfo",
  },
];

paths □ 介绍

参数类型必填默认值说明
idstring/number-id
pointsnumber[]-路径经纬度{lng,lat}
infostring-移动点渲染的文字
imgstring-移动点渲染的图片
strokeColorstringrgb(0,0,200)rgb 路径颜色
strokeWeightstring5路径宽度

imgs △ 介绍

参数类型必填默认值说明
iconimage-图标
sizenumber[]-图标宽高,注意比列设定

emits

名称说明
init地图初始化后暴露,{ BMapGL, map }
changeView地图 zoom 或 center 改变后触发,返回地图数据{bounds:{ne:xxx,sw:xxx},zoom:xxx}
markerClick地图上点被点击后触发{ marker, data, e }
renderMarker地图上点渲染完后触发
  • changeView: 因为 viewDatas 改变导致视图发生改变,不应该触发 changeView,这个时候如果想获取地图视图,建议使用 map.getBounds()和 map.getZoom()手动获取相关数据

百度地图 zoom 大致范围

zoom级别
16 往上更细节
14-15看清居民区、商业区、医院的颜色块
12-13市区、城市、地铁线
11-12市级,周围市
9-10省级,1-2 个省
7-8省级,4-5 个省
6-7省级,小半个中国
4-6基本上整个中国,全球

todos

  • 点聚合渲染: 使用普通方式渲染
  • loading:暂时去掉,打包问题
  • 路径
  • 路径完善
  • z-index 问题
  • 地区搜索框
  • infos 安全考虑

备注

  1. map, BMapGL: EnnMap 组件中地图挂载完后,会将暴露这两个对象,可参照百度地图直接操作这两个对象
  2. 使用了 BMapGLLib 的 RichMarker,对代码进行了修改,添加了类 enn-rich-marker,方便修改样式
  3. viewDatas 的用法:在父组件提供 input 搜索框,请求后台得到数据后提交给地图组件,地图组件会依据请求到的数据确定地图中心;地图组件会同时监听 datas,而它们的基本逻辑是(地图 center、zoom 改变会需要得到新的 datas),(viewDatas 改变会得到地图新的 center、zoom)
  4. 目前发现自定义图标可能会有像素偏差,icon size 比列一定要设置与 icon 原图一致
  5. x jkw 个人账号创建的百度 ak,仅供开发测试使用,其 referer 白名单为*(线上正式 ak 请设置合理的 Referer 白名单)

Keywords

FAQs

Package last updated on 13 Sep 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc