Class: MapPlugin

MapPlugin(options)

地图插件,默认采用BingMap服务,可以设置其他地图服务或离线的地图服务,国内开发建议采用天地图。
在线地图服务支持:BingMapsProvider,MapBoxProvider,TianDiTuMapsProvider,OpenStreetMapsProvider
离线地图服务:XYZMapsProvider

Constructor

new MapPlugin(options)

构造函数
Parameters:
Name Type Description
options Object 参数 { terrain:是否启用地形 默认false,注意如果默认开启地形,那么plugin.setDefaultCamera初始高度不能低于1000米 ui:是否需要Map UI控件 默认true offlineTerrain:离线地形,数据为terrain-rgb瓦片,数据格式:{ baseUrl:'http://localhost:8888/my_terrain',minZoom:1,maxZoom:18} terrainFast:是否启用地形加速 默认false,地形加速需要在开启地形的条件下进行地形快速绘制,但无法得到高程数据,如果地形只是作为背景,不需要获得地形高程信息,那么开启该功能可以提升性能 }

Methods

addWater(url)

加载水面数据
Parameters:
Name Type Description
url * 一组包含经纬度的地理坐标点数据json

disposeGeoJson()

销毁所有的geojson资源

flyTo(param0, param1)

相机动画飞行
Parameters:
Name Type Description
param0 object {latitude, longitude,height,pitch=0,yaw=0}
param1 object {duration = 3000,middleHeight = 300000,callback = null}

jumpBack()

场景跳回地图

jumpTo(modelId)

场景跳转到模型
Parameters:
Name Type Description
modelId *

loadBIM(options)

在地图中加载BIM模型,模型的中心点落在该经纬度上,返回Promise,该函数已废弃,建议采用viewer.load(url,options);
Parameters:
Name Type Description
options Object 加载参数对象 url 文件url地址 modelId 模型id,确保唯一,默认使用时间戳 latitude 纬度 longitude 经度 offset BIMI.THREE.Vector3 位置偏移向量 默认(0,0,0) scale BIMI.THREE.Vector3 缩放向量 默认(1,1,1) rotate BIMI.THREE.Vector3 旋转向量,xyz三轴的旋转角度 默认(0,0,0)

loadFBX(options)

在地图中加载FBX模型,模型的中心点落在该经纬度上,返回Promise,该函数已废弃,建议采用viewer.load(url,options);
Parameters:
Name Type Description
options * url 文件url地址 modelId 模型id,确保唯一,默认使用时间戳 latitude 纬度 longitude 经度 offset BIMI.THREE.Vector3 位置偏移向量 默认(0,0,0) scale BIMI.THREE.Vector3 缩放向量 默认(1,1,1) rotate BIMI.THREE.Vector3 旋转向量,xyz三轴的旋转角度 默认(0,0,0)

loadGLTF(options)

在地图中加载GLTF模型,模型的中心点落在该经纬度上,返回Promise,该函数已废弃,建议采用viewer.load(url,options);
Parameters:
Name Type Description
options * url 文件url地址 modelId 模型id,确保唯一,默认使用时间戳 latitude 纬度 longitude 经度 offset BIMI.THREE.Vector3 位置偏移向量 默认(0,0,0) scale BIMI.THREE.Vector3 缩放向量 默认(1,1,1) rotate BIMI.THREE.Vector3 旋转向量,xyz三轴的旋转角度 默认(0,0,0)

loadGeoJson(url, options, callback)

加载geojson
Parameters:
Name Type Description
url *
options *
callback * 回调函数,参数包含geojson的THREE.Group对象

loadIsoline(id, url, param, offsetHeight)

加载等值线
Parameters:
Name Type Description
id String/Number 等值线对象,可以通过id对等值线对象进行显示/隐藏/销毁等操作
url String xmap程序提供的等值线服务url,xmap是bimi引擎提供的针对GIS高级功能的后台服务程序。
param Object 等值线参数对象。格式例如: let param = { //样本点 samples:[ {latitude:31.263594,longitude:120.843610,value:80}, {latitude:31.263594,longitude:120.943610,value:20}, {latitude:31.263594,longitude:121.043610,value:60}, {latitude:31.263594,longitude:121.143610,value:10}, {latitude:31.263594,longitude:121.243610,value:100}, {latitude:31.093232,longitude:120.843610,value:0}, {latitude:31.093232,longitude:120.943610,value:20}, {latitude:31.093232,longitude:121.043610,value:50}, {latitude:31.093232,longitude:121.143610,value:30}, {latitude:31.093232,longitude:121.243610,value:0}, {latitude:30.936382,longitude:120.843610,value:60}, {latitude:30.936382,longitude:120.943610,value:20}, {latitude:30.936382,longitude:121.043610,value:80}, {latitude:30.936382,longitude:121.143610,value:10}, {latitude:30.936382,longitude:121.243610,value:80}, ], //范围,由左上角和右下角两点坐标组成 bounds:[30.836931,120.730107,31.344308,121.448660], //取值段落 legend:[5,30,50,70,90], //每个取值段落的填充样式定义,注意,要包含小于最小的,和大于最大的两端定义 fillStyle:[ {color:'#ffffff',opacity:0.5}, //<5 {color:'#00c0ff',opacity:0.5}, //5-30 {color:'#0056ff',opacity:0.5}, //30-50 {color:'#ff884d',opacity:0.5}, //50-70 {color:'#ff4a00',opacity:0.5}, //70-90 {color:'#ff0000',opacity:0.5} //>90 ], //裁剪边界,是个geojson的polygon对象,通常为行政边界的geojson数据 clip:geojson }
offsetHeight Numher 等值线渲染的mesh对象离地面高度,注意负数表示高出地面,正数表示低于地面,默认值-1,表示离地1米的高度
Returns:
Promise

loadOBJ(options)

在地图中加载OBJ模型,模型的中心点落在该经纬度上,返回Promise,该函数已废弃,建议采用viewer.load(url,options);
Parameters:
Name Type Description
options * url 文件url地址 modelId 模型id,确保唯一,默认使用时间戳 latitude 纬度 longitude 经度 offset BIMI.THREE.Vector3 位置偏移向量 默认(0,0,0) scale BIMI.THREE.Vector3 缩放向量 默认(1,1,1) rotate BIMI.THREE.Vector3 旋转向量,xyz三轴的旋转角度 默认(0,0,0)

moveTo(param0)

相机直接移动到指定位置
Parameters:
Name Type Description
param0 object {latitude, longitude,height,pitch=0,yaw=0}
Returns:
state数据对象

removeGeoJson(id)

移除一个geojson对象
Parameters:
Name Type Description
id *

setDefaultCamera(param)

设置相机初始位置
Parameters:
Name Type Description
param object 位置参数 { latitude: 纬度
longitude: 经度
height: 高度(米)
pitch:相机俯仰角(绕X轴) ,默认-90,垂直向下 yaw:相机旋转角(绕Y轴),默认0,对准北方 }

setMapOpacity(opacity)

设置地图不透明度
Parameters:
Name Type Description
opacity Number 不透明度,默认1.0

setModelPosition(modelId, latitude, longitude, offset, scale, rotate)

设置模型在地图上的位置,该函数已废弃,建议采用viewer.setModelPosition(modelId,{ latitude:latitude, longitude:longitude, offset:offset, scale:scale, rotate:rotate });
Parameters:
Name Type Description
modelId Number | String 模型ID
latitude Number 纬度
longitude Number 经度
offset BIMI.THREE.Vector3 位置偏移量
scale BIMI.THREE.Vector3 模型缩放量
rotate BIMI.THREE.Vector3 模型旋转量

showSky(visible)

显示天空盒
Parameters:
Name Type Description
visible boolean 默认true

useBingMaps(apiToken, style)

使用BingMaps地图
Parameters:
Name Type Description
apiToken * bingmaps token
style * bingmaps地图样式 可选项 : BingMapsProvider.AERIAL 卫星 默认值 BingMapsProvider.ROAD 矢量 BingMapsProvider.AERIAL_LABELS 卫星+拼音标记

useMapBox(apiToken, style)

使用MapBox地图
Parameters:
Name Type Description
apiToken * mapbox token
style * mapbox地图style id 可选项: - mapbox/streets-v10 矢量 - mapbox/outdoors-v10 矢量 - mapbox/light-v9 矢量 - mapbox/dark-v9 矢量,这个有名气啊 - mapbox/satellite-v9 卫星 默认值 - mapbox/satellite-streets-v10 卫星+路网 - mapbox/navigation-preview-day-v4 矢量 - mapbox/navigation-preview-night-v4 矢量 - mapbox/navigation-guidance-day-v4 矢量 - mapbox/navigation-guidance-night-v4 矢量

useOfflineMaps(baseUrl, minZoom, maxZoom, format)

使用离线瓦片地图
Parameters:
Name Type Description
baseUrl * 地图服务基础URL,例如:'http://192.168.1.32:8888/offlineMaps'
minZoom * 最小级别
maxZoom * 最大级别
format * 地图图片后缀名,默认 '.jpg'

useTDTMaps(apiToken, style)

使用天地图地图,天地图有调用限制,正式使用请自己申请企业版token
Parameters:
Name Type Description
apiToken * 天地图token
style * 地图样式 可选项 : TianDiTuMapsProvider.SATELLITE 卫星 TianDiTuMapsProvider.ROAD 矢量

useTerrain(use)

切换地形
Parameters:
Name Type Description
use * 默认false

zoomToModel(modelId, fitOffset, fly, duration, middleHeight, callback)

相机定位到某个模型
Parameters:
Name Type Description
modelId String/Number 模型ID
fitOffset * 聚焦距离指数,默认1.2
fly * 是否飞行动画 默认true
duration * 飞行事件 默认3000
middleHeight * 飞行高度 默认300000
callback * 飞行动画结束回调函数,默认null