new Sandbox(divname, sandboxOptions)
Creates an instance of Sandbox.
Parameters:
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
divname |
string | div element's name which contains the canvas |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sandboxOptions |
object | options for initialization Properties
|
Extends
Members
-
static, readonly mat
-
get the matrix's element in current pose
-
static pose
-
set the pose of the camera
-
static range
-
set the range of the tilt and alt
-
readonly camera
-
Camera interface.
camera.pose (setter and getter) set or get the pose. pose: {lng, lat, alt, north, tilt}
camera.range (setter) set the range for tilt and alt. camera.range = {tilt: {max: ..., min: ...}, alt: {max: ..., min: ...}}
camera.flyTo(p, duration = 2500), p is the pose, duration is fly time in ms. returns a promise which resolves when fly ends.
camera.stop(), stop flying
camera.lookAt(marker, north, tilt, alt, duration = 3000), marker is arbitrary marker, north is the pose north, tile is the pose tilt, alt is the alt over marker, duration is the fly time duration.
or
camera.lookAt(marker, pose, duration = 3000), pose is an object with three keys, north, tilt and alt. example of pose: {north: 40, tilt, 30, alt: undefined} the method will fly to the pose and returns a promise resolve when fly ends.
camera.matToPose(mat), mat is the matrix element. returns the corresonding pose: {lng, lat, alt, north, tilt}
camera.mat (getter) get the matrix element in current pose: number[]
camera.flyToMat(mat, duration = 3000), mat is the matrix element, duration is fly time in ms. returns a promise which resolves when fly ends.
camera.flyToCamToEarth(mat, duration = 2500), mat is the matrix element, duration is fly time in ms. returns a promise which resolves when fly ends.
-
readonly control
-
The control.
-
readonly domElement
-
The dom element of the renderer
- Inherited From:
-
enableDolly
-
Enable earth dolly.
- Inherited From:
-
readonly height
-
The height of the Canvas.
-
readonly interaction
-
The mouse interaction.
-
readonly JSON
-
A json object descriptions of the current scene
-
readonly renderer
-
Threejs WebGLRenderer.
- Inherited From:
-
readonly scene
-
threejs scene
- Inherited From:
-
readonly sceneRoot
-
The scene root of the earth (earth space)
- Inherited From:
-
readonly viewerCamera
-
Threejs camera.
- Inherited From:
-
visibilityCamera
-
Set the camera for visibility render.
Example
bind a spot light to a CameraMarker
sandbox.visibilityCamera = cameraMarker -
readonly width
-
The width of the Canvas.
-
readonly window
-
Screen space operations.
window.toLngLatAlt({x, y}) returns LngLatAlt
window.fromLngLatAlt({lng, lat, alt}) returns {x, y}
window.screenshot() returns {width: number, height: number, data: number[], values are integers from 0 to 255}
Methods
-
static flyTo(p, duration) → {Promise}
-
flying from current pose to input pose. the process would cost duration(ms)
Parameters:
Name Type Description pobject {lng, lat, alt, north, tilt}
durationnumber fly time in ms
Returns:
Promise -
static flyToCamToEarth(mat, ms) → {promise}
-
flying to the pose represented by the matrix element
Parameters:
Name Type Description matArray.<number> matrix elements
msnumber fly time in milliseconds
Returns:
promise -- resolves when flight ends
-
static flyToMat(mat, ms) → {promise}
-
flying to the pose represented by the matrix element
Parameters:
Name Type Description matArray.<number> matrix elements
msnumber fly time in milliseconds
Returns:
promise -- resolves when flight ends
-
static fromLngLatAlt() → {object}
-
get screen space x, y from LngLatAlt point
Parameters:
Type Description LngLatAlt Returns:
object -- {x, y}
-
static lookAt(marker, north, tile, alt, pose, duration) → {Promise}
-
look at the marker. the camera will fly to appropriate position to look at it with specified north and tilt.
Parameters:
Name Type Description markerMarker arbitrary marker
the pose can be input by each attributes
northnumber the north of the pose
tilenumber the tilt of the pose
altnumber the alt over the marker the pose may also be input as object
poseobject {north, tilt, alt}
durationnumber fly time duration
Returns:
Promise -
static matToPose(camToEarth) → {object}
-
convert a matrix's element to camera pose
Parameters:
Name Type Description camToEarthMatrix4 camera to earth space
Returns:
object -- {lng, lat, alt, up, north, tilt}
-
static screenshot() → {object}
-
get a screenshot
Parameters:
Type Description object {width: required width, height: required height}
Returns:
object -- {width: number, height: number, data: number[], values are integers from 0 to 255}
-
static stop() → {Promise}
-
stop the flying process
Returns:
Promise -
static toLngLatAlt() → {LngLatAlt}
-
get LngLatAlt by a screen-space point (x, y)
Parameters:
Type Description object {x, y}
Returns:
LngLatAlt -
add(type, data, options) → {promsie}
-
add an GL element to the scene
Parameters:
Name Type Description typestring type of element: 'AltizureProjectMarker', 'OBJMarker'
dataobject the content
optionsobject options to create the marker
Returns:
promsie -
calculateDistanceBetweenTwoPoints(first, second) → {number}
-
Calculate distance in meters between two LngLatAlt points
Parameters:
Name Type Description firstLngLatAlt first point
secondLngLatAlt second point
Returns:
number -- distance between two points in meters
- Inherited From:
-
destruct()
-
Destructor
- Overrides:
-
earthToScene() → {Matrix4}
-
From (abstract) earth space to scene root.
Returns:
Matrix4- Inherited From:
-
freeze() → {bool}
-
Freeze earth orbit control. (orbit, swirl, dolly)
Returns:
bool- Inherited From:
-
generateMask(boundaryPtns, altRange, markerArray, bufferMaxSizeopt) → {Object}
-
generate a snapshot with given markers and use the color as their ids in the snapshot
Parameters:
Name Type Attributes Default Description boundaryPtnsArray Array of lngLatAlt form points
altRangeObject altitude range in meters. e.g. {min: 0, max: 40}
markerArrayArray Array of markers
bufferMaxSizeNumber <optional>
512 the length of the returned buffer's larger side
Returns:
Object -- { mask: { buffer: UintArray8, resolution: Numeric, resolutionwidth: width of a resolution area, resolutionheight: height of a resolution area, dimension: buffer dimension {width, height}, bbox: bounding box lngLatAlt form }, mapping: { some color ids: some markers } }
- Inherited From:
-
lngLatAlt2XYZ(LngLatAlt) → {THREE.Vector3}
-
convert LngLatAlt to THREE.Vector3 in earth coordinate space
Parameters:
Name Type Description LngLatAltaltizure.LngLatAlt Returns:
THREE.Vector3- Inherited From:
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 -
login()
-
Set the user info for logged-in users
-
markerSnapshot(boundaryPtns, altRange, renderObjects, returnDepthopt, bufferMaxSizeopt) → {Object}
-
Take a snapshot of a bounded area with specified objects to render
Parameters:
Name Type Attributes Default Description boundaryPtnsArray Array of lngLatAlt form points
altRangeObject altitude range in meters. e.g. {min: 0, max: 40}
renderObjectsArray Array of objects to render
returnDepthBool <optional>
false wether the result is depth buffer or not
bufferMaxSizeNumber <optional>
512 the length of the returned buffer's larger side
Returns:
Object -- { buffer: UintArray8, resolution: Numeric, resolutionwidth: width of a resolution area, resolutionheight: height of a resolution area, dimension: buffer dimension {width, height}, bbox: bounding box lngLatAlt form }
- Inherited From:
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 representsTake 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 -
off(eventType, handler)
-
un-register events.
Parameters:
Name Type Description eventTypestring 'cameraChange'
handlerfunction -
on(eventType, handler)
-
Event registration.
Parameters:
Name Type Description eventTypestring 'cameraChange'
handlerfunction event handler function
-
pick(event) → {LngLatAlt}
-
Pick the point on earth at a specified mouse event position.
Parameters:
Name Type Description eventMouseEvent mouse/touch event
Returns:
LngLatAlt -- contact point with earth
- Inherited From:
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}
-
Pick the point on altizure models.
Parameters:
Name Type Description eventMouseEvent mouse/touch event
Returns:
LngLatAlt -- contact point with any AltizureProjectMarker,
undefinedif not contact with projects
- Inherited From:
- contact point with any AltizureProjectMarker,
-
polygonsFromGeoJson(geojson, polygonOptions) → {Array.<PolygonMarker>}
-
construct a list of PolygonMarker using GeoJson
Parameters:
Name Type Description geojsonobject polygonOptionsobject default {top: 4, bottom: 0.1, color: 0x0000ff, opacity: 0.3}
Returns:
Array.<PolygonMarker> -
positionsAltitude(positions, projMarkerList) → {array}
-
Calculate the altitudes of a list of positions.
Parameters:
Name Type Description positionsarray Array of LngLatAlt positions or positions in {lng, lat} form.
projMarkerListarray Array of altizure project markers. Used to reduce the load of this function.
Returns:
array -- altitudes of each positions
-
queryGeoJsonForAltizureProjectMarker(altizureProjectMarker) → {Promise}
-
query for GeoJson (building) for an AltizureProjectMarker
Parameters:
Name Type Description altizureProjectMarkerAltizureProjectMarker Returns:
Promise -
render(marker, mode)
-
Change the rendering mode of an (altizureProject) marker.
Parameters:
Name Type Description markerAltizureProjectMarker modestring 'texture' = 0, 'flat', 'wireframe', 'select' , 'crop', 'visibility', 'transparent', 'phong'
-
unfreeze() → {bool}
-
Unfreeze earth orbit control.
Returns:
bool- Inherited From:
-
updateVisibility()
-
Update the screen visibility. Usually called after camera is changed.