# OsmBuildingsLayer
查阅Cesium API

#### new mars3d.layer.OsmBuildingsLayer(options)
layer/graphicLayer/OsmBuildingsLayer.js 5

OSM在线 建筑物模型

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 参数对象，参数包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`maximumScreenSpaceError` | number | `16` | 可选 用于驱动细化细节级别的最大屏幕空间错误。数值加大，能让最终成像变模糊
`maxMemory` | number | `1024` | 可选 最大缓存内存大小(MB), 内部换算给 cacheBytes = maxMemory10241024、maximumCacheOverflowBytes = cacheBytes * 1.5 (另：如果同时配置了cacheBytes、maximumMemoryUsage时该参数无效)
`cacheBytes` | number |  | 可选 如果缓存包含当前视图不需要的块，则块缓存将被修剪到的大小(以字节为单位)。
`maximumCacheOverflowBytes` | number |  | 可选 如果当前视图需要超过`Cesium3DTileset#cacheBytes`，则允许缓存净空的最大额外内存(以字节为单位)。
`maximumMemoryUsage` | number |  | 可选 【cesium 1.107+弃用】数据集可以使用的最大内存量(以MB计)，这个参数要根据当前客户端显卡显存来配置，如果我们场景只显示这一个模型数据，这个可以设置到显存的50% 左右，比如我的显存是4G，这个可以设置到2048左右。那么既保证不超过显存限制，又可以最大利用显存缓存。
`style` | object | Cesium.Cesium3DTileStyle | function |  | 可选 模型样式， 使用3D Tiles Styling language.
`marsJzwStyle` | boolean | string | `false` | 可选 开启或设置建筑物特效样式。
`customShader` | Cesium.CustomShader |  | 可选 自定义shader效果
`highlight` | object | Outline.Options |  | 可选 高亮及其样式配置
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`type` | string |  | 可选 鼠标移入高亮 或 单击高亮(type:'click')
`enabled` | boolean | `true` | 可选 是否启用
`all` | boolean |  | 可选 是否整体高亮， true:模型整体全部高亮，false:单个构件高亮
`color` | string | function | `'#FFFF00'` | 可选 颜色，支持rgba字符串
`outlineEffect` | boolean | `false` | 可选 默认为修改矢量对象本身的style高亮，true时采用`Outline`方式高亮。
`filter` | function |  | 可选 可以设置筛选排除一些构件, 排除的构件在filter方法内返回false
`allowDrillPick` | boolean | function |  | 可选 是否允许鼠标穿透拾取
`popup` | string | Array.<Globe.getTemplateHtml_template> | function |  | 可选 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
`popupOptions` | Popup.StyleOptions |  | 可选 popup弹窗时的配置参数，也支持如pointerEvents等`Popup`构造参数,还包括：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`title` | string |  | 可选 固定的标题名称
`titleField` | string |  | 可选 标题对应的属性字段名称
`noTitle` | string |  | 可选 不显示标题
`showNull` | string | `false` | 可选 是否显示空值
`tooltip` | string | Array.<Globe.getTemplateHtml_template> | function | object |  | 可选 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
`tooltipOptions` | Tooltip.StyleOptions |  | 可选 tooltip弹窗时的配置参数，也支持如pointerEvents等`Tooltip`构造参数,还包括：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`title` | string |  | 可选 固定的标题名称
`titleField` | string |  | 可选 标题对应的属性字段名称
`noTitle` | string |  | 可选 不显示标题
`showNull` | string | `false` | 可选 是否显示空值
`contextmenuItems` | object |  | 可选 绑定的右键菜单值，也可以bindContextMenu方法绑定
`id` | string | number | `mars3d.Util.createGuid()` | 可选 图层id标识
`pid` | string | number |  | 可选 图层父级的id，一般图层管理中使用
`name` | string |  | 可选 图层名称
`show` | boolean | `true` | 可选 图层是否显示
`eventParent` | BaseClass | boolean |  | 可选 指定的事件冒泡对象，默认为map对象，false时不冒泡
`center` | object |  | 可选 图层自定义定位视角 `Map#setCameraView`
参数名称 | 类型 | 描述信息
--- | --- | ---
`lng` | number | 经度值, -180至180
`lat` | number | 纬度值, -90至90
`alt` | number | 可选 高度值
`heading` | number | 可选 方向角度值，绕垂直于地心的轴旋转角度, 0至360
`pitch` | number | 可选 俯仰角度值，绕纬度线旋转角度, -90至90
`roll` | number | 可选 翻滚角度值，绕经度线旋转角度, -90至90
`extent` | object |  | 可选 图层自定义定位的矩形区域，与center二选一即可。 `Map#flyToExtent`
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`xmin` | number |  | 最小经度值, -180 至 180
`xmax` | number |  | 最大经度值, -180 至 180
`ymin` | number |  | 最小纬度值, -90 至 90
`ymax` | number |  | 最大纬度值, -90 至 90
`height` | number | `0` | 可选 矩形高度值
`flyTo` | boolean |  | 可选 加载完成数据后是否自动飞行定位到数据所在的区域。
`flyToOptions` | object |  | 可选 加载完成数据后是否自动飞行定位到数据所在的区域的对应 `BaseLayer#flyTo`方法参数。

##### 参考:

- `支持的事件类型`

### 继承自

- TilesetLayer

### 属性值

#### allowDrillPick : boolean|function
layer/graphicLayer/TilesetLayer.js 633

是否允许鼠标穿透拾取

继承自:
  - TilesetLayer#allowDrillPick

#### alt : number
layer/graphicLayer/TilesetLayer.js 457

调整修改模型高度

继承自:
  - TilesetLayer#alt

#### axis : string|Cesium.Axis
layer/graphicLayer/TilesetLayer.js 568

轴方向

继承自:
  - TilesetLayer#axis

#### 只读 boundingSphere : Cesium.BoundingSphere
layer/graphicLayer/TilesetLayer.js 478

模型的边界球体。

继承自:
  - TilesetLayer#boundingSphere

#### center : LngLatPoint
layer/graphicLayer/TilesetLayer.js 431

模型当前中心点坐标

继承自:
  - TilesetLayer#center

##### 使用示例:

    tiles3dLayer.readyPromise.then(() => {
      console.log("模型加载完成", tiles3dLayer)
      const center = tiles3dLayer.center
    })

#### 只读 clip : TilesetClip
layer/graphicLayer/TilesetLayer.js 750

模型裁剪 对象

继承自:
  - TilesetLayer#clip

#### 只读 colorCorrection : TilesetColorCorrection
layer/graphicLayer/TilesetLayer.js 686

颜色校正 对象

继承自:
  - TilesetLayer#colorCorrection

#### customShader : Cesium.CustomShader
layer/graphicLayer/TilesetLayer.js 362

自定义shader效果,
如果默认无customShader，加载模型后动态修改customShader值

继承自:
  - TilesetLayer#customShader

#### 只读 flat : TilesetFlat
layer/graphicLayer/TilesetLayer.js 779

模型压平 对象

继承自:
  - TilesetLayer#flat

#### 只读 flood : TilesetFlood
layer/graphicLayer/TilesetLayer.js 809

模型淹没 对象

继承自:
  - TilesetLayer#flood

#### hasEdit : boolean
layer/graphicLayer/TilesetLayer.js 713

判断是否允许编辑（可以外部传入禁用编辑，部分模型没有transform矩阵时是不允许编辑的）

继承自:
  - TilesetLayer#hasEdit

#### height : number
layer/graphicLayer/TilesetLayer.js 445

调整修改模型高度, 同alt

继承自:
  - TilesetLayer#height

#### 只读 highlight : object
layer/graphicLayer/TilesetLayer.js 293

鼠标移入或单击(type:'click')后的对应高亮的部分样式,空值时不高亮

继承自:
  - TilesetLayer#highlight

#### 只读 inverseMatrix : Cesium.Matrix4
layer/graphicLayer/TilesetLayer.js 277

逆变换矩阵。

继承自:
  - TilesetLayer#inverseMatrix

#### isAutoEditing : boolean
layer/graphicLayer/TilesetLayer.js 729

是否自动激活编辑（true时，单击后自动激活编辑）

继承自:
  - TilesetLayer#isAutoEditing

#### 只读 isEditing : boolean
layer/graphicLayer/TilesetLayer.js 838

是否正在编辑状态

继承自:
  - TilesetLayer#isEditing

#### marsJzwStyle : boolean|object|string
layer/graphicLayer/TilesetLayer.js 310

开启或设置建筑物特效样式。

继承自:
  - TilesetLayer#marsJzwStyle

