new Map(config)
ooomap 地图类
Parameters:
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
config |
object | 地图的初始化配置
Properties
|
Example
创建ooomap地图对象
var container = document.getElementById('container');
// 注意要加上om命名空间
// 最简单的配置,只需要配置container, 其它配置匀使用默认值
var map = new om.Map({
container: container
})
// 所有的配置选项
var map = new om.Map({
container: container,
verifyUrl: '',
appID: '',
backgroundColor: '#51768c',
backgroundAlpha: 1,
frameRate: 12,
maxFrameRate: 20,
viewMode: '3d',
viewAngle: 30,
polarAngle: 60,
center: { x: 12956609.56, y: 4852487.1 },
viewCenter: null, // 默认为center
zoom: null,
zoomLevel: 18,
minZoomLevel: 14,
maxZoomLevel: 23,
minPolarAngle: 0,
maxPolarAngle: 60,
animateDuration: 300,
useAOEffect: true,
});
// 地图视图初始化完成
map.on('ready', function() {
console.log('ooomap is ready!');
});
// 地图元素(Node)的拾取事件
map.on('picked', function(node) {
console.log(node);
});
Members
-
brightness :float
-
地图场景的整体亮度
- Default Value:
- 1.0
-
frameRate :int
-
地图的帧率
- Default Value:
- 12
-
readonly isActive :bool
-
判断当前地图所处的网页是否处于活动状态
- Default Value:
- true
-
maxFrameRate :int
-
最大帧率, 0~60
- Default Value:
- 30
-
picker :Picker
-
用于处理地图中元素拾取交互的类
-
sceneManager :Scene
-
场景类
-
state :State
-
地图的状态类
-
themes :Object
-
记录当前已载入的主题数据 {themeID: themeData, ...}
-
useAOEffect
-
是否开启 AO 阴影效果
-
view :View
-
地图的视图渲染类
Methods
-
static getInstance() → {Map}
-
在只有一个Map对象时,方便得到Map实例
Returns:
Map - Map对象的实例 -
clear() → {null}
-
清空当前地图场景与数据
Returns:
null -
dispose()
-
注销地图并释放内存
Example
map.dispose();
-
getThemeByID(themeID) → {Theme}
-
能过themeID,得到对应的主题Theme
Parameters:
Name Type Description themeID
string 主题ID, themeID Returns:
Theme - Theme类的实例 -
nextTick(func) → {null}
-
在下一帧时触发
Parameters:
Name Type Description func
function 要触发的方法 Returns:
null -
pause()
-
暂停地图的消息循环
-
resume()
-
重启地图的消息循环
-
setConfig(config)
-
设置新的 配置,主要使用在打开新的 OMScene 场景时,需要应用此场景的配置,而不需要重新创建一个map对象
Parameters:
Name Type Description config
object 同 ooomap 的配置 Example
map.setConfig({ backgroundColor: 'red', frameRate: 12, useAOEffect: true })
Events
-
blockCreated
-
当体块对象被创建时触发
Type:
Example
map.on('blockCreated', block => {})
-
blur
-
地图失去焦点时触发的事件
-
buildingLoaded
-
建筑数据加载完成事件
Type:
- object
Example
map.on('buildingLoaded', omBuilding => {})
-
doubleClick
-
元素的双击事件, 判定的时间为80毫秒,可以通过map.picker.doubleClickTime字段进行设置
Type:
Example
map.on('doubleClick', function(node) {...});
-
endPick
-
拾取结束事件,mouseup, touchend
Type:
-
floorLoaded
-
楼层数据加载完成事件
Type:
- object
Example
map.on('floorLoaded', floor => {})
-
focus
-
地图重新获得焦点时触发的事件
-
longPressed
-
触发 long pressed (长按) 事件, 判定时间为400毫秒,可以通过map.picker.longPressedTime字段来设置
Type:
Example
map.on('longPressed', function(node) {...});
-
markerCreated
-
当标注对象被创建时触发
Type:
Example
map.on('markerCreated', marker => {})
-
modelCreated
-
当模型或几何体被创建时触发
Type:
Example
map.on('modelCreated', model => {})
-
mouseenter
-
针对桌面端,当鼠标进入某结点时触发
Type:
-
mouseleave
-
针对桌面端,当鼠标离开某结点时触发
Type:
-
nodeCreated
-
地图结点创建事件, 因为地图中的结点是"按需"创建的, 此事件就是在 marker, model, block 对象在创建时触发, 用户可以对当前创建出来的结点进行一些处理
Type:
Example
map.on('nodeCreated', node => { console.log('当前创建的结点为: ', node) })
-
picked
-
元素的拾取与点击事件
Type:
Example
map.on('picked', function(node) {...});
-
ready
-
地图view(视图)初始化完成, 此时可能还没有加载场景数据,只是空的Map对象初始化完成
Example
map.on('ready', function() {...});
-
sceneLoaded
-
场景数据加载完成并创建了OMScene对象事件, (注意只是场景的数据加载完成, 结点还未真正的创建), 一般做为地图的加载完成事件
Type:
- object
Example
map.on('sceneLoaded', omScene => { console.log(omScene) })
-
startPick
-
触发开始事件
Type:
-
update
-
地图主要的循环更新事件
Properties:
Name Type Description deltaTime
float 与上一帧之间的时间间隔(ms) Example
// 监听地图的update事件 map.on('update', (deltaTime) => { console.log(deltaTime); }) // 如果需要注消监听的事件,就不能使用匿名函数了。 function updateCallback(deltaTime) { ... } // 监听地图的update事件 map.on('update', updateCallback); // 注消地图的update事件 map.off('update', updateCallback);
-
viewChanged
-
视图发生变化时所触发的事件
-
viewModeChanged
-
视图模式发生变化时触发的事件
Parameters:
Name Type Description mode
string 变化后的视图模式 Example
map.on('viewModeChanged', (mode) => { console.log('当前的视图模式为:', mode); })
-
zoomLevelChanged
-
比例尺级别发生变化时的回调
Parameters:
Name Type Description data
object Properties
Name Type Description currentLevel
int 当前的比例尺级别 lastLevel
int 变化前的比例尺级别 Example
map.on('zoomLevelChanged', (data) => { console.log(data, data.currentLevel, data.lastLevel); })