new Earth(divname, earthOptionsopt)
Parameters:
Name | Type | Attributes | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
divname |
string | 绘制地球的divElement的名称。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
earthOptions |
object |
<optional> |
创建地球的初始选项。 Properties
|
Examples
<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>
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.Vector3Example
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
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
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
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的联络点,
未定义
如果不与项目联系
- 与任何AltizureProjectMarker的联络点,
-
unfreeze() → {bool}
-
解冻地球轨道控制。
Returns:
bool