#### 只读 modelMatrix : Cesium.Matrix4
layer/graphicLayer/TilesetLayer.js 258

变换矩阵。

继承自:
  - TilesetLayer#modelMatrix

#### 只读 modelUpAxis : Cesium.Axis
layer/graphicLayer/TilesetLayer.js 487

模型的向上轴，比如Cesium.Axis.Z 或 Cesium.Axis.Y

继承自:
  - TilesetLayer#modelUpAxis

#### 只读 orginCenterPoint : LngLatPoint
layer/graphicLayer/TilesetLayer.js 395

模型原始的中心点坐标

继承自:
  - TilesetLayer#orginCenterPoint

#### 只读 orginCenterPosition : Cesium.Cartesian3
layer/graphicLayer/TilesetLayer.js 404

模型原始的中心点坐标 （笛卡尔坐标）

继承自:
  - TilesetLayer#orginCenterPosition

#### 只读 orginMatrix : Cesium.Matrix4
layer/graphicLayer/TilesetLayer.js 1126

模型原始矩阵

继承自:
  - TilesetLayer#orginMatrix

#### 只读 orginRotation : object
layer/graphicLayer/TilesetLayer.js 232

原始的旋转角度，示例：{ x: 0, y: 0, z: 0 }

继承自:
  - TilesetLayer#orginRotation

#### 只读 planClip : TilesetPlanClip
layer/graphicLayer/TilesetLayer.js 663

模型裁剪 对象

继承自:
  - TilesetLayer#planClip

#### 只读 position : Cesium.Cartesian3
layer/graphicLayer/TilesetLayer.js 413

模型当前中心点坐标 （笛卡尔坐标）

继承自:
  - TilesetLayer#position

#### rotation : object
layer/graphicLayer/TilesetLayer.js 501

旋转方向，示例：{ x: 0, y: 0, z: 0 }

继承自:
  - TilesetLayer#rotation

#### rotation_x : number
layer/graphicLayer/TilesetLayer.js 517

X轴上的旋转方向

继承自:
  - TilesetLayer#rotation_x

#### rotation_y : number
layer/graphicLayer/TilesetLayer.js 534

Y轴上的旋转方向

继承自:
  - TilesetLayer#rotation_y

#### rotation_z : number
layer/graphicLayer/TilesetLayer.js 551

Z轴上的旋转方向

继承自:
  - TilesetLayer#rotation_z

#### scale : number
layer/graphicLayer/TilesetLayer.js 581

缩放比例

继承自:
  - TilesetLayer#scale

#### scaleX : number
layer/graphicLayer/TilesetLayer.js 594

单独自定义缩放X轴方向比例

继承自:
  - TilesetLayer#scaleX

#### scaleY : number
layer/graphicLayer/TilesetLayer.js 607

单独自定义缩放Y轴方向比例

继承自:
  - TilesetLayer#scaleY

#### scaleZ : number
layer/graphicLayer/TilesetLayer.js 620

单独自定义缩放Z轴方向比例

继承自:
  - TilesetLayer#scaleZ

#### splitDirection : Cesium.SplitDirection
layer/graphicLayer/TilesetLayer.js 378

卷帘对比时，设置所在的屏幕，NONE时不分屏

继承自:
  - TilesetLayer#splitDirection

#### style : object|Cesium.Cesium3DTileStyle|function
layer/graphicLayer/TilesetLayer.js 328

模型样式， 使用3D Tiles Styling language.

继承自:
  - TilesetLayer#style

#### 只读 tileset : Cesium.Cesium3DTileset
layer/graphicLayer/TilesetLayer.js 249

模型对应的 Cesium3DTileset对象

继承自:
  - TilesetLayer#tileset

#### 只读 transform : boolean
layer/graphicLayer/TilesetLayer.js 1118

是否存在世界矩阵

继承自:
  - TilesetLayer#transform

### 方法

#### bindPopup(content, options) → TilesetLayer
layer/graphicLayer/TilesetLayer.js 1691

绑定鼠标单击对象后的弹窗。

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | string | Array | function | 弹窗内容html字符串，或者回调方法。
`options` | Popup.StyleOptions | 可选 控制参数

##### 返回值:

当前对象本身，可以链式调用

继承自:
  - TilesetLayer#bindPopup

#### clampToGround(addHeight) → void
layer/graphicLayer/TilesetLayer.js 1239

模型自动贴地计算及处理, 因为模型在设计或生产时，模型的视角中心位置不一定在0,0,0点，此方法不是唯一准确的。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`addHeight` | number | `1` | 可选 计算完成的贴地高度基础上增加的高度值。

##### 返回值:

无

继承自:
  - TilesetLayer#clampToGround

#### closeHighlight() → void
layer/graphicLayer/TilesetLayer.js 1641

清除已选中的高亮，原有style的配置项需要与highlightStyle配置有一一对应关系，否则无法清除

##### 返回值:

无

继承自:
  - TilesetLayer#closeHighlight

#### closePopup() → BaseGraphicLayer
layer/graphicLayer/TilesetLayer.js 1716

关闭弹窗

##### 返回值:

当前对象本身，可以链式调用

继承自:
  - TilesetLayer#closePopup

#### getHeight(position) → number
layer/graphicLayer/TilesetLayer.js 1227

获取贴当前模型高度值。 PS: 该方法将只考虑已加载的LOD数据，而不一定是LOD集中最详细的最底层数据。 当采样点云时，此函数将始终返回undefined。

参数名称 | 类型 | 描述信息
--- | --- | ---
`position` | string | Array | LngLatPoint | Cesium.Cartesian3 | * | 坐标位置

##### 返回值:

贴模型的高度

继承自:
  - TilesetLayer#getHeight

#### getPositionByOrginMatrix(position) → Cesium.Cartesian3
layer/graphicLayer/TilesetLayer.js 1394

获取构件节点位置，现对于原始矩阵变化后的新位置

参数名称 | 类型 | 描述信息
--- | --- | ---
`position` | Cesium.Cartesian3 | 原始位置

##### 返回值:

新位置

继承自:
  - TilesetLayer#getPositionByOrginMatrix

#### hasPopup() → boolean
layer/graphicLayer/TilesetLayer.js 1676

是否存在Popup绑定

##### 返回值:

是否存在Popup绑定

继承自:
  - TilesetLayer#hasPopup

#### openHighlight(highlightStyle, closeLast, pickedObject) → void
layer/graphicLayer/TilesetLayer.js 1583

高亮对象。 提示：该方法不支持 outlineEffect: true 高亮，因为outlineEffect需要鼠标拾取构件。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`highlightStyle` | object |  | 可选 高亮的样式，具体见各`GraphicType`矢量数据的style参数。
`closeLast` | boolean | `true` | 可选 是否清除地图上上一次的高亮对象
`pickedObject` | Cesium.Cesium3DTileFeature |  | 可选 需要高亮的构件, 如果是mars3d的相关事件内时，可以取 event.pickedObject

##### 返回值:

无

继承自:
  - TilesetLayer#openHighlight

#### reload() → void
layer/graphicLayer/TilesetLayer.js 976

重新加载模型

##### 返回值:

继承自:
  - TilesetLayer#reload

#### setOpacity(value) → void
layer/graphicLayer/TilesetLayer.js 1408

设置透明度

参数名称 | 类型 | 描述信息
--- | --- | ---
`value` | number | 透明度

##### 返回值:

无

继承自:
  - TilesetLayer#setOpacity

#### startEditing() → void
layer/graphicLayer/TilesetLayer.js 1777

开始编辑对象

##### 返回值:

无

继承自:
  - TilesetLayer#startEditing

#### stopEditing() → void
layer/graphicLayer/TilesetLayer.js 1803

停止编辑，释放正在编辑的对象。

##### 返回值:

无

继承自:
  - TilesetLayer#stopEditing

#### unbindPopup() → BaseGraphicLayer
layer/graphicLayer/TilesetLayer.js 1705

解除绑定的鼠标单击对象后的弹窗。

##### 返回值:

当前对象本身，可以链式调用

继承自:
  - TilesetLayer#unbindPopup

#### updateMatrix() → Cesium.Matrix4|undefined
layer/graphicLayer/TilesetLayer.js 1281

重新计算当前矩阵（需要是否存在世界矩阵时）

##### 返回值:

计算完成的矩阵

继承自:
  - TilesetLayer#updateMatrix

#### updateMatrix2() → Cesium.Matrix4
layer/graphicLayer/TilesetLayer.js 1371

重新计算当前矩阵，普通方式, 此种方式[x，y不能多次更改]

##### 返回值:

计算完成的矩阵

继承自:
  - TilesetLayer#updateMatrix2