terriajs
Version:
Geospatial data visualization platform.
69 lines • 2.9 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3";
import Cartographic from "terriajs-cesium/Source/Core/Cartographic";
import CesiumMath from "terriajs-cesium/Source/Core/Math";
import updateModelFromJson from "../../Models/Definition/updateModelFromJson";
import primitiveTrait from "../Decorators/primitiveTrait";
import ModelTraits from "../ModelTraits";
const cartoScratch = new Cartographic();
export default class LatLonHeightTraits extends ModelTraits {
latitude;
longitude;
height;
static setFromCartesian(model, stratumName, position) {
const cartographic = Cartographic.fromCartesian(position, undefined, cartoScratch);
const latitude = CesiumMath.toDegrees(cartographic.latitude);
const longitude = CesiumMath.toDegrees(cartographic.longitude);
const height = cartographic.height;
return updateModelFromJson(model, stratumName, {
latitude,
longitude,
height
});
}
static toCartographic(model, result) {
const { longitude, latitude, height } = model;
if (longitude === undefined ||
latitude === undefined ||
height === undefined) {
return undefined;
}
return Cartographic.fromDegrees(longitude, latitude, height, result ?? new Cartographic());
}
static toCartesian(model, result) {
const { longitude, latitude, height } = model;
if (longitude === undefined ||
latitude === undefined ||
height === undefined) {
return;
}
return Cartesian3.fromDegrees(longitude, latitude, height, undefined, result ?? new Cartesian3());
}
}
__decorate([
primitiveTrait({
type: "number",
name: "Latitude",
description: "Latitude in degrees"
})
], LatLonHeightTraits.prototype, "latitude", void 0);
__decorate([
primitiveTrait({
type: "number",
name: "Longitude",
description: "Longitude in degrees"
})
], LatLonHeightTraits.prototype, "longitude", void 0);
__decorate([
primitiveTrait({
type: "number",
name: "Height",
description: "Height above ellipsoid in metres"
})
], LatLonHeightTraits.prototype, "height", void 0);
//# sourceMappingURL=LatLonHeightTraits.js.map