Map(config)

new Map(config)

ooomap 地图类
Parameters:
Name Type Description
config object 地图的初始化配置
Properties
Name Type Default Description
container Dom 用于放置地图的Dom容器,一般为div
backgroundColor string '#51768c' 默认背景颜色
backgroundAlpha float 1 默认背景透明度
frameRate int 12 帧率,0~60
maxFrameRate int 20 用户在对地图进行操作时,如移动,旋转操作,地图的最大帧率
viewMode string '3d' 视图模式,'2d', '3d'
viewAngle float 30 地图水平角度,与正北方向的夹角
polarAgnle float 60 地图的倾斜角度
center object 地图的中心(web 墨卡托)坐标,对应场景坐标的0,0点,默认为北京天安门
Properties
Name Type Default Description
x float 12956609.56 地图中心的x坐标
y float 4852487.1 地图中心的y坐标
viewCenter object 视图中心坐标,默认为地图中心center
zoom float null 显示比例尺,它的优先级大于zoomLevel
zoomLevel int 18 地图的比例尺级别 1~29 级
minZoomLevel int 14 最小的比例尺级别
maxZoomLevel int 23 最小的比例尺级别
minPolarAngle float 0 最小倾斜角度
maxPolarAngle float 60 最大倾斜角度
animateDuration int 300 地图中所有动画的默认持续时间(毫秒)
useAOEffect Boolean true 是否开启SSAO阴影效果
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);
})