itowns 2.42.1-next.14 → 2.42.1-next.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/debug.js +1 -1
- package/dist/debug.js.map +1 -1
- package/dist/itowns.js +1 -1
- package/dist/itowns.js.map +1 -1
- package/dist/itowns_widgets.js +1 -1
- package/dist/itowns_widgets.js.map +1 -1
- package/examples/{.eslintrc.js → .eslintrc.cjs} +1 -1
- package/lib/Controls/FirstPersonControls.js +5 -12
- package/lib/Controls/FlyControls.js +4 -13
- package/lib/Controls/GlobeControls.js +33 -43
- package/lib/Controls/PlanarControls.js +9 -20
- package/lib/Controls/StateControl.js +2 -11
- package/lib/Controls/StreetControls.js +14 -24
- package/lib/Converter/Feature2Mesh.js +28 -38
- package/lib/Converter/Feature2Texture.js +15 -25
- package/lib/Converter/convertToTile.js +13 -24
- package/lib/Converter/textureConverter.js +9 -19
- package/lib/Core/3DTiles/C3DTBatchTable.js +5 -13
- package/lib/Core/3DTiles/C3DTBatchTableHierarchyExtension.js +1 -8
- package/lib/Core/3DTiles/C3DTBoundingVolume.js +17 -27
- package/lib/Core/3DTiles/C3DTExtensions.js +1 -8
- package/lib/Core/3DTiles/C3DTFeature.js +3 -10
- package/lib/Core/3DTiles/C3DTilesEnums.js +3 -11
- package/lib/Core/3DTiles/C3DTileset.js +7 -16
- package/lib/Core/3DTiles/utils/BinaryPropertyAccessor.js +5 -11
- package/lib/Core/AnimationPlayer.js +2 -11
- package/lib/Core/Deprecated/Undeprecator.js +8 -19
- package/lib/Core/EntwinePointTileNode.js +6 -16
- package/lib/Core/Feature.js +16 -30
- package/lib/Core/Geographic/CoordStars.js +3 -12
- package/lib/Core/Geographic/Coordinates.js +12 -22
- package/lib/Core/Geographic/Crs.js +7 -15
- package/lib/Core/Geographic/Extent.js +36 -47
- package/lib/Core/Geographic/GeoidGrid.js +6 -16
- package/lib/Core/Label.js +7 -17
- package/lib/Core/MainLoop.js +7 -16
- package/lib/Core/Math/Ellipsoid.js +6 -17
- package/lib/Core/Picking.js +10 -20
- package/lib/Core/PointCloudNode.js +2 -11
- package/lib/Core/PotreeNode.js +4 -13
- package/lib/Core/Prefab/Globe/Atmosphere.js +17 -26
- package/lib/Core/Prefab/Globe/BuilderEllipsoidTile.js +6 -16
- package/lib/Core/Prefab/Globe/GlobeLayer.js +19 -28
- package/lib/Core/Prefab/Globe/SkyShader.js +2 -11
- package/lib/Core/Prefab/GlobeView.js +27 -37
- package/lib/Core/Prefab/Planar/PlanarLayer.js +11 -20
- package/lib/Core/Prefab/Planar/PlanarTileBuilder.js +6 -16
- package/lib/Core/Prefab/PlanarView.js +10 -20
- package/lib/Core/Prefab/TileBuilder.js +10 -19
- package/lib/Core/Prefab/computeBufferTileGeometry.js +3 -12
- package/lib/Core/Scheduler/Cache.js +2 -10
- package/lib/Core/Scheduler/CancelledCommandException.js +1 -8
- package/lib/Core/Scheduler/Scheduler.js +15 -23
- package/lib/Core/Style.js +21 -34
- package/lib/Core/System/Capabilities.js +2 -9
- package/lib/Core/TileGeometry.js +5 -14
- package/lib/Core/TileMesh.js +6 -15
- package/lib/Core/View.js +43 -53
- package/lib/Layer/C3DTilesLayer.js +25 -37
- package/lib/Layer/ColorLayer.js +10 -16
- package/lib/Layer/ElevationLayer.js +7 -14
- package/lib/Layer/EntwinePointTileLayer.js +8 -18
- package/lib/Layer/FeatureGeometryLayer.js +9 -16
- package/lib/Layer/GeoidLayer.js +6 -15
- package/lib/Layer/GeometryLayer.js +11 -17
- package/lib/Layer/InfoLayer.js +5 -14
- package/lib/Layer/LabelLayer.js +22 -32
- package/lib/Layer/Layer.js +16 -26
- package/lib/Layer/LayerUpdateState.js +1 -8
- package/lib/Layer/LayerUpdateStrategy.js +7 -18
- package/lib/Layer/OrientedImageLayer.js +15 -25
- package/lib/Layer/PointCloudLayer.js +9 -19
- package/lib/Layer/PotreeLayer.js +8 -18
- package/lib/Layer/RasterLayer.js +9 -17
- package/lib/Layer/ReferencingLayerProperties.js +1 -8
- package/lib/Layer/TiledGeometryLayer.js +21 -31
- package/lib/Main.js +86 -720
- package/lib/MainBundle.js +4 -34
- package/lib/Parser/B3dmParser.js +20 -28
- package/lib/Parser/CameraCalibrationParser.js +5 -14
- package/lib/Parser/GDFParser.js +11 -22
- package/lib/Parser/GLTFParser.js +13 -28
- package/lib/Parser/GTXParser.js +9 -21
- package/lib/Parser/GeoJsonParser.js +14 -22
- package/lib/Parser/GpxParser.js +7 -14
- package/lib/Parser/ISGParser.js +19 -28
- package/lib/Parser/KMLParser.js +7 -14
- package/lib/Parser/LASLoader.js +11 -16
- package/lib/Parser/LASParser.js +5 -15
- package/lib/Parser/MapBoxUrlParser.js +2 -9
- package/lib/Parser/PntsParser.js +4 -14
- package/lib/Parser/PotreeBinParser.js +3 -11
- package/lib/Parser/PotreeCinParser.js +3 -12
- package/lib/Parser/ShapefileParser.js +11 -18
- package/lib/Parser/VectorTileParser.js +23 -31
- package/lib/Parser/XbilParser.js +5 -13
- package/lib/Parser/deprecated/LegacyGLTFLoader.js +2 -12
- package/lib/Process/3dTilesProcessing.js +14 -27
- package/lib/Process/FeatureProcessing.js +14 -22
- package/lib/Process/LayeredMaterialNodeProcessing.js +14 -26
- package/lib/Process/ObjectRemovalHelper.js +2 -9
- package/lib/Process/handlerNodeError.js +1 -7
- package/lib/Provider/3dTilesProvider.js +16 -27
- package/lib/Provider/DataSourceProvider.js +2 -9
- package/lib/Provider/Fetcher.js +37 -13
- package/lib/Provider/PointCloudProvider.js +5 -15
- package/lib/Provider/TileProvider.js +4 -12
- package/lib/Provider/URLBuilder.js +4 -12
- package/lib/Renderer/Camera.js +7 -17
- package/lib/Renderer/Color.js +3 -11
- package/lib/Renderer/ColorLayersOrdering.js +14 -22
- package/lib/Renderer/CommonMaterial.js +3 -12
- package/lib/Renderer/Label2DRenderer.js +5 -16
- package/lib/Renderer/LayeredMaterial.js +27 -41
- package/lib/Renderer/OBB.js +10 -19
- package/lib/Renderer/OrientedImageCamera.js +2 -11
- package/lib/Renderer/OrientedImageMaterial.js +7 -17
- package/lib/Renderer/PointsMaterial.js +34 -48
- package/lib/Renderer/RasterTile.js +16 -29
- package/lib/Renderer/RenderMode.js +2 -9
- package/lib/Renderer/Shader/ShaderChunk.js +2 -11
- package/lib/Renderer/Shader/ShaderUtils.js +2 -9
- package/lib/Renderer/SphereHelper.js +2 -11
- package/lib/Renderer/WebXR.js +2 -11
- package/lib/Renderer/c3DEngine.js +18 -28
- package/lib/Source/C3DTilesGoogleSource.js +5 -13
- package/lib/Source/C3DTilesIonSource.js +6 -13
- package/lib/Source/C3DTilesSource.js +5 -12
- package/lib/Source/EntwinePointTileSource.js +12 -19
- package/lib/Source/FileSource.js +7 -14
- package/lib/Source/OrientedImageSource.js +6 -14
- package/lib/Source/PotreeSource.js +9 -16
- package/lib/Source/Source.js +26 -39
- package/lib/Source/TMSSource.js +11 -22
- package/lib/Source/VectorTilesSource.js +75 -34
- package/lib/Source/WFSSource.js +7 -14
- package/lib/Source/WMSSource.js +5 -12
- package/lib/Source/WMTSSource.js +3 -10
- package/lib/ThreeExtended/capabilities/WebGL.js +1 -8
- package/lib/ThreeExtended/libs/ktx-parse.module.js +2 -256
- package/lib/ThreeExtended/libs/zstddec.module.js +2 -8
- package/lib/ThreeExtended/loaders/DDSLoader.js +10 -16
- package/lib/ThreeExtended/loaders/DRACOLoader.js +14 -19
- package/lib/ThreeExtended/loaders/GLTFLoader.js +124 -129
- package/lib/ThreeExtended/loaders/KTX2Loader.js +73 -78
- package/lib/ThreeExtended/utils/BufferGeometryUtils.js +40 -59
- package/lib/ThreeExtended/utils/WorkerPool.js +2 -9
- package/lib/Utils/CameraUtils.js +32 -44
- package/lib/Utils/DEMUtils.js +8 -19
- package/lib/Utils/FeaturesUtils.js +8 -16
- package/lib/Utils/Gradients.js +3 -12
- package/lib/Utils/OrientationUtils.js +8 -18
- package/lib/Utils/ThreeUtils.js +2 -9
- package/lib/Utils/gui/C3DTilesStyle.js +7 -15
- package/lib/Utils/gui/Main.js +7 -48
- package/lib/Utils/gui/Minimap.js +12 -20
- package/lib/Utils/gui/Navigation.js +6 -14
- package/lib/Utils/gui/Scale.js +11 -19
- package/lib/Utils/gui/Searchbar.js +5 -13
- package/lib/Utils/gui/Widget.js +1 -8
- package/lib/Utils/placeObjectOnGround.js +13 -23
- package/package.json +10 -7
package/lib/MainBundle.js
CHANGED
|
@@ -1,34 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
var _exportNames = {
|
|
8
|
-
THREE: true,
|
|
9
|
-
proj4: true
|
|
10
|
-
};
|
|
11
|
-
exports.THREE = void 0;
|
|
12
|
-
Object.defineProperty(exports, "proj4", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _proj.default;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
19
|
-
exports.THREE = THREE;
|
|
20
|
-
var _proj = _interopRequireDefault(require("proj4"));
|
|
21
|
-
var _Main = require("./Main.js");
|
|
22
|
-
Object.keys(_Main).forEach(function (key) {
|
|
23
|
-
if (key === "default" || key === "__esModule") return;
|
|
24
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
25
|
-
if (key in exports && exports[key] === _Main[key]) return;
|
|
26
|
-
Object.defineProperty(exports, key, {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
get: function () {
|
|
29
|
-
return _Main[key];
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
34
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
export { THREE };
|
|
3
|
+
export { default as proj4 } from 'proj4';
|
|
4
|
+
export * from "./Main.js";
|
package/lib/Parser/B3dmParser.js
CHANGED
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _C3DTBatchTable = _interopRequireDefault(require("../Core/3DTiles/C3DTBatchTable"));
|
|
10
|
-
var _Capabilities = _interopRequireDefault(require("../Core/System/Capabilities"));
|
|
11
|
-
var _ThreeUtils = _interopRequireDefault(require("../Utils/ThreeUtils"));
|
|
12
|
-
var _ShaderUtils = _interopRequireDefault(require("../Renderer/Shader/ShaderUtils"));
|
|
13
|
-
var _ReferencingLayerProperties = _interopRequireDefault(require("../Layer/ReferencingLayerProperties"));
|
|
14
|
-
var _GLTFParser = _interopRequireDefault(require("./GLTFParser"));
|
|
15
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import C3DTBatchTable from "../Core/3DTiles/C3DTBatchTable.js";
|
|
3
|
+
import Capabilities from "../Core/System/Capabilities.js";
|
|
4
|
+
import { MeshBasicMaterial } from 'three';
|
|
5
|
+
import disposeThreeMaterial from "../Utils/ThreeUtils.js";
|
|
6
|
+
import shaderUtils from "../Renderer/Shader/ShaderUtils.js";
|
|
7
|
+
import ReferLayerProperties from "../Layer/ReferencingLayerProperties.js";
|
|
8
|
+
import GLTFParser from "./GLTFParser.js";
|
|
17
9
|
const matrixChangeUpVectorYtoZInv = new THREE.Matrix4().makeRotationX(-Math.PI / 2);
|
|
18
10
|
const matrixChangeUpVectorXtoZ = new THREE.Matrix4().makeRotationZ(-Math.PI / 2);
|
|
19
11
|
const utf8Decoder = new TextDecoder();
|
|
@@ -61,7 +53,8 @@ function applyDeprecatedGltfUpAxis(gltfScene, gltfUpAxis) {
|
|
|
61
53
|
/**
|
|
62
54
|
* @module B3dmParser
|
|
63
55
|
*/
|
|
64
|
-
|
|
56
|
+
|
|
57
|
+
export default {
|
|
65
58
|
/** Parse b3dm buffer and extract THREE.Scene and batch table
|
|
66
59
|
* @param {ArrayBuffer} buffer - the b3dm buffer.
|
|
67
60
|
* @param {Object} options - additional properties.
|
|
@@ -128,9 +121,9 @@ var _default = {
|
|
|
128
121
|
// sizeBegin is an index to the beginning of the batch table
|
|
129
122
|
const sizeBegin = headerByteLength + b3dmHeader.FTJSONLength + b3dmHeader.FTBinaryLength;
|
|
130
123
|
const BTBuffer = buffer.slice(sizeBegin, sizeBegin + b3dmHeader.BTJSONLength + b3dmHeader.BTBinaryLength);
|
|
131
|
-
promises.push(Promise.resolve(new
|
|
124
|
+
promises.push(Promise.resolve(new C3DTBatchTable(BTBuffer, b3dmHeader.BTJSONLength, b3dmHeader.BTBinaryLength, FTJSON.BATCH_LENGTH, options.registeredExtensions)));
|
|
132
125
|
} else {
|
|
133
|
-
promises.push(Promise.resolve(new
|
|
126
|
+
promises.push(Promise.resolve(new C3DTBatchTable()));
|
|
134
127
|
}
|
|
135
128
|
const posGltf = headerByteLength + b3dmHeader.FTJSONLength + b3dmHeader.FTBinaryLength + b3dmHeader.BTJSONLength + b3dmHeader.BTBinaryLength;
|
|
136
129
|
const gltfBuffer = buffer.slice(posGltf);
|
|
@@ -144,22 +137,22 @@ var _default = {
|
|
|
144
137
|
if (typeof options.overrideMaterials === 'object' && options.overrideMaterials.isMaterial) {
|
|
145
138
|
mesh.material = options.overrideMaterials;
|
|
146
139
|
} else {
|
|
147
|
-
mesh.material = new
|
|
140
|
+
mesh.material = new MeshBasicMaterial();
|
|
148
141
|
}
|
|
149
|
-
(
|
|
150
|
-
} else if (
|
|
151
|
-
|
|
142
|
+
disposeThreeMaterial(oldMat);
|
|
143
|
+
} else if (Capabilities.isLogDepthBufferSupported() && mesh.material.isRawShaderMaterial && !options.doNotPatchMaterial) {
|
|
144
|
+
shaderUtils.patchMaterialForLogDepthSupport(mesh.material);
|
|
152
145
|
console.warn('glTF shader has been patched to add log depth buffer support');
|
|
153
146
|
}
|
|
154
|
-
(
|
|
147
|
+
ReferLayerProperties(mesh.material, options.layer);
|
|
155
148
|
}
|
|
156
149
|
};
|
|
157
|
-
promises.push(
|
|
150
|
+
promises.push(GLTFParser.parse(gltfBuffer, options).then(gltf => {
|
|
158
151
|
for (const scene of gltf.scenes) {
|
|
159
152
|
scene.traverse(filterUnsupportedSemantics);
|
|
160
153
|
}
|
|
161
154
|
applyDeprecatedGltfUpAxis(gltf.scene, options.gltfUpAxis);
|
|
162
|
-
const shouldBePatchedForLogDepthSupport =
|
|
155
|
+
const shouldBePatchedForLogDepthSupport = Capabilities.isLogDepthBufferSupported() && !options.doNotPatchMaterial;
|
|
163
156
|
if (options.frustumCulling === false || options.overrideMaterials || shouldBePatchedForLogDepthSupport || options.layer) {
|
|
164
157
|
gltf.scene.traverse(init_mesh);
|
|
165
158
|
}
|
|
@@ -189,5 +182,4 @@ var _default = {
|
|
|
189
182
|
throw new Error('Invalid b3dm file.');
|
|
190
183
|
}
|
|
191
184
|
}
|
|
192
|
-
};
|
|
193
|
-
exports.default = _default;
|
|
185
|
+
};
|
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import OrientedImageCamera from "../Renderer/OrientedImageCamera.js";
|
|
2
3
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
-
var _OrientedImageCamera = _interopRequireDefault(require("../Renderer/OrientedImageCamera"));
|
|
10
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
4
|
/**
|
|
13
5
|
* The CameraCalibrationParser module provide a [parse]{@link module:CameraCalibrationParser.parse}
|
|
14
6
|
* method that takes a JSON array of camera calibrations in and yields an array of {@link OrientedImageCamera}
|
|
@@ -35,7 +27,7 @@ function parseCalibration(calibration) {
|
|
|
35
27
|
// To transform image space to webGl texture. It could inverse Y axis.
|
|
36
28
|
const center = new THREE.Vector2(proj[2], imageYDown ? size.y - proj[5] : proj[5]);
|
|
37
29
|
const skew = proj[1];
|
|
38
|
-
const camera = new
|
|
30
|
+
const camera = new OrientedImageCamera(size, focal, center, options.near, options.far, skew);
|
|
39
31
|
|
|
40
32
|
// parse extrinsics: Object3d.matrix is from local to world
|
|
41
33
|
// p_world = position + transpose(rotation) * p_local
|
|
@@ -66,7 +58,7 @@ function parseCalibration(calibration) {
|
|
|
66
58
|
}
|
|
67
59
|
return deferred;
|
|
68
60
|
}
|
|
69
|
-
|
|
61
|
+
export default {
|
|
70
62
|
/**
|
|
71
63
|
* Description of a camera calibration in a JSON file.
|
|
72
64
|
*
|
|
@@ -99,5 +91,4 @@ var _default = {
|
|
|
99
91
|
}
|
|
100
92
|
return Promise.all(json.map(calibration => parseCalibration(calibration, options)));
|
|
101
93
|
}
|
|
102
|
-
};
|
|
103
|
-
exports.default = _default;
|
|
94
|
+
};
|
package/lib/Parser/GDFParser.js
CHANGED
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
exports.getHeaderAttribute = getHeaderAttribute;
|
|
9
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
10
|
-
var _GeoidGrid = _interopRequireDefault(require("../Core/Geographic/GeoidGrid"));
|
|
11
|
-
var _Extent = _interopRequireDefault(require("../Core/Geographic/Extent"));
|
|
12
|
-
var _GTXParser = require("./GTXParser");
|
|
13
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
-
function getHeaderAttribute(header, attributeName) {
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import GeoidGrid from "../Core/Geographic/GeoidGrid.js";
|
|
3
|
+
import Extent from "../Core/Geographic/Extent.js";
|
|
4
|
+
import { BYTES_PER_DOUBLE } from "./GTXParser.js";
|
|
5
|
+
export function getHeaderAttribute(header, attributeName) {
|
|
16
6
|
const attributeRow = header[header.indexOf(header.find(element => element.includes(attributeName)))].split(' ').filter(value => value !== '');
|
|
17
7
|
return parseFloat(attributeRow[attributeRow.length - 1]);
|
|
18
8
|
}
|
|
@@ -24,7 +14,7 @@ function getHeaderAttribute(header, attributeName) {
|
|
|
24
14
|
*
|
|
25
15
|
* @module GDFParser
|
|
26
16
|
*/
|
|
27
|
-
|
|
17
|
+
export default {
|
|
28
18
|
/**
|
|
29
19
|
* Parses a GDF file content and returns a corresponding `{@link GeoidGrid}`.
|
|
30
20
|
*
|
|
@@ -62,22 +52,21 @@ var _default = {
|
|
|
62
52
|
|
|
63
53
|
// ---------- BUILD A DATA VIEWER FROM THE TEXT DATA : ----------
|
|
64
54
|
|
|
65
|
-
const data = new DataView(new ArrayBuffer(
|
|
55
|
+
const data = new DataView(new ArrayBuffer(BYTES_PER_DOUBLE * metadata.nRows * metadata.nColumns));
|
|
66
56
|
let index = 0;
|
|
67
57
|
for (let row of rows.slice(firstMeasureLine, rows.length)) {
|
|
68
58
|
row = row.split(' ').filter(value => value !== '');
|
|
69
59
|
if (!row.length) {
|
|
70
60
|
continue;
|
|
71
61
|
}
|
|
72
|
-
data.setFloat64(index *
|
|
62
|
+
data.setFloat64(index * BYTES_PER_DOUBLE, parseFloat(row[2]));
|
|
73
63
|
index++;
|
|
74
64
|
}
|
|
75
65
|
|
|
76
66
|
// ---------- CREATE A GeoidGrid FOR THE GIVEN FILE DATA : ----------
|
|
77
67
|
|
|
78
|
-
const dataExtent = new
|
|
68
|
+
const dataExtent = new Extent(options.in.crs || 'EPSG:4326', metadata.minX, metadata.maxX, metadata.minY, metadata.maxY);
|
|
79
69
|
const dataStep = new THREE.Vector2(metadata.stepX, metadata.stepY);
|
|
80
|
-
return Promise.resolve(new
|
|
70
|
+
return Promise.resolve(new GeoidGrid(dataExtent, dataStep, (verticalIndex, horizontalIndex) => data.getFloat64((metadata.nColumns * (metadata.nRows - verticalIndex - 1) + horizontalIndex) * BYTES_PER_DOUBLE)));
|
|
81
71
|
}
|
|
82
|
-
};
|
|
83
|
-
exports.default = _default;
|
|
72
|
+
};
|
package/lib/Parser/GLTFParser.js
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
exports.enableDracoLoader = enableDracoLoader;
|
|
9
|
-
exports.enableKtx2Loader = enableKtx2Loader;
|
|
10
|
-
exports.legacyGLTFLoader = exports.glTFLoader = void 0;
|
|
11
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
12
|
-
var _GLTFLoader = require("../ThreeExtended/loaders/GLTFLoader");
|
|
13
|
-
var _DRACOLoader = require("../ThreeExtended/loaders/DRACOLoader");
|
|
14
|
-
var _KTX2Loader = require("../ThreeExtended/loaders/KTX2Loader");
|
|
15
|
-
var _LegacyGLTFLoader = _interopRequireDefault(require("./deprecated/LegacyGLTFLoader"));
|
|
16
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { GLTFLoader } from "../ThreeExtended/loaders/GLTFLoader.js";
|
|
3
|
+
import { DRACOLoader } from "../ThreeExtended/loaders/DRACOLoader.js";
|
|
4
|
+
import { KTX2Loader } from "../ThreeExtended/loaders/KTX2Loader.js";
|
|
5
|
+
import LegacyGLTFLoader from "./deprecated/LegacyGLTFLoader.js";
|
|
18
6
|
const matrixChangeUpVectorYtoZ = new THREE.Matrix4().makeRotationX(Math.PI / 2);
|
|
19
|
-
const glTFLoader = new
|
|
20
|
-
|
|
21
|
-
const legacyGLTFLoader = new _LegacyGLTFLoader.default();
|
|
7
|
+
export const glTFLoader = new GLTFLoader();
|
|
8
|
+
export const legacyGLTFLoader = new LegacyGLTFLoader();
|
|
22
9
|
|
|
23
10
|
/**
|
|
24
11
|
* @module GLTFParser
|
|
@@ -37,12 +24,11 @@ const legacyGLTFLoader = new _LegacyGLTFLoader.default();
|
|
|
37
24
|
* [setDecoderConfig](https://threejs.org/docs/index.html?q=draco#examples/en/loaders/DRACOLoader.setDecoderConfig) that
|
|
38
25
|
* is called under the hood with this configuration for details.
|
|
39
26
|
*/
|
|
40
|
-
|
|
41
|
-
function enableDracoLoader(path, config) {
|
|
27
|
+
export function enableDracoLoader(path, config) {
|
|
42
28
|
if (!path) {
|
|
43
29
|
throw new Error('Path to draco folder is mandatory');
|
|
44
30
|
}
|
|
45
|
-
const dracoLoader = new
|
|
31
|
+
const dracoLoader = new DRACOLoader();
|
|
46
32
|
dracoLoader.setDecoderPath(path);
|
|
47
33
|
if (config) {
|
|
48
34
|
dracoLoader.setDecoderConfig(config);
|
|
@@ -57,16 +43,16 @@ function enableDracoLoader(path, config) {
|
|
|
57
43
|
* [itowns examples](https://github.com/iTowns/itowns/tree/master/examples/libs/basis).
|
|
58
44
|
* @param {THREE.WebGLRenderer} renderer the threejs renderer
|
|
59
45
|
*/
|
|
60
|
-
function enableKtx2Loader(path, renderer) {
|
|
46
|
+
export function enableKtx2Loader(path, renderer) {
|
|
61
47
|
if (!path || !renderer) {
|
|
62
48
|
throw new Error('Path to ktx2 folder and renderer are mandatory');
|
|
63
49
|
}
|
|
64
|
-
const ktx2Loader = new
|
|
50
|
+
const ktx2Loader = new KTX2Loader();
|
|
65
51
|
ktx2Loader.setTranscoderPath(path);
|
|
66
52
|
ktx2Loader.detectSupport(renderer);
|
|
67
53
|
glTFLoader.setKTX2Loader(ktx2Loader);
|
|
68
54
|
}
|
|
69
|
-
|
|
55
|
+
export default {
|
|
70
56
|
/** Parses a gltf buffer to an object with threejs structures and applies a y-up to z-up conversion to align with
|
|
71
57
|
* itowns convention. Essentially calls THREE.GltfLoader.parse() for glTF 2.0 files and the legacy threejs parser
|
|
72
58
|
* for gtTF 1.0 files.
|
|
@@ -99,5 +85,4 @@ var _default = {
|
|
|
99
85
|
}
|
|
100
86
|
});
|
|
101
87
|
}
|
|
102
|
-
};
|
|
103
|
-
exports.default = _default;
|
|
88
|
+
};
|
package/lib/Parser/GTXParser.js
CHANGED
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
exports.default = exports.BYTES_PER_FLOAT = exports.BYTES_PER_DOUBLE = void 0;
|
|
8
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
-
var _GeoidGrid = _interopRequireDefault(require("../Core/Geographic/GeoidGrid"));
|
|
10
|
-
var _Extent = _interopRequireDefault(require("../Core/Geographic/Extent"));
|
|
11
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
-
const BYTES_PER_DOUBLE = 8;
|
|
14
|
-
exports.BYTES_PER_DOUBLE = BYTES_PER_DOUBLE;
|
|
15
|
-
const BYTES_PER_FLOAT = 4;
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import GeoidGrid from "../Core/Geographic/GeoidGrid.js";
|
|
3
|
+
import Extent from "../Core/Geographic/Extent.js";
|
|
4
|
+
export const BYTES_PER_DOUBLE = 8;
|
|
5
|
+
export const BYTES_PER_FLOAT = 4;
|
|
16
6
|
|
|
17
7
|
/**
|
|
18
8
|
* The `GTXParser` module provides a `[parse]{@link module:GTXParser.parse}` method. This method takes the content of a
|
|
@@ -21,8 +11,7 @@ const BYTES_PER_FLOAT = 4;
|
|
|
21
11
|
*
|
|
22
12
|
* @module GTXParser
|
|
23
13
|
*/
|
|
24
|
-
|
|
25
|
-
var _default = {
|
|
14
|
+
export default {
|
|
26
15
|
/**
|
|
27
16
|
* Parses a GTX file content and returns a corresponding `{@link GeoidGrid}`.
|
|
28
17
|
*
|
|
@@ -70,9 +59,9 @@ var _default = {
|
|
|
70
59
|
const maxX = metadata.minX + metadata.stepX * (metadata.nColumns - 1);
|
|
71
60
|
// formula for the max latitude : maxLatitude = minLatitude + deltaLatitude * (nRows - 1)
|
|
72
61
|
const maxY = metadata.minY + metadata.stepY * (metadata.nRows - 1);
|
|
73
|
-
const dataExtent = new
|
|
62
|
+
const dataExtent = new Extent(options.in.crs || 'EPSG:4326', metadata.minX, maxX, metadata.minY, maxY);
|
|
74
63
|
const dataStep = new THREE.Vector2(metadata.stepX, metadata.stepY);
|
|
75
|
-
return Promise.resolve(new
|
|
64
|
+
return Promise.resolve(new GeoidGrid(dataExtent, dataStep, (verticalIndex, horizontalIndex) => {
|
|
76
65
|
// formula to get the index of a geoid height from a latitude and longitude indexes is :
|
|
77
66
|
// ``(nColumns * latIndex + lonIndex) * nBytes``, where nBytes stands for the number of bytes geoid
|
|
78
67
|
// height data are encoded on.
|
|
@@ -83,5 +72,4 @@ var _default = {
|
|
|
83
72
|
}
|
|
84
73
|
}));
|
|
85
74
|
}
|
|
86
|
-
};
|
|
87
|
-
exports.default = _default;
|
|
75
|
+
};
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _Coordinates = _interopRequireDefault(require("../Core/Geographic/Coordinates"));
|
|
9
|
-
var _Feature = require("../Core/Feature");
|
|
10
|
-
var _Undeprecator = require("../Core/Deprecated/Undeprecator");
|
|
1
|
+
import Coordinates from "../Core/Geographic/Coordinates.js";
|
|
2
|
+
import { FeatureCollection, FEATURE_TYPES } from "../Core/Feature.js";
|
|
3
|
+
import { deprecatedParsingOptionsToNewOne } from "../Core/Deprecated/Undeprecator.js";
|
|
11
4
|
function readCRS(json) {
|
|
12
5
|
if (json.crs) {
|
|
13
6
|
if (json.crs.type.toLowerCase() == 'epsg') {
|
|
@@ -28,9 +21,9 @@ function readCRS(json) {
|
|
|
28
21
|
// assume default crs
|
|
29
22
|
return 'EPSG:4326';
|
|
30
23
|
}
|
|
31
|
-
const coord = new
|
|
32
|
-
const last = new
|
|
33
|
-
const first = new
|
|
24
|
+
const coord = new Coordinates('EPSG:4978', 0, 0, 0);
|
|
25
|
+
const last = new Coordinates('EPSG:4978', 0, 0, 0);
|
|
26
|
+
const first = new Coordinates('EPSG:4978', 0, 0, 0);
|
|
34
27
|
|
|
35
28
|
// filter with the first point
|
|
36
29
|
const firstPtIsOut = (extent, aCoords, crs) => {
|
|
@@ -124,13 +117,13 @@ function toFeatureType(jsonType) {
|
|
|
124
117
|
switch (jsonType) {
|
|
125
118
|
case 'point':
|
|
126
119
|
case 'multipoint':
|
|
127
|
-
return
|
|
120
|
+
return FEATURE_TYPES.POINT;
|
|
128
121
|
case 'linestring':
|
|
129
122
|
case 'multilinestring':
|
|
130
|
-
return
|
|
123
|
+
return FEATURE_TYPES.LINE;
|
|
131
124
|
case 'polygon':
|
|
132
125
|
case 'multipolygon':
|
|
133
|
-
return
|
|
126
|
+
return FEATURE_TYPES.POLYGON;
|
|
134
127
|
case 'geometrycollection':
|
|
135
128
|
default:
|
|
136
129
|
throw new Error(`Unhandled geometry type ${jsonType}`);
|
|
@@ -164,7 +157,7 @@ function jsonFeatureToFeature(crsIn, json, collection) {
|
|
|
164
157
|
return feature;
|
|
165
158
|
}
|
|
166
159
|
function jsonFeaturesToFeatures(crsIn, jsonFeatures, options) {
|
|
167
|
-
const collection = new
|
|
160
|
+
const collection = new FeatureCollection(options);
|
|
168
161
|
const filter = options.filter || (() => true);
|
|
169
162
|
for (const jsonFeature of jsonFeatures) {
|
|
170
163
|
if (filter(jsonFeature.properties, jsonFeature.geometry)) {
|
|
@@ -183,7 +176,7 @@ function jsonFeaturesToFeatures(crsIn, jsonFeatures, options) {
|
|
|
183
176
|
*
|
|
184
177
|
* @module GeoJsonParser
|
|
185
178
|
*/
|
|
186
|
-
|
|
179
|
+
export default {
|
|
187
180
|
/**
|
|
188
181
|
* Parse a GeoJSON file content and return a [FeatureCollection]{@link FeatureCollection}.
|
|
189
182
|
*
|
|
@@ -193,7 +186,7 @@ var _default = {
|
|
|
193
186
|
*/
|
|
194
187
|
parse(json) {
|
|
195
188
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
196
|
-
options =
|
|
189
|
+
options = deprecatedParsingOptionsToNewOne(options);
|
|
197
190
|
options.in = options.in || {};
|
|
198
191
|
const out = options.out;
|
|
199
192
|
const _in = options.in;
|
|
@@ -203,7 +196,7 @@ var _default = {
|
|
|
203
196
|
_in.crs = _in.crs || readCRS(json);
|
|
204
197
|
if (out.filteringExtent) {
|
|
205
198
|
if (typeof out.filteringExtent == 'boolean') {
|
|
206
|
-
out.filterExtent =
|
|
199
|
+
out.filterExtent = options.extent.as(_in.crs);
|
|
207
200
|
} else if (out.filteringExtent.isExtent) {
|
|
208
201
|
out.filterExtent = out.filteringExtent;
|
|
209
202
|
}
|
|
@@ -217,5 +210,4 @@ var _default = {
|
|
|
217
210
|
throw new Error(`Unsupported GeoJSON type: '${json.type}`);
|
|
218
211
|
}
|
|
219
212
|
}
|
|
220
|
-
};
|
|
221
|
-
exports.default = _default;
|
|
213
|
+
};
|
package/lib/Parser/GpxParser.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { gpx } from '@tmcw/togeojson';
|
|
2
|
+
import GeoJsonParser from "./GeoJsonParser.js";
|
|
3
|
+
import { deprecatedParsingOptionsToNewOne } from "../Core/Deprecated/Undeprecator.js";
|
|
2
4
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _togeojson = require("@tmcw/togeojson");
|
|
9
|
-
var _GeoJsonParser = _interopRequireDefault(require("./GeoJsonParser"));
|
|
10
|
-
var _Undeprecator = require("../Core/Deprecated/Undeprecator");
|
|
11
5
|
/**
|
|
12
6
|
* The GpxParser module provides a [parse]{@link module:GpxParser.parse}
|
|
13
7
|
* method that takes a GPX in and gives an object formatted for iTowns
|
|
@@ -15,7 +9,7 @@ var _Undeprecator = require("../Core/Deprecated/Undeprecator");
|
|
|
15
9
|
*
|
|
16
10
|
* @module GpxParser
|
|
17
11
|
*/
|
|
18
|
-
|
|
12
|
+
export default {
|
|
19
13
|
/**
|
|
20
14
|
* Parse a GPX file content and return a [FeatureCollection]{@link
|
|
21
15
|
* module:GeoJsonParser~FeatureCollection}.
|
|
@@ -27,8 +21,7 @@ var _default = {
|
|
|
27
21
|
* module:GeoJsonParser~FeatureCollection}.
|
|
28
22
|
*/
|
|
29
23
|
parse(gpxFile, options) {
|
|
30
|
-
options =
|
|
31
|
-
return
|
|
24
|
+
options = deprecatedParsingOptionsToNewOne(options);
|
|
25
|
+
return GeoJsonParser.parse(gpx(gpxFile), options);
|
|
32
26
|
}
|
|
33
|
-
};
|
|
34
|
-
exports.default = _default;
|
|
27
|
+
};
|
package/lib/Parser/ISGParser.js
CHANGED
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import GeoidGrid from "../Core/Geographic/GeoidGrid.js";
|
|
3
|
+
import Extent from "../Core/Geographic/Extent.js";
|
|
4
|
+
import { getHeaderAttribute } from "./GDFParser.js";
|
|
5
|
+
import { BYTES_PER_DOUBLE } from "./GTXParser.js";
|
|
2
6
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
-
var _GeoidGrid = _interopRequireDefault(require("../Core/Geographic/GeoidGrid"));
|
|
10
|
-
var _Extent = _interopRequireDefault(require("../Core/Geographic/Extent"));
|
|
11
|
-
var _GDFParser = require("./GDFParser");
|
|
12
|
-
var _GTXParser = require("./GTXParser");
|
|
13
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
7
|
/**
|
|
16
8
|
* The `ISGParser` module provides a `[parse]{@link module:ISGParser.parse}` method. This method takes the content of a
|
|
17
9
|
* ISG file in, and returns a `{@link GeoidGrid}`. the `{@link GeoidGrid}` contains all the necessary attributes and
|
|
@@ -19,7 +11,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
19
11
|
*
|
|
20
12
|
* @module ISGParser
|
|
21
13
|
*/
|
|
22
|
-
|
|
14
|
+
export default {
|
|
23
15
|
/**
|
|
24
16
|
* Parses an ISG file content and returns a corresponding `{@link GeoidGrid}`.
|
|
25
17
|
*
|
|
@@ -45,19 +37,19 @@ var _default = {
|
|
|
45
37
|
// ---------- GET METADATA FROM THE FILE : ----------
|
|
46
38
|
|
|
47
39
|
const metadata = {
|
|
48
|
-
minX:
|
|
49
|
-
maxX:
|
|
50
|
-
minY:
|
|
51
|
-
maxY:
|
|
52
|
-
stepX:
|
|
53
|
-
stepY:
|
|
54
|
-
nRows:
|
|
55
|
-
nColumns:
|
|
40
|
+
minX: getHeaderAttribute(rawHeaderData, 'lon min'),
|
|
41
|
+
maxX: getHeaderAttribute(rawHeaderData, 'lon max'),
|
|
42
|
+
minY: getHeaderAttribute(rawHeaderData, 'lat min'),
|
|
43
|
+
maxY: getHeaderAttribute(rawHeaderData, 'lat max'),
|
|
44
|
+
stepX: getHeaderAttribute(rawHeaderData, 'delta lon'),
|
|
45
|
+
stepY: getHeaderAttribute(rawHeaderData, 'delta lat'),
|
|
46
|
+
nRows: getHeaderAttribute(rawHeaderData, 'nrows'),
|
|
47
|
+
nColumns: getHeaderAttribute(rawHeaderData, 'ncols')
|
|
56
48
|
};
|
|
57
49
|
|
|
58
50
|
// ---------- BUILD A DATA VIEWER FROM THE TEXT DATA : ----------
|
|
59
51
|
|
|
60
|
-
const data = new DataView(new ArrayBuffer(
|
|
52
|
+
const data = new DataView(new ArrayBuffer(BYTES_PER_DOUBLE * metadata.nRows * metadata.nColumns));
|
|
61
53
|
let index = 0;
|
|
62
54
|
for (let row of rows.slice(firstMeasureLine, rows.length)) {
|
|
63
55
|
row = row.split(' ').filter(value => value !== '');
|
|
@@ -65,16 +57,15 @@ var _default = {
|
|
|
65
57
|
continue;
|
|
66
58
|
}
|
|
67
59
|
for (const value of row) {
|
|
68
|
-
data.setFloat64(index *
|
|
60
|
+
data.setFloat64(index * BYTES_PER_DOUBLE, parseFloat(value));
|
|
69
61
|
index++;
|
|
70
62
|
}
|
|
71
63
|
}
|
|
72
64
|
|
|
73
65
|
// ---------- CREATE A GeoidGrid FOR THE GIVEN FILE DATA : ----------
|
|
74
66
|
|
|
75
|
-
const dataExtent = new
|
|
67
|
+
const dataExtent = new Extent(options.in.crs || 'EPSG:4326', metadata.minX + metadata.stepX / 2, metadata.maxX - metadata.stepX / 2, metadata.minY + metadata.stepY / 2, metadata.maxY - metadata.stepY / 2);
|
|
76
68
|
const dataStep = new THREE.Vector2(metadata.stepX, metadata.stepY);
|
|
77
|
-
return Promise.resolve(new
|
|
69
|
+
return Promise.resolve(new GeoidGrid(dataExtent, dataStep, (verticalIndex, horizontalIndex) => data.getFloat64((metadata.nColumns * verticalIndex + horizontalIndex) * BYTES_PER_DOUBLE)));
|
|
78
70
|
}
|
|
79
|
-
};
|
|
80
|
-
exports.default = _default;
|
|
71
|
+
};
|
package/lib/Parser/KMLParser.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { kml } from '@tmcw/togeojson';
|
|
2
|
+
import GeoJsonParser from "./GeoJsonParser.js";
|
|
3
|
+
import { deprecatedParsingOptionsToNewOne } from "../Core/Deprecated/Undeprecator.js";
|
|
2
4
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _togeojson = require("@tmcw/togeojson");
|
|
9
|
-
var _GeoJsonParser = _interopRequireDefault(require("./GeoJsonParser"));
|
|
10
|
-
var _Undeprecator = require("../Core/Deprecated/Undeprecator");
|
|
11
5
|
/**
|
|
12
6
|
* The KMLParser module provides a [parse]{@link module:KMLParser.parse}
|
|
13
7
|
* method that takes a KML in and gives an object formatted for iTowns
|
|
@@ -15,7 +9,7 @@ var _Undeprecator = require("../Core/Deprecated/Undeprecator");
|
|
|
15
9
|
*
|
|
16
10
|
* @module KMLParser
|
|
17
11
|
*/
|
|
18
|
-
|
|
12
|
+
export default {
|
|
19
13
|
/**
|
|
20
14
|
* Parse a KML file content and return a [FeatureCollection]{@link
|
|
21
15
|
* module:GeoJsonParser~FeatureCollection}.
|
|
@@ -27,8 +21,7 @@ var _default = {
|
|
|
27
21
|
* module:GeoJsonParser~FeatureCollection}.
|
|
28
22
|
*/
|
|
29
23
|
parse(kmlFile, options) {
|
|
30
|
-
options =
|
|
31
|
-
return
|
|
24
|
+
options = deprecatedParsingOptionsToNewOne(options);
|
|
25
|
+
return GeoJsonParser.parse(kml(kmlFile), options);
|
|
32
26
|
}
|
|
33
|
-
};
|
|
34
|
-
exports.default = _default;
|
|
27
|
+
};
|