Earth(divname, earthOptionsopt)

在指定的divElement中创建一个地球。

new Earth(divname, earthOptionsopt)

Parameters:
Name Type Attributes Description
divname string

绘制地球的divElement的名称。

earthOptions object <optional>

创建地球的初始选项。

Properties
Name Type Attributes Default Description
altlonglat object <optional>

相机的位置。

Properties
Name Type Attributes Description
longitude number <optional>

在程度上

latitude number <optional>

在程度上

altitude number <optional>

米以上的地面

orientation object <optional>

相机的方向。

Properties
Name Type Attributes Description
northing number <optional>

在程度上

tilt number <optional>

在程度上

renderItems object <optional>

项目(不)被渲染

Properties
Name Type Attributes Default Description
earth bool <optional>
true

渲染地球

featureInView bool <optional>
true

特色项目。默认为true

develop bool <optional>
false

在开发模式。默认为false。

Examples

Create an altizure earth in html.

<html lang="en">
  <head>
  </head>
  <body>
    <div id="page-content"></div>
    <script type="text/javascript" src="../release/altizure-earth-apis.min.js"></script>
    <script>
      let earth = new altizure.Earth('page-content')
    </script>
  </body>
</html>

customize initial camera position

 let options = {
   altlonglat: { longitude: projectInfo.geoInfo.centerLong,
                 latitude: projectInfo.geoInfo.centerLat,
                 altitude: 100},
   orientation: {northing: 6.6, tilt: 60}
 }
 let earth = new altizure.Earth('page-content', options)

Members

readonly domElement

渲染器的dom元素

enableDolly

启用地球小车。

readonly renderer

Threejs WebGLRenderer。

readonly scene

threejs现场

readonly sceneRoot

地球的现场根(地球空间)

readonly viewerCamera

Threejs相机。

Methods

calculateDistanceBetweenTwoPoints(first, second) → {number}

计算两个LngLatAlt点之间的距离(以米为单位)

Parameters:
Name Type Description
first LngLatAlt

第一点

second LngLatAlt

第二点

Returns:
number -
  • 以米为单位的两点之间的距离

destruct() → {bool}

析构函数。

Returns:
bool

earthToScene() → {Matrix4}

从(抽象)地球空间到场景根。

Returns:
Matrix4

freeze() → {bool}

冻结地球轨道控制。 (轨道,漩涡,小车)

Returns:
bool

generateMask(boundaryPtns, altRange, markerArray, bufferMaxSizeopt) → {Object}

使用给定的标记生成快照,并将该颜色用作其快照中的ID

Parameters:
Name Type Attributes Default Description
boundaryPtns Array

数组lngLatAlt形式点

altRange Object

高度范围以米为单位。例如{min:0,max:40}

markerArray Array

标记阵列

bufferMaxSize Number <optional>
512

返回缓冲区的较大边的长度

Returns:
Object -
  • { 掩码:{ 缓冲区:UintArray8, 分辨率:数字, 分辨率宽度:分辨率区域的宽度, resolutionheight:分辨率区域的高度, 尺寸:缓冲区尺寸{宽度,高度}, bbox:边界框lngLatAlt形式 }, 映射:{  一些颜色标识:一些标记 } }

lngLatAlt2XYZ(LngLatAlt) → {THREE.Vector3}

将地球坐标空间中的LngLatAlt转换为THREE.Vector3

Parameters:
Name Type Description
LngLatAlt altizure.LngLatAlt
Returns:
THREE.Vector3
Example

convert LngLatAlt to THREE.Vector3

 let lngLatAlt = {lng: 113.93977612840078, lat: 22.5364271949327, alt: 12.3}
 let vector3 = sandbox.lngLatAlt2XYZ(lngLatAlt)
 // vector3 is in THREE.Vector3 form

markerSnapshot(boundaryPtns, altRange, renderObjects, returnDepthopt, bufferMaxSizeopt) → {Object}

拍摄指定对象进行渲染的有界区域的快照

Parameters:
Name Type Attributes Default Description
boundaryPtns Array

数组lngLatAlt形式点

altRange Object

高度范围以米为单位。例如{min:0,max:40}

renderObjects Array

要呈现的对象数组

returnDepth Bool <optional>
false

其结果是深度缓冲或不

bufferMaxSize Number <optional>
512

返回缓冲区的较大边的长度

Returns:
Object -
  • { 缓冲区:UintArray8, 分辨率:数字, 分辨率宽度:分辨率区域的宽度, resolutionheight:分辨率区域的高度, 尺寸:缓冲区尺寸{宽度,高度}, bbox:边界框lngLatAlt形式 }
Examples

Take a colorful snapshot

 let boundaryPtns = [
   {lng: 113.939, lat: 22.536},
   {lng: 113.9391, lat: 22.5361},
   // more points to specify the boundary
   ...
 ]
 // take a colorful (RGB snapshot)
 let RGBSnapshot = sandbox.markerSnapshot(
   boundaryPtns, // boundary
   {min: 0, max: 40}, // altitude range
   [polygonMarker.contentHolder, altizureProjectMarker.contentHolder]
   // here a polygonMarker and an altizureProjectMarker are rendered
 )
 // RGBSnapshot.dimension: {width: width of the snapshot, height: height of the snapshot}
 // RGBSnapshot.buffer: UintArray8 with size 4 * dimension.width * dimension.height
 // RGBSnapshot.bbox: the bounding box of the snapshoted area
 // RGBSnapshot.resolution: area that each pixel represents
 // RGBSnapshot.resolutionwidth: width of area that each pixel represents
 // RGBSnapshot.resolutionheight: height of area that each pixel represents

Take a depth snapshot

 let boundaryPtns = [
   {lng: 113.939, lat: 22.536},
   {lng: 113.9391, lat: 22.5361},
   // more points to specify the boundary
   ...
 ]
 // take a depth snapshot
 let depthSnapshot = sandbox.markerSnapshot(
   boundaryPtns, //boundary
   {min: 0, max 40}, // altitude range
   [altizureProjectMarker.contentHolder],
   // here an altizureProjectMarker is rendered
   true // so that this will returns a depth snapshot
 )
 // depthSnapshot.dimension: {width: width of the snapshot, height: height of the snapshot}
 // depthSnapshot.buffer: UintArray8 with size dimension.width * dimension.height. Higher place should be darker (smaller values)
 // depthSnapshot.bbox: the bounding box of the snapshoted area
 // depthSnapshot.resolution: area that each pixel represents
 // RGBSnapshot.resolutionwidth: width of area that each pixel represents
 // RGBSnapshot.resolutionheight: height of area that each pixel represents

pick(event) → {LngLatAlt}

在指定的鼠标事件位置选取地球上的点。

Parameters:
Name Type Description
event MouseEvent

鼠标/触摸事件

Returns:
LngLatAlt -
  • 与地球的接触点
Example

pick earth point by mouse

let earth = new altizure.Earth('page-content', options)
let domElement = earth.domElement
domElement.addEventListener('mousedown', function (event) {
  if (event.button === 0) { // left button
    let pt = earth.pick(event)
    console.log('earth.pick', pt)
  }
}, false)

pickOnProjects(event) → {LngLatAlt}

选择altizure模型上的点。

Parameters:
Name Type Description
event MouseEvent

鼠标/触摸事件

Returns:
LngLatAlt -
  • 与任何AltizureProjectMarker的联络点,未定义 如果不与项目联系

unfreeze() → {bool}

解冻地球轨道控制。

Returns:
bool