Skip to content

lonbon-map 使用文档

一、修订历史

版本号更新时间作者备注
v1.1.502024-04-03王耀接入文档v1.1.50
v1.1.562024-10-18王耀1、增加Image图片管理
2、增加常见错误码
3、createMap增加onHttpResponse回调
v1.1.572024-10-23王耀兼容莱迅地图,扩展重置视角方法

二、使用插件

1、安装

bash
npm i lonbon-map@latest -S

2、引入

  • 说明:引入后挂载在window对象中,通过window.lbmap即可访问
js
import 'lonbon-map'

三、全局地图对象API

1、注册地图服务

  • 说明:创建地图实例前需要先注册
js
await lbmap.registerMap(object)
  • 参数:object
    属性名类型必填说明
    serverString地图服务器地址
    tokenString访问令牌,由对接方服务端提供并维护
    appIdString登录账号,仅可调试时使用
    appSecretString登录密码,仅可调试时使用
    resourceString静态资源路径,仅可调试时使用
  • 返回结果:无

2、创建地图实例

js
this.map = await lbmap.createMap(object)
  • 参数:object

    属性名类型必填说明
    containerString绑定dom节点id
    defaultViewportObject默认视图,详见参数defaultViewport
    show3DimensionBooleantrue显示3D,false显示2D,默认值true
    backgroundString背景图,可传色号或图片url
    enableZoomControllerBoolean是否显示缩放控件,默认true
    enableFullscreenControllerBoolean是否显示全屏控件,默认true
    enableDimensionControllerBoolean是否显示3D控件,默认true
    onInitSuccessFunction初始化成功回调函数
    onInitFailFunction初始化失败回调函数,可参照常见错误码
    onSingleClickFunction单击地图事件回调函数
    onHttpResponseFunction接口请求响应回调函数
  • 返回结果:地图实例

  • 参数:defaultViewport

    属性名类型必填说明
    spaceIdString当前楼栋ID
    floorString当前楼层ID
    minZoomNumber地图最小缩放值,取值0-24,默认18
    maxZoomNumber地图最大缩放值,取值0-24,默认24

3、刷新token

  • 说明:用于token失效时使用,一般由对接方服务端检测到token失效后通知前端刷新token
js
lbmap.refreshToken(token)
  • 参数:token
    属性名类型必填说明
    tokenString访问令牌,由对接方服务端提供并维护

四、常用地图实例API

TIP

以下API兼容自研地图、莱迅地图

1、更新地图(切换楼栋楼层)

js
let result = await this.map.updateViewport(object)
  • 参数:object,详见参数defaultViewport
  • 返回结果:true成功/false失败

2、重置视角

js
this.map.reset()

3、创建图层

js
this.map.addLayer(object)
  • 参数:object
    属性名类型必填说明
    idString图层ID,用于图层更新和删除
    typeString图层类型,默认 'overlay'
    可选值:
    'overlay' 常用自定义点标记
    'popup' 弹框
    'line' 折线
    'geojsonEditor' 可编辑的多边形
    'polygon' 不可编辑的多边形
    anchorString点标记锚点,默认'bottom'
    适用于type为 'overlay'时
    longitudeString坐标经度
    适用于type为 'overlay'或'popup' 时
    latitudeString坐标纬度
    适用于type为 'overlay'或'popup' 时
    floorString图层所在楼层,与当前地图楼层不匹配时不会渲染该图层
    适用于type为 'overlay'时
    childrenString图层展示内容,可传入html
    适用于type为 'overlay'或'popup' 时
    modeNumber可编辑的多边形的显示模式,
    可选值:
    1 预览模式
    2 新增模式
    3 编辑模式
    适用于type为 'geojsonEditor'时
    dataArray图层展示geojson数据
    适用于type为 'line'或'geojsonEditor' 或'polygon'时
    onEditFunction图层展示数据更新事件
    适用于type为 'geojsonEditor'时
    getColorString图层颜色,可传入色号
    适用于type为 'line'或'polygon'时
    getWidthNumber图层宽度
    适用于type为 'line'时
    getElevationNumber图层高度
    适用于type为 'polygon'时
    animationBoolean/Number图层坐标更新时的动画效果,默认false,
    可选值:
    true 开启动画效果,动画时间2000ms
    false 关闭动画效果
    number 动画时间
    适用于type为 'overlay'时

4、更新图层

js
this.map.updateLayer(object)
  • 参数:创建图层

5、删除图层

js
this.map.removeLayer(id)
  • 参数:图层id,同创建图层 的图层id

五、更多地图实例API

TIP

以下API仅支持自研地图

1、Marker点标记管理

创建点标记

js
this.map.createMarker(object)
  • 参数:object

    属性名类型必填说明
    lbidString唯一标识,不传默认会随机生成,可用于更新获取和删除
    contentString展示内容,可传入html
    positionArray坐标经纬度,如:[117.30141069116291, 31.814799894745548]
    positionTypeString坐标类型,默认'lnglat',
    可选值:
    'lnglat' 经纬度
    'pixel' 地图视口的像素点
    minZoomNumber最小缩放显示,小于该值不显示
    maxZoomNumber最大缩放显示,大于该值不显示
  • 返回结果:点标记实例

更新点标记

js
this.map.updateMarker(object)
  • 参数:同上创建点标记

获取点标记

js
this.map.getMarker(lbid)
  • 参数:lbid 点标记唯一标识

删除点标记

js
this.map.removeMarker(lbid)
  • 参数:lbid 点标记唯一标识

清空所有点标记

js
this.map.clearMarker()

2、3D模型管理

创建3D模型

js
this.map.createModel(object)
  • 参数:object
    属性名类型必填说明
    lbidString唯一标识,不传默认会随机生成,可用于更新获取和删除
    urlString模型路径地址
    objTypeString模型类型,默认'gltf',
    可选值:
    'gltf'
    'fbx'
    'mtl'
    建议使用gltf模型
    objMtlString模型材质路径地址
    positionArray坐标经纬度,如:[117.30141069116291, 31.814799894745548]
    positionTypeString坐标类型,默认'lnglat',
    可选值:
    'lnglat' 经纬度
    'pixel' 地图视口的像素点
    scaleArray缩放比例,如:[1,1,1]
    rotationArray旋转角度,如:[90,90,90]
  • 返回结果:3D模型实例

获取3D模型

js
this.map.getModel(lbid)
  • 参数:lbid 唯一标识

删除3D模型

js
this.map.removeModel(lbid)
  • 参数:lbid 唯一标识

清空所有3D模型

js
this.map.clearModel()

3、Popup弹出窗口管理

创建弹出窗口

js
this.map.createPopup(object)
  • 参数:object
    属性名类型必填说明
    lbidString唯一标识,不传默认会随机生成,可用于更新获取和删除
    contentString展示内容,可传入html
    positionArray坐标经纬度,如:[117.30141069116291, 31.814799894745548]
    positionTypeString坐标类型,默认'lnglat',
    可选值:
    'lnglat' 经纬度
    'pixel' 地图视口的像素点
  • 返回结果:3D模型实例

更新弹出窗口

js
this.map.updatePopup(object)
  • 参数:同上创建弹出窗口

获取弹出窗口

js
this.map.getPopup(lbid)
  • 参数:lbid 弹出窗口唯一标识

删除弹出窗口

js
this.map.removePopup(lbid)
  • 参数:lbid 弹出窗口唯一标识

清空所有弹出窗口

js
this.map.clearPopup()

4、Polygon多边形管理

创建多边形

js
this.map.createPolygon(object)
  • 参数:object
    属性名类型必填说明
    lbidString唯一标识,不传默认会随机生成,可用于更新获取和删除
    dataArraygeojson数据
    baseNumber基础高度,默认0,相对于地面的高度
    heightNumber模型高度,默认2,模型的拉伸高度
    colorString颜色色号,默认'#F0A4B0'
    opacityNumber颜色透明度,默认0.8
  • 返回结果:Polygon多边形实例

获取多边形

js
this.map.getCustom(lbid)
  • 参数:lbid 唯一标识

删除多边形

js
this.map.removeCustom(lbid)
  • 参数:lbid 唯一标识

5、Line折线管理

创建折线

js
this.map.createLine(object)
  • 参数:object
    属性名类型必填说明
    lbidString唯一标识,不传默认会随机生成,可用于更新获取和删除
    dataArraygeojson数据
    widthNumber折线宽度,默认4
    colorString颜色色号,默认'#F0A4B0'
  • 返回结果:3D模型实例

获取折线

js
this.map.getCustom(lbid)
  • 参数:lbid 唯一标识

删除折线

js
this.map.removeCustom(lbid)
  • 参数:lbid 唯一标识

6、Arrow箭头折线管理

创建箭头折线

js
this.map.createArrow(object)
  • 参数:object
    属性名类型必填说明
    lbidString唯一标识,不传默认会随机生成,可用于更新获取和删除
    dataArraygeojson数据
    spacingNumber箭头间隔距离,默认50
    sizeNumber箭头图标大小,默认0.5
    rotateNumber箭头旋转角度,默认0
  • 返回结果:Arrow箭头折线实例

获取箭头折线

js
this.map.getCustom(lbid)
  • 参数:lbid 唯一标识

删除箭头折线

js
this.map.removeCustom(lbid)
  • 参数:lbid 唯一标识

7、Image图片管理

创建图片

js
this.map.createImage(object)
  • 参数:object
    属性名类型必填说明
    lbidString唯一标识,不传默认会随机生成,可用于更新获取和删除
    dataArraygeojson数据
    urlString图片url
  • 返回结果:Image图片实例

更新图片

js
this.map.updateImage(object)
  • 参数:object
    属性名类型必填说明
    lbidString唯一标识,不传默认会随机生成,可用于更新获取和删除
    dataArraygeojson数据

获取图片

js
this.map.getCustom(lbid)
  • 参数:lbid 唯一标识

删除图片

js
this.map.removeCustom(lbid)
  • 参数:lbid 唯一标识

7、地图管理

切换3D/2D视角

js
let view = this.map.transView()
  • 参数:无
  • 返回结果:切换后的当前视角

自适应缩放

js
this.map.fitBounds()

销毁

js
this.map.destroy()

六、地图服务API

1、地图数据相关

获取所有楼栋楼层树型数据

js
let result = await lbmap.requestMap.loadTree()

获取所有楼栋数据

js
let result = await lbmap.requestMap.loadSpace()

获取指定楼栋下所有楼层数据

js
let result = await lbmap.requestMap.loadFloor(spaceId)

获取指定楼层数据

js
let result = await lbmap.requestMap.getFloorById(floorId)

搜索指定楼层下的所有区域数据

js
let result = await lbmap.requestMap.searchAddress({ areaName, floorId })

搜索指定楼层下的坐标所在区域数据

js
let result = await lbmap.requestMap.searchPoint({ longitude, latitude, floorId })

2、地图工具相关

路径导航

js
let result = await lbmap.requestMap.navigation({strategy, points})

七、常见错误码

错误码释义
10001浏览器版本过低,请升级最新版本
10002接口请求失败
10003接口请求异常或超时
20001注册失败,未配置地图服务
20002注册失败,未获取到地图服务token
30001地图加载失败,访问地址或token有误
30002地图加载失败,未获取到地图配置信息
30003地图加载失败,地图状态异常
30004地图加载失败,未获取到地图图层信息
30005地图加载失败,defaultViewport不存在
30006地图加载失败,当前楼层不存在
30004地图加载失败,未获取到地图图层信息
30007地图加载失败,地图初始化异常(莱迅)
30008地图加载失败,地图初始化异常!(自研)
40001轨迹查询参数不全
40002未查询到轨迹数据
40003轨迹数据有误