zh-mapbox v0.0.121
zh-mapbox
介绍
封装了一些mapbox的常用方法
使用
import { RegisterMapBoxMethod } from 'zh-mapbox'
let mapboxgl = require('mapbox-gl')
require('mapbox-gl/dist/mapbox-gl.css')
//注册常用方法
RegisterMapBoxMethod(mapboxgl)
import { RegisterMapBoxModel } from 'zh-mapbox'
import * as THREE from 'three'
import GLTFLoader from 'three/examples/js/loaders/GLTFLoader'
//注册模型相关方法(前提先注册常用方法)
RegisterMapBoxModel(THREE,GLTFLoader)
方法概览
注册常用方法后 map.on('layerdata') 可监听图层的添加与删除
Map
方法名 | 参数 | 描述 |
---|---|---|
RegisterMapBoxMethod(mapboxgl,defaultSource?:string[]) | mapboxgldefaultSource:默认不进行删除或查找的源 | 注册方法 |
removeAllLayerAndSource(defaultSource?:string[]) | defaultSource:默认不进行删除的源 | 删除所有图层和源 |
getAllLayerAndSource(defaultSource?:string[])-(0.0.24) | defaultSource:默认不获取的源 | 获取所有图层和源 |
findCustomLayer(type?:string[]|string,defaultSource?:string[]) | type:查找类型defaultSource:默认不查找的源 | 查找自定义的图层 |
MapTooltip(layerName:string|string[],options:Popup.options) | layerName:图层名称options:继承mapbox Popup的参数 | (实例)地图提示框 |
MapPopup(layerName:string|string[],options:Popup.options) | layerName:图层名称options:继承mapbox Popup的参数 | (实例)地图弹出框 |
MapLine | - | (实例)地图绘制线 |
MapCustom | - | (实例)地图其他绘制(默认symbol) |
MapCircle | - | (实例)地图绘制圆 |
MapEvent-(0.0.24) | layerName?:图层名称 | (实例) 自定义事件 |
MapMarker(options)-(0.0.24) | options:marker参数 | (实例)绘制marker |
MapMoreCustom-(0.0.24) | - | (实例)多图层方法 |
fitBoundsGeoJson(geojson:any,options:Camera.options) | geojsonoptions:相机相关参数 | 聚焦到geojson |
fitBoundsPosition(position:array<array>,options:Camera.options) | position:四至位置options:相机相关参数 | 聚焦到四至位置 |
getInvertMask(geojson:any,options:{id:string,layerConfig:any}):layer | options.id:遮罩idoptions.layerConfig:图层layer样式配置 | 获取geojson反向区域 |
loadImages(urls:{key:string|{url:string,...args}}):Promise<{key:value}> | urls:图片对象集合key:图片名称 ->图片地址 | 加载多张图片 |
loadAddImages(url:{key:string|{url:string,...args}}) | urls:图片对象集合key:图片名称 ->图片地址 | 加载多张图片同时加载到地图上 |
removeLayerSource(options:{name:string|array,layers?:array,sources?:array}) -(0.0.24) | name: 图层和源id(图层和源相同)layers?图层idsources?源id | 移除图层和源 |
removeLayerEvent(event:object,clear)-(0.0.24) | event: 移除的事件对象clear:清除对象 true -(0.0.73) | 移除图层定义的事件 |
findCustomIcon-(0.0.24) | - | 查找自定义的图标 |
setStyle(style,option,callback?)-(0.0.24) | styleoptions{save是否保存图片、源、图层source?:'composite'不保存的源和图层}callback?保存操作后回调 | 设置地图样式(同地图原来设置) |
removeEvents(events?:string[])-(0.0.24) | events:'click', 'mousemove', 'mouseout' | 删除事件 |
removePopup(type:popup|tooltip)-(0.0.24) | type:弹窗类型 | 移除弹窗 |
getCustomLayer()-(0.0.54) | - | 获取type:custom的图层 |
getLayerIndex(id) -(0.0.66) | 图层id | 根据图层id获取层级 |
getLayerId(index,after)-(0.0.66) | index:图层层级after:之后的层级数 | 根据层级获取图层id |
getMinLayerId()-(0.0.66) | - | 获取最小层级id |
getMaxLayerId()-(0.0.66) | - | 获取最大层级id |
getAllLayerId()-(0.0.71) | - | 获取所有图层id |
getAllLayer()-(0.0.71) | - | 获取所有图层 |
getLineLayer()-(0.0.71) | - | 获取线图层 |
AnimateLine(name,options)-(0.0.73) | name:图层idoptions?:{dash?:变化的数组step?:段数} | 线动画 |
Map.Style
方法名 | 参数 | 描述 |
---|---|---|
loadSprite(url)-(0.0.24) | url:精灵图地址 | 加载精灵图( findCustomIcon 可以查询到) |
方法名 | 参数 | 描述 |
---|---|---|
RegisterMapBoxModel(THREE,GLTFLoader) | THREE:threejsGLTFLoader:模型加载器 | 注册模型 |
initGLTF(id:string,options:{},callback:function) | id:模型名称options:{lngLat:经纬度height:高度scale:缩放url:地址(绝对地址/网络地址)rotate:旋转 x,y,zAmbientLight:环境光 {show:boolean,...args:three.ambient}DirectionalLight :平行光 three.directionalPointLight:点光源 three.PointLightclick:是否开启点击事件properties:属性}callback:点击回调 返回{lngLat,properties} | 加载模型 |
方法
MapTooltip
方法名 | 参数 | 描述 |
---|---|---|
show(callback:function,type?:string) | callback:返回tooltip显示的信息,(properties)=>{}type:显示类型 默认跟随点位 ‘move’:跟随鼠标 | 显示提示框 |
destroy() | - | 销毁 |
MapPopup
options:{
...,
destroyComponent=false,//关闭时是否销毁组件
customClick=false,//是否自定义点击事件
popupClose=false,//关闭时是否调用组件内popupClose()方法,vue组件
closeOther=true,//弹窗打开时关闭其他弹窗
noCloseLayerName:string[],//不关闭的弹窗名称
closeClick//点击关闭按钮执行的方法
}
方法名 | 参数 | 描述 |
---|---|---|
show(callbackComp:function,callback?:function) | callbackComp:弹出框内显示的组件callback:弹出框打开后回调 | 显示弹出框 |
close() | - | 关闭弹出框 |
closeBack(callback:function) | callback:弹出框关闭的回调 | 弹出框关闭回调 |
destroy() | - | 销毁 |
showPosition(lnglat:LngLatLike,component:vueComponent,options,callback) | lnglat:经纬度位置component:vue组件options:{offset:[]}偏移callback 回调 | 直接显示弹出框 |
MapLine
方法名 | 参数 | 描述 |
---|---|---|
draw(geojson:GeoJson,name:string,options):array(图层名称数组) | geojsonname:图层idoptions:{beforeId:在那个图层之下layerConfig:图层配置lineConfig?:额外高亮线配置sourceConfig?:源配置(0.0.23)} | 绘制线 |
destroy() | - | 销毁 |
visible()-(0.0.71) | show:boolean | 显示隐藏 |
MapCustom
方法名 | 参数 | 描述 |
---|---|---|
draw (geojson:GeoJson,name:string,options):array(图层名称数组) | geojson name:图层id options:{ beforeId:在那个图层之下 layerConfig:图层配置 type:图层类型 ’symbol‘sliceNum?:数据分割加载数sourceConfig?:源配置(0.0.23) } | 绘制图层 |
destroy() | - | 销毁 |
visible()-(0.0.71) | show:boolean | 显示隐藏 |
MapCircle
方法名 | 参数 | 描述 |
---|---|---|
draw (geojson:GeoJson, name:string,options): array(图层名称数组) | geojson name:图层id options:{ beforeId:在那个图层之下 layerConfig:图层配置 radius:范围(km)steps:圆边数(64)endRadius?:结束范围(km)lingConfig?:边框线配置sourceConfig?:源配置(0.0.23) } | 绘制圆/圆环 |
destroy() | - | 销毁 |
visible()-(0.0.71) | show:boolean | 显示隐藏 |
MapEvent
方法名 | 参数 | 描述 |
---|---|---|
add(event:{key:function}) | event:{'key':事件名称function:事件函数} | 添加事件 |
destroy(array?) | array?:移除的事件名称不传移除全部 | 移除事件 |
MapMoreCustom
layerConfig:{
id,
type,
beforeId,
...
}
方法名 | 参数 | 描述 |
---|---|---|
draw(geojson:GeoJson,options:):array | geojsonoptions:{sourceConfig:{id,type?,...}layerConfig:[]|{}} | 添加多图层 |
destroy() | - | 销毁 |
visible()-(0.0.71) | show:boolean | 显示隐藏 |
MapMarker
方法名 | 参数 | 描述 |
---|---|---|
draw(geojson:GeoJson,htmlCallback:function) | geojsonhtmlCallback({lngLat,properties}) | 绘制marker |
addEvent(events:{key:function}) | events:{dragstart?:function,drag?:function,dragend?function} | 添加事件 |
destroy() | - | 销毁 |
visible()-(0.0.71) | show:boolean | 显示隐藏 |
AnimateLine
方法名 | 参数 | 描述 |
---|---|---|
animate() | - | 开始动画 |
destroy() | - | 销毁动画 |
使用
import TestPopup from '@/views/TestPopup'
map.addSource('point', {
'type': 'geojson',
'data': {
'type': 'FeatureCollection',
'features': [
{
'type': 'Feature',
'properties': {
name: '123'
},
'geometry': {
'type': 'Point',
'coordinates': [115, 30]
}
}
]
}
})
map.addLayer({
'id': 'point',
'type': 'circle',
'source': 'point',
'paint': {
'circle-radius': 10,
'circle-color': '#007cbf'
}
})
const tooltip = map.MapTooltip('point')
tooltip.show((properties) => {
return properties.name
})
const popup=map.MapPopup('point')
popup.show(({properties,lngLat})=>{
//转换vue组件 得到$el以及vue实例
...
return {component:$el,instance:instance}
},({lnglat,properties})=>{})
beforeDestroy(){
//销毁
tooltip.destroy()
popup.destroy()
}
1 year ago
1 year ago
1 year ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
11 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago