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
    show3DimensionBoolean否true显示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否唯一标识,不传默认会随机生成,可用于更新获取和删除
    dataArray是geojson数据
    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否唯一标识,不传默认会随机生成,可用于更新获取和删除
    dataArray是geojson数据
    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否唯一标识,不传默认会随机生成,可用于更新获取和删除
    dataArray是geojson数据
    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否唯一标识,不传默认会随机生成,可用于更新获取和删除
    dataArray是geojson数据
    urlString是图片url
  • 返回结果:Image图片实例

更新图片 ​

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

获取图片 ​

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轨迹数据有误