diff --git a/.gitignore b/.gitignore index f11645adb5a92bcaf6c10a33b95b0ec7ad91a806..04ff2ae29a67ee7afb9b13f0ede884f168e3f7ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ public/japan -public/stuttgart_tileset \ No newline at end of file +public/stuttgart_tileset +public/fellbach_tileset +public/ulm_tileset +public/tileset +node_modules \ No newline at end of file diff --git a/app.js b/app.js new file mode 100644 index 0000000000000000000000000000000000000000..0e7df8d7f084ff0cefa216d6271fbe48fe076a47 --- /dev/null +++ b/app.js @@ -0,0 +1,26 @@ +// import { load } from '@loaders.gl/core'; +// import { Tiles3DLoader } from '@loaders.gl/3d-tiles'; +// import { Tileset3D } from '@loaders.gl/tiles'; +import { load } from 'https://cdn.skypack.dev/@loaders.gl/core'; +import { Tiles3DLoader } from 'https://cdn.skypack.dev/@loaders.gl/3d-tiles'; +import { Tileset3D } from 'https://cdn.skypack.dev/@loaders.gl/tiles'; +async function loadTileset(url) { + try { + // Load the 3D Tiles tileset + const tilesetJson = await load(url, Tiles3DLoader); + + // Example: Assuming you have a setup to use the loaded Tileset3D (e.g., using deck.gl or another library) + // This code snippet only demonstrates how to load the data. + const tileset3d = new Tileset3D(tilesetJson); + console.log('Tileset loaded:', tileset3d); + + // Insert here the code to visualize the tileset (e.g., with deck.gl, three.js, etc.) + } catch (error) { + console.error('Failed to load the 3D Tiles tileset:', error); + } +} + +// The URL to the 3D Tiles dataset +const tilesetUrl = 'https://3dps.gis.lrg.tum.de/geovolumes/collections/Fellbach/all_buildings_lod2_textured/3dtiles/tileset.json'; + +loadTileset(tilesetUrl); \ No newline at end of file diff --git a/loader.html b/loader.html new file mode 100644 index 0000000000000000000000000000000000000000..16a20207d645d5840382d059b9f5cd325283ca33 --- /dev/null +++ b/loader.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> + <html lang="en"> + <head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>3D CityModel Viewer</title> + </head> + <body> + <div id="map"></div> + <script src="app.js" type="module"></script> + </body> + </html> \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..6804d0cc6c89d9d248cbeabe45f7b1a6334fd1ba --- /dev/null +++ b/package-lock.json @@ -0,0 +1,982 @@ +{ + "name": "3dgeovisclient", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "3dgeovisclient", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@loaders.gl/3d-tiles": "^4.1.3", + "@loaders.gl/core": "^4.1.3", + "@loaders.gl/tiles": "^4.1.3" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@loaders.gl/3d-tiles": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/3d-tiles/-/3d-tiles-4.1.3.tgz", + "integrity": "sha512-ZIwNqgnaLG9n1reN8Z1Rb8QFFuPmxE9HwuuAyaZRo9+o6dMSxM3E0l5I46TwnL9uUVG2b+IUqW/SVvmqE+zvxw==", + "dependencies": { + "@loaders.gl/draco": "4.1.3", + "@loaders.gl/gltf": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/math": "4.1.3", + "@loaders.gl/tiles": "4.1.3", + "@loaders.gl/zip": "4.1.3", + "@math.gl/core": "^4.0.0", + "@math.gl/geospatial": "^4.0.0", + "@probe.gl/log": "^4.0.4", + "long": "^5.2.1" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } + }, + "node_modules/@loaders.gl/compression": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/compression/-/compression-4.1.3.tgz", + "integrity": "sha512-SeY2oG+1gPZa7N8Oe+8FatN9305F7Eoqsv56YGRDfDKfgoZQgwSOoat85ue+GUH9SrkzktOvRSmgehsiSjX09A==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "@types/brotli": "^1.3.0", + "@types/pako": "^1.0.1", + "fflate": "0.7.4", + "lzo-wasm": "^0.0.4", + "pako": "1.0.11", + "snappyjs": "^0.6.1" + }, + "optionalDependencies": { + "brotli": "^1.3.2", + "lz4js": "^0.2.0", + "zstd-codec": "^0.1" + } + }, + "node_modules/@loaders.gl/core": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/core/-/core-4.1.3.tgz", + "integrity": "sha512-ZbDTvFyx5ylw4ZRfjG8Er3yzpiPohfEMIDwgX0FJwMLPkgqG3xW9ff7PYm3HNmAEMMYW94TD4jc7k7kvHavIUQ==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "@probe.gl/log": "^4.0.2" + } + }, + "node_modules/@loaders.gl/crypto": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/crypto/-/crypto-4.1.3.tgz", + "integrity": "sha512-jR/jH17j0Qrw97+UwEDoVetqO+1zamYkegFbehk+5n26BHplbwovYDjr/yvlM9G+IhGDxJ5fLelcF1t03aj+HQ==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "@types/crypto-js": "^4.0.2" + } + }, + "node_modules/@loaders.gl/draco": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/draco/-/draco-4.1.3.tgz", + "integrity": "sha512-hYK4Fp/i4PwgYDbKjCifo9B7N+8p628k+Zw4NMDAXKU+o4xnJeyAuVWqNuqHEN0Ui4DrC9zBetw7O7aDNphFWw==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/schema": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "draco3d": "1.5.5" + } + }, + "node_modules/@loaders.gl/gltf": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/gltf/-/gltf-4.1.3.tgz", + "integrity": "sha512-MSX/aO2NJ9YmKL8fX7fSJa6Oh6MA++6jbwfqxjnmIxJvzZ5EJoZX8ZNex5H1XpQqLKDOfP3j0uUiRTP0FS8Ovg==", + "dependencies": { + "@loaders.gl/draco": "4.1.3", + "@loaders.gl/images": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/textures": "4.1.3", + "@math.gl/core": "^4.0.0" + } + }, + "node_modules/@loaders.gl/images": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/images/-/images-4.1.3.tgz", + "integrity": "sha512-XG/FDRnhHUzdztQrqlWf1bWv6i0bsTuNaGMdDeOP6ch9plgGXEWoHG6yl9oL8er9mgR/IJ2JcveW6u+htIhasA==", + "dependencies": { + "@loaders.gl/loader-utils": "4.1.3" + } + }, + "node_modules/@loaders.gl/loader-utils": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.1.3.tgz", + "integrity": "sha512-yx1Cgzdgy5qnPWDWamWzJ6riq3l11TTjdo++BtDft6U5NHULdZvC/x/mBiylvc7kB0vkO1JKId4I0LxkWFcKRg==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/worker-utils": "4.1.3", + "@probe.gl/stats": "^4.0.2" + } + }, + "node_modules/@loaders.gl/math": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/math/-/math-4.1.3.tgz", + "integrity": "sha512-rsMnVX8QKlT8Fh0Yywve3LDc1200kbdnhSzURI6ASwFQqs2tlVZUI08kF10iH8swmBTO6xuIlOMNKQ6ICC/XrQ==", + "dependencies": { + "@loaders.gl/images": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "@math.gl/core": "^4.0.0" + } + }, + "node_modules/@loaders.gl/schema": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.1.3.tgz", + "integrity": "sha512-X+EqCshYpTUSm2gqJUKyKpdruu6xtXFMDhfjBCHixnLn8cefneQxv7hp2a7mUMd0UEy9spe9SAAD07gTPxXLSQ==", + "dependencies": { + "@types/geojson": "^7946.0.7" + } + }, + "node_modules/@loaders.gl/textures": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/textures/-/textures-4.1.3.tgz", + "integrity": "sha512-Jb50t2pZ0QYy/Pk4VddsEP6sXaEhCtIBwRc9Rqvtrv0t4D/nwNbCNXJmnBfoS8cQaaKleuxBkjRlFLxaxeV6eQ==", + "dependencies": { + "@loaders.gl/images": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/schema": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "ktx-parse": "^0.0.4", + "texture-compressor": "^1.0.2" + } + }, + "node_modules/@loaders.gl/tiles": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/tiles/-/tiles-4.1.3.tgz", + "integrity": "sha512-kjJJRcfHrXhnad6yNmANtDIKMav1G4V/gpgeL/jDYYAUBc/H03HEBGTCZCRt12bS3Byw9bReAo0vR5lSWizA3w==", + "dependencies": { + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/math": "4.1.3", + "@math.gl/core": "^4.0.0", + "@math.gl/culling": "^4.0.0", + "@math.gl/geospatial": "^4.0.0", + "@math.gl/web-mercator": "^4.0.0", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } + }, + "node_modules/@loaders.gl/worker-utils": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.1.3.tgz", + "integrity": "sha512-Nozed0KqlI52b4SVK/QtipjodjcE9AxgOhjnZ67eMRnyD6VIofEP3iUiZ55jDkpRxzL+q5LB6u8wUCqI1dD7OQ==", + "dependencies": { + "@babel/runtime": "^7.3.1" + } + }, + "node_modules/@loaders.gl/zip": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/zip/-/zip-4.1.3.tgz", + "integrity": "sha512-b10rIpczTZ0CfTXI9lrqJiOAqnv4byDZ2EgCp/T0MYQF3IGUvZMNvglLxRgo2Osw1L7w2sYP48wjr8/sJ/UF6g==", + "dependencies": { + "@loaders.gl/compression": "4.1.3", + "@loaders.gl/crypto": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "jszip": "^3.1.5", + "md5": "^2.3.0" + } + }, + "node_modules/@math.gl/core": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-4.0.1.tgz", + "integrity": "sha512-9IewNjR9V66o+gYIIq5agFoHy6ZT6DRpRGQBfsUpZz4glAqOjVt64he8GGzjpmqfT+kKT4qwQ7nQl/hZLF15qA==", + "dependencies": { + "@math.gl/types": "4.0.1" + } + }, + "node_modules/@math.gl/culling": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/culling/-/culling-4.0.1.tgz", + "integrity": "sha512-lv83sMKp0n1HjORhuNtWgX9ylYyj+/zHEPF0xxRXZvcpurB85fhgFLhvR81KLjmSbhQmFgzl0fZe7Ei3WxEP5Q==", + "dependencies": { + "@math.gl/core": "4.0.1" + } + }, + "node_modules/@math.gl/geospatial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/geospatial/-/geospatial-4.0.1.tgz", + "integrity": "sha512-FfTUMk8uRlBa4W3dMSFwPjRgdEBnOeVjBr3mcGqb3lHA/PPMvKuE+o7OJfA61Wj6ItuZqCEZHbLbA3WRAENoqQ==", + "dependencies": { + "@math.gl/core": "4.0.1" + } + }, + "node_modules/@math.gl/types": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-4.0.1.tgz", + "integrity": "sha512-E9qBKAjVBiZD8Is7TbygiLGtYBP3GSLus6RUJSuzFQegdYXeVagvrs4UkBJxhrRAxw4crfH0Tq7IhTMKuuJNQw==" + }, + "node_modules/@math.gl/web-mercator": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-4.0.1.tgz", + "integrity": "sha512-eJ0nDw8140kJorf8ASyKRC53rI+UG6vPxpsKJiGRD6lXsoKTeKYebeEAXiGDWTvi2AMe6+xngxTqqwm58fL3Fw==" + }, + "node_modules/@probe.gl/env": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-4.0.9.tgz", + "integrity": "sha512-AOmVMD0/j78mX+k4+qX7ZhE0sY9H+EaJgIO6trik0BwV6VcrwxTGCGFAeuRsIGhETDnye06tkLXccYatYxAYwQ==" + }, + "node_modules/@probe.gl/log": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-4.0.9.tgz", + "integrity": "sha512-ebuZaodSRE9aC+3bVC7cKRHT8garXeT1jTbj1R5tQRqQYc9iGeT3iemVOHx5bN9Q6gAs/0j54iPI+1DvWMAW4A==", + "dependencies": { + "@probe.gl/env": "4.0.9" + } + }, + "node_modules/@probe.gl/stats": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-4.0.9.tgz", + "integrity": "sha512-Q9Xt/sJUQaMsbjRKjOscv2t7wXIymTrOEJ4a3da4FTCn7bkKvcdxdyFAQySCrtPxE+YZ5I5lXpWPgv9BwmpE1g==" + }, + "node_modules/@types/brotli": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/brotli/-/brotli-1.3.4.tgz", + "integrity": "sha512-cKYjgaS2DMdCKF7R0F5cgx1nfBYObN2ihIuPGQ4/dlIY6RpV7OWNwe9L8V4tTVKL2eZqOkNM9FM/rgTvLf4oXw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/crypto-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.2.2.tgz", + "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==" + }, + "node_modules/@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==" + }, + "node_modules/@types/node": { + "version": "20.11.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", + "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/pako": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-YBtzT2ztNF6R/9+UXj2wTGFnC9NklAnASt3sC0h2m1bbH7G6FyBIkt4AN8ThZpNfxUo1b2iMVO0UawiJymEt8A==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true + }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "optional": true, + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "engines": { + "node": "*" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "engines": { + "node": "*" + } + }, + "node_modules/draco3d": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.5.tgz", + "integrity": "sha512-JVuNV0EJzD3LBYhGyIXJLeBID/EVtmFO1ZNhAYflTgiMiAJlbhXQmRRda/azjc8MRVMHh0gqGhiqHUo5dIXM8Q==" + }, + "node_modules/fflate": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", + "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==" + }, + "node_modules/image-size": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", + "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ktx-parse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.0.4.tgz", + "integrity": "sha512-LY3nrmfXl+wZZdPxgJ3ZmLvG+wkOZZP3/dr4RbQj1Pk3Qwz44esOOSFFVQJcNWpXAtiNIC66WgXufX/SYgYz6A==" + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/lz4js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/lz4js/-/lz4js-0.2.0.tgz", + "integrity": "sha512-gY2Ia9Lm7Ep8qMiuGRhvUq0Q7qUereeldZPP1PMEJxPtEWHJLqw9pgX68oHajBH0nzJK4MaZEA/YNV3jT8u8Bg==", + "optional": true + }, + "node_modules/lzo-wasm": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/lzo-wasm/-/lzo-wasm-0.0.4.tgz", + "integrity": "sha512-VKlnoJRFrB8SdJhlVKvW5vI1gGwcZ+mvChEXcSX6r2xDNc/Q2FD9esfBmGCuPZdrJ1feO+YcVFd2PTk0c137Gw==" + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/snappyjs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/snappyjs/-/snappyjs-0.6.1.tgz", + "integrity": "sha512-YIK6I2lsH072UE0aOFxxY1dPDCS43I5ktqHpeAsuLNYWkE5pGxRGWfDM4/vSUfNzXjC1Ivzt3qx31PCLmc9yqg==" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/texture-compressor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/texture-compressor/-/texture-compressor-1.0.2.tgz", + "integrity": "sha512-dStVgoaQ11mA5htJ+RzZ51ZxIZqNOgWKAIvtjLrW1AliQQLCmrDqNzQZ8Jh91YealQ95DXt4MEduLzJmbs6lig==", + "dependencies": { + "argparse": "^1.0.10", + "image-size": "^0.7.4" + }, + "bin": { + "texture-compressor": "bin/texture-compressor.js" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/zstd-codec": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/zstd-codec/-/zstd-codec-0.1.4.tgz", + "integrity": "sha512-KYnWoFWgGtWyQEKNnUcb3u8ZtKO8dn5d8u+oGpxPlopqsPyv60U8suDyfk7Z7UtAO6Sk5i1aVcAs9RbaB1n36A==", + "optional": true + } + }, + "dependencies": { + "@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@loaders.gl/3d-tiles": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/3d-tiles/-/3d-tiles-4.1.3.tgz", + "integrity": "sha512-ZIwNqgnaLG9n1reN8Z1Rb8QFFuPmxE9HwuuAyaZRo9+o6dMSxM3E0l5I46TwnL9uUVG2b+IUqW/SVvmqE+zvxw==", + "requires": { + "@loaders.gl/draco": "4.1.3", + "@loaders.gl/gltf": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/math": "4.1.3", + "@loaders.gl/tiles": "4.1.3", + "@loaders.gl/zip": "4.1.3", + "@math.gl/core": "^4.0.0", + "@math.gl/geospatial": "^4.0.0", + "@probe.gl/log": "^4.0.4", + "long": "^5.2.1" + } + }, + "@loaders.gl/compression": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/compression/-/compression-4.1.3.tgz", + "integrity": "sha512-SeY2oG+1gPZa7N8Oe+8FatN9305F7Eoqsv56YGRDfDKfgoZQgwSOoat85ue+GUH9SrkzktOvRSmgehsiSjX09A==", + "requires": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "@types/brotli": "^1.3.0", + "@types/pako": "^1.0.1", + "brotli": "^1.3.2", + "fflate": "0.7.4", + "lz4js": "^0.2.0", + "lzo-wasm": "^0.0.4", + "pako": "1.0.11", + "snappyjs": "^0.6.1", + "zstd-codec": "^0.1" + } + }, + "@loaders.gl/core": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/core/-/core-4.1.3.tgz", + "integrity": "sha512-ZbDTvFyx5ylw4ZRfjG8Er3yzpiPohfEMIDwgX0FJwMLPkgqG3xW9ff7PYm3HNmAEMMYW94TD4jc7k7kvHavIUQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "@probe.gl/log": "^4.0.2" + } + }, + "@loaders.gl/crypto": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/crypto/-/crypto-4.1.3.tgz", + "integrity": "sha512-jR/jH17j0Qrw97+UwEDoVetqO+1zamYkegFbehk+5n26BHplbwovYDjr/yvlM9G+IhGDxJ5fLelcF1t03aj+HQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "@types/crypto-js": "^4.0.2" + } + }, + "@loaders.gl/draco": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/draco/-/draco-4.1.3.tgz", + "integrity": "sha512-hYK4Fp/i4PwgYDbKjCifo9B7N+8p628k+Zw4NMDAXKU+o4xnJeyAuVWqNuqHEN0Ui4DrC9zBetw7O7aDNphFWw==", + "requires": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/schema": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "draco3d": "1.5.5" + } + }, + "@loaders.gl/gltf": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/gltf/-/gltf-4.1.3.tgz", + "integrity": "sha512-MSX/aO2NJ9YmKL8fX7fSJa6Oh6MA++6jbwfqxjnmIxJvzZ5EJoZX8ZNex5H1XpQqLKDOfP3j0uUiRTP0FS8Ovg==", + "requires": { + "@loaders.gl/draco": "4.1.3", + "@loaders.gl/images": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/textures": "4.1.3", + "@math.gl/core": "^4.0.0" + } + }, + "@loaders.gl/images": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/images/-/images-4.1.3.tgz", + "integrity": "sha512-XG/FDRnhHUzdztQrqlWf1bWv6i0bsTuNaGMdDeOP6ch9plgGXEWoHG6yl9oL8er9mgR/IJ2JcveW6u+htIhasA==", + "requires": { + "@loaders.gl/loader-utils": "4.1.3" + } + }, + "@loaders.gl/loader-utils": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.1.3.tgz", + "integrity": "sha512-yx1Cgzdgy5qnPWDWamWzJ6riq3l11TTjdo++BtDft6U5NHULdZvC/x/mBiylvc7kB0vkO1JKId4I0LxkWFcKRg==", + "requires": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/worker-utils": "4.1.3", + "@probe.gl/stats": "^4.0.2" + } + }, + "@loaders.gl/math": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/math/-/math-4.1.3.tgz", + "integrity": "sha512-rsMnVX8QKlT8Fh0Yywve3LDc1200kbdnhSzURI6ASwFQqs2tlVZUI08kF10iH8swmBTO6xuIlOMNKQ6ICC/XrQ==", + "requires": { + "@loaders.gl/images": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "@math.gl/core": "^4.0.0" + } + }, + "@loaders.gl/schema": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.1.3.tgz", + "integrity": "sha512-X+EqCshYpTUSm2gqJUKyKpdruu6xtXFMDhfjBCHixnLn8cefneQxv7hp2a7mUMd0UEy9spe9SAAD07gTPxXLSQ==", + "requires": { + "@types/geojson": "^7946.0.7" + } + }, + "@loaders.gl/textures": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/textures/-/textures-4.1.3.tgz", + "integrity": "sha512-Jb50t2pZ0QYy/Pk4VddsEP6sXaEhCtIBwRc9Rqvtrv0t4D/nwNbCNXJmnBfoS8cQaaKleuxBkjRlFLxaxeV6eQ==", + "requires": { + "@loaders.gl/images": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/schema": "4.1.3", + "@loaders.gl/worker-utils": "4.1.3", + "ktx-parse": "^0.0.4", + "texture-compressor": "^1.0.2" + } + }, + "@loaders.gl/tiles": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/tiles/-/tiles-4.1.3.tgz", + "integrity": "sha512-kjJJRcfHrXhnad6yNmANtDIKMav1G4V/gpgeL/jDYYAUBc/H03HEBGTCZCRt12bS3Byw9bReAo0vR5lSWizA3w==", + "requires": { + "@loaders.gl/loader-utils": "4.1.3", + "@loaders.gl/math": "4.1.3", + "@math.gl/core": "^4.0.0", + "@math.gl/culling": "^4.0.0", + "@math.gl/geospatial": "^4.0.0", + "@math.gl/web-mercator": "^4.0.0", + "@probe.gl/stats": "^4.0.2" + } + }, + "@loaders.gl/worker-utils": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.1.3.tgz", + "integrity": "sha512-Nozed0KqlI52b4SVK/QtipjodjcE9AxgOhjnZ67eMRnyD6VIofEP3iUiZ55jDkpRxzL+q5LB6u8wUCqI1dD7OQ==", + "requires": { + "@babel/runtime": "^7.3.1" + } + }, + "@loaders.gl/zip": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@loaders.gl/zip/-/zip-4.1.3.tgz", + "integrity": "sha512-b10rIpczTZ0CfTXI9lrqJiOAqnv4byDZ2EgCp/T0MYQF3IGUvZMNvglLxRgo2Osw1L7w2sYP48wjr8/sJ/UF6g==", + "requires": { + "@loaders.gl/compression": "4.1.3", + "@loaders.gl/crypto": "4.1.3", + "@loaders.gl/loader-utils": "4.1.3", + "jszip": "^3.1.5", + "md5": "^2.3.0" + } + }, + "@math.gl/core": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-4.0.1.tgz", + "integrity": "sha512-9IewNjR9V66o+gYIIq5agFoHy6ZT6DRpRGQBfsUpZz4glAqOjVt64he8GGzjpmqfT+kKT4qwQ7nQl/hZLF15qA==", + "requires": { + "@math.gl/types": "4.0.1" + } + }, + "@math.gl/culling": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/culling/-/culling-4.0.1.tgz", + "integrity": "sha512-lv83sMKp0n1HjORhuNtWgX9ylYyj+/zHEPF0xxRXZvcpurB85fhgFLhvR81KLjmSbhQmFgzl0fZe7Ei3WxEP5Q==", + "requires": { + "@math.gl/core": "4.0.1" + } + }, + "@math.gl/geospatial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/geospatial/-/geospatial-4.0.1.tgz", + "integrity": "sha512-FfTUMk8uRlBa4W3dMSFwPjRgdEBnOeVjBr3mcGqb3lHA/PPMvKuE+o7OJfA61Wj6ItuZqCEZHbLbA3WRAENoqQ==", + "requires": { + "@math.gl/core": "4.0.1" + } + }, + "@math.gl/types": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-4.0.1.tgz", + "integrity": "sha512-E9qBKAjVBiZD8Is7TbygiLGtYBP3GSLus6RUJSuzFQegdYXeVagvrs4UkBJxhrRAxw4crfH0Tq7IhTMKuuJNQw==" + }, + "@math.gl/web-mercator": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-4.0.1.tgz", + "integrity": "sha512-eJ0nDw8140kJorf8ASyKRC53rI+UG6vPxpsKJiGRD6lXsoKTeKYebeEAXiGDWTvi2AMe6+xngxTqqwm58fL3Fw==" + }, + "@probe.gl/env": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-4.0.9.tgz", + "integrity": "sha512-AOmVMD0/j78mX+k4+qX7ZhE0sY9H+EaJgIO6trik0BwV6VcrwxTGCGFAeuRsIGhETDnye06tkLXccYatYxAYwQ==" + }, + "@probe.gl/log": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-4.0.9.tgz", + "integrity": "sha512-ebuZaodSRE9aC+3bVC7cKRHT8garXeT1jTbj1R5tQRqQYc9iGeT3iemVOHx5bN9Q6gAs/0j54iPI+1DvWMAW4A==", + "requires": { + "@probe.gl/env": "4.0.9" + } + }, + "@probe.gl/stats": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-4.0.9.tgz", + "integrity": "sha512-Q9Xt/sJUQaMsbjRKjOscv2t7wXIymTrOEJ4a3da4FTCn7bkKvcdxdyFAQySCrtPxE+YZ5I5lXpWPgv9BwmpE1g==" + }, + "@types/brotli": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/brotli/-/brotli-1.3.4.tgz", + "integrity": "sha512-cKYjgaS2DMdCKF7R0F5cgx1nfBYObN2ihIuPGQ4/dlIY6RpV7OWNwe9L8V4tTVKL2eZqOkNM9FM/rgTvLf4oXw==", + "requires": { + "@types/node": "*" + } + }, + "@types/crypto-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.2.2.tgz", + "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==" + }, + "@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==" + }, + "@types/node": { + "version": "20.11.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", + "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/pako": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-YBtzT2ztNF6R/9+UXj2wTGFnC9NklAnASt3sC0h2m1bbH7G6FyBIkt4AN8ThZpNfxUo1b2iMVO0UawiJymEt8A==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "optional": true + }, + "brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "optional": true, + "requires": { + "base64-js": "^1.1.2" + } + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" + }, + "draco3d": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.5.tgz", + "integrity": "sha512-JVuNV0EJzD3LBYhGyIXJLeBID/EVtmFO1ZNhAYflTgiMiAJlbhXQmRRda/azjc8MRVMHh0gqGhiqHUo5dIXM8Q==" + }, + "fflate": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", + "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==" + }, + "image-size": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", + "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==" + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "ktx-parse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.0.4.tgz", + "integrity": "sha512-LY3nrmfXl+wZZdPxgJ3ZmLvG+wkOZZP3/dr4RbQj1Pk3Qwz44esOOSFFVQJcNWpXAtiNIC66WgXufX/SYgYz6A==" + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "lz4js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/lz4js/-/lz4js-0.2.0.tgz", + "integrity": "sha512-gY2Ia9Lm7Ep8qMiuGRhvUq0Q7qUereeldZPP1PMEJxPtEWHJLqw9pgX68oHajBH0nzJK4MaZEA/YNV3jT8u8Bg==", + "optional": true + }, + "lzo-wasm": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/lzo-wasm/-/lzo-wasm-0.0.4.tgz", + "integrity": "sha512-VKlnoJRFrB8SdJhlVKvW5vI1gGwcZ+mvChEXcSX6r2xDNc/Q2FD9esfBmGCuPZdrJ1feO+YcVFd2PTk0c137Gw==" + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "snappyjs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/snappyjs/-/snappyjs-0.6.1.tgz", + "integrity": "sha512-YIK6I2lsH072UE0aOFxxY1dPDCS43I5ktqHpeAsuLNYWkE5pGxRGWfDM4/vSUfNzXjC1Ivzt3qx31PCLmc9yqg==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "texture-compressor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/texture-compressor/-/texture-compressor-1.0.2.tgz", + "integrity": "sha512-dStVgoaQ11mA5htJ+RzZ51ZxIZqNOgWKAIvtjLrW1AliQQLCmrDqNzQZ8Jh91YealQ95DXt4MEduLzJmbs6lig==", + "requires": { + "argparse": "^1.0.10", + "image-size": "^0.7.4" + } + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "zstd-codec": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/zstd-codec/-/zstd-codec-0.1.4.tgz", + "integrity": "sha512-KYnWoFWgGtWyQEKNnUcb3u8ZtKO8dn5d8u+oGpxPlopqsPyv60U8suDyfk7Z7UtAO6Sk5i1aVcAs9RbaB1n36A==", + "optional": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000000000000000000000000000000000000..d63d27e9ea45b216f450198df023b8a98ed72797 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "3dgeovisclient", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://transfer.hft-stuttgart.de/gitlab/thunyathep.santhanavanich/3dgeovisclient.git" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@loaders.gl/3d-tiles": "^4.1.3", + "@loaders.gl/core": "^4.1.3", + "@loaders.gl/tiles": "^4.1.3" + } +} diff --git a/public/convert_command.md b/public/convert_command.md new file mode 100644 index 0000000000000000000000000000000000000000..ba00f3b06702d54e2b528754a673a3fc5c6f60ab --- /dev/null +++ b/public/convert_command.md @@ -0,0 +1,5 @@ +## First try +```bash +npx tile-converter --install-dependencies +npx tile-converter --input-type="3DTILES" --tileset="/home/joe/2021_rtgis_3dps_geovolumes/geovolumes/collections/Fellbach/all_buildings_lod2_textured/3dtiles/tileset.json" --name="Fellbach_Textures" --slpk=TRUE --generate-textures=TRUE +``` \ No newline at end of file diff --git a/public/index_fellbach3d_smart_adv.html b/public/index_fellbach3d_smart_adv.html new file mode 100644 index 0000000000000000000000000000000000000000..f9dc7c39f9a0355fba71fa1084d6d02f6cb1514e --- /dev/null +++ b/public/index_fellbach3d_smart_adv.html @@ -0,0 +1,56 @@ +<html lang="en"> + +<head> + <meta charset="utf-8"> + <script src="https://cesium.com/downloads/cesiumjs/releases/1.94/Build/Cesium/Cesium.js"></script> + <link href="https://cesium.com/downloads/cesiumjs/releases/1.94/Build/Cesium/Widgets/widgets.css" rel="stylesheet"> + <script src="viewerCesiumNavigationMixin.js"> </script> +</head> + +<body> + <div id="cesiumContainer" style="width: 100%; height:100%"></div> + <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script> + <script> + Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmNDI1ZTg5OC05MWU1LTQ5YTYtOTEyZS1mODk1ODZiZGRhMjgiLCJpZCI6MTcxNDQsImlhdCI6MTY4MDIwNTA2MX0.fM4zc4RUfbrgLvaD4FXP-EUNMceSRA1ILRt2qVNACpc'; + var viewer = new Cesium.Viewer('cesiumContainer', { + // terrainProvider: Cesium.createWorldTerrain(), + baseLayerPicker: true, + vrButton: true, + geocoder: true, + navigationHelpButton: false, + selectionIndicator: false, + shadows: false, + timeline: true, + sceneModePicker: true, + terrainProvider: new Cesium.CesiumTerrainProvider({ + url: 'https://web3d.basemap.de/cesium/dgm5-mesh', + credit: new Cesium.Credit("\u0026copy; 2023 basemap.de", true) + }) + }); + viewer.extend(Cesium.viewerCesiumNavigationMixin, {}); + + var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({ + url: 'https://web3d.basemap.de/cesium/buildings-fly/root.json' + })); + viewer.camera.setView({ "destination": { "x": 4154353.86673887, "y": 678154.7981396901, "z": 4776795.2223274 }, "orientation": { "direction": { "x": -0.9635249406751695, "y": -0.15728536436861265, "z": 0.2165202134959783 }, "up": { "x": 0.21369179371637717, "y": 0.03488294928175081, "z": 0.9762781351375663 } } }) + basicStyle = new Cesium.Cesium3DTileStyle({ + color: "color('white')", + show: true + }); + waterDemandStyle = new Cesium.Cesium3DTileStyle({ + color: { + conditions: [ + ["${gebaeudefunktion} === '31001_1010'", "color('#ffffcc')"], + ["${gebaeudefunktion} === '31001_3013'", "color('#bae4bc')"], + ["${gebaeudefunktion} === '31001_1123'", "color('#7bccc4')"], + ["${gebaeudefunktion} === '31001_2111'", "color('#2b8cbe')"], + ["true", "color('#2b8cbe')"], + ], + }, + }); + tileset.style = basicStyle; + + </script> +</body> + +</html> \ No newline at end of file diff --git a/public/index_fellbach3d_test.html b/public/index_fellbach3d_test.html new file mode 100644 index 0000000000000000000000000000000000000000..3349a6ca057ce52ab2e855b8453c63fbb16b7b9b --- /dev/null +++ b/public/index_fellbach3d_test.html @@ -0,0 +1,110 @@ +<html lang="en"> + +<head> + <meta charset="utf-8"> + <script src="https://cesium.com/downloads/cesiumjs/releases/1.94/Build/Cesium/Cesium.js"></script> + <link href="https://cesium.com/downloads/cesiumjs/releases/1.94/Build/Cesium/Widgets/widgets.css" rel="stylesheet"> + <script src="viewerCesiumNavigationMixin.js"> </script> +</head> + +<body> + <div id="cesiumContainer" style="width: 100%; height:100%"></div> + <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script> + <script> + Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmNDI1ZTg5OC05MWU1LTQ5YTYtOTEyZS1mODk1ODZiZGRhMjgiLCJpZCI6MTcxNDQsImlhdCI6MTY4MDIwNTA2MX0.fM4zc4RUfbrgLvaD4FXP-EUNMceSRA1ILRt2qVNACpc'; + var viewer = new Cesium.Viewer('cesiumContainer', { + // terrainProvider: Cesium.createWorldTerrain(), + baseLayerPicker: true, + vrButton: true, + geocoder: true, + navigationHelpButton: false, + selectionIndicator: false, + shadows: false, + timeline: true, + sceneModePicker: true, + terrainProvider: new Cesium.CesiumTerrainProvider({ + url: 'https://web3d.basemap.de/cesium/dgm5-mesh', + credit: new Cesium.Credit("\u0026copy; 2023 basemap.de", true) + }) + // imageryProvider: new Cesium.MapboxStyleImageryProvider({ + // // check style ID at https://docs.mapbox.com/api/maps/styles/ + // styleId: 'light-v10', + // // styleId: 'navigation-day-v1', + // accessToken: 'pk.eyJ1IjoidGh1bnlhdGhlcCIsImEiOiJjamFpOWV4a2gxd21vMndxdXd2M3VoY3hmIn0.jLlCscei0yH-ZHwcfxF_ug' + // }) + // imageryProvider: new Cesium.OpenStreetMapImageryProvider({ + // url: 'https://a.tile.openstreetmap.org/' + // }), + }); + viewer.extend(Cesium.viewerCesiumNavigationMixin, {}); + + var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({ + url: 'https://3dps.gis.lrg.tum.de/geovolumes/collections/Fellbach/all_buildings_lod2_textured/3dtiles/tileset.json' + })); + tileset.readyPromise.then(function (tileset) { + viewer.flyTo(tileset) + }); + + + // var cityStyle = new Cesium.Cesium3DTileStyle({ + // color: { + // conditions: [ + // ["${surface} === 'wall'", "color('#f2f2f2')"], + // ["${surface} === 'roof'", "color('#ff5c4d')"], + // // ["${surface} === 'roof'", "color('#005c4d')"], + // ["${surface} === 'bridge'", "color('#999999')"] + // ] + // }, + // }); + // tileset.style = cityStyle + // const provider = new Cesium.WebMapServiceImageryProvider({ + // url: 'https://sgx.geodatenzentrum.de/wms_basemapde?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities', + // layers: "de_basemapde_web_raster_farbe", + // parameters: { + // transparent: true, + // format: "image/png", + // } + // }); + // viewer.imageryLayers.addImageryProvider(provider); + // Get the URL of the current page + // var url = window.location.href; + + // // Use a regular expression to extract the lat and lng parameters + // var regex = /lat=([0-9.]+)&lng=([0-9.]+)/; + // var match = regex.exec(url); + + // // Check if the match is not null + // if (match) { + // // Get the lat and lng values from the match array + // var lat = match[1]; + // var lng = match[2]; + + // // Do something with the lat and lng values + // console.log("Latitude: " + lat); + // console.log("Longitude: " + lng); + // viewer.camera.flyTo({ + // destination: Cesium.Cartesian3.fromDegrees(lng, lat, 3500.0), + // orientation: { + // heading: Cesium.Math.toRadians(0.0), + // pitch: Cesium.Math.toRadians(-40.0), + // roll: 0.0 + // } + // }); + // } else { + // // No lat and lng parameters found + // console.log("No latitude and longitude values found in the URL"); + // viewer.camera.flyTo({ + // destination: Cesium.Cartesian3.fromDegrees(10.277367, 47.415311, 3500.0), + // orientation: { + // heading: Cesium.Math.toRadians(0.0), + // pitch: Cesium.Math.toRadians(-40.0), + // roll: 0.0 + // } + // }); + // } + + + </script> +</body> + +</html> \ No newline at end of file diff --git a/public/index_ulm3d_lod2.html b/public/index_ulm3d_lod2.html new file mode 100644 index 0000000000000000000000000000000000000000..957625910615bbb3d6d9ca3d40214b4adb8bb42b --- /dev/null +++ b/public/index_ulm3d_lod2.html @@ -0,0 +1,88 @@ +<html lang="en"> + +<head> + <meta charset="utf-8"> + <script src="https://cesium.com/downloads/cesiumjs/releases/1.94/Build/Cesium/Cesium.js"></script> + <link href="https://cesium.com/downloads/cesiumjs/releases/1.94/Build/Cesium/Widgets/widgets.css" rel="stylesheet"> + <script src="viewerCesiumNavigationMixin.js"> </script> +</head> + +<body> + <div id="cesiumContainer" style="width: 100%; height:100%"></div> + <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script> + <script> + Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmNDI1ZTg5OC05MWU1LTQ5YTYtOTEyZS1mODk1ODZiZGRhMjgiLCJpZCI6MTcxNDQsImlhdCI6MTY4MDIwNTA2MX0.fM4zc4RUfbrgLvaD4FXP-EUNMceSRA1ILRt2qVNACpc'; + var viewer = new Cesium.Viewer('cesiumContainer', { + // terrainProvider: Cesium.createWorldTerrain(), + baseLayerPicker: true, + vrButton: true, + geocoder: true, + navigationHelpButton: false, + selectionIndicator: false, + shadows: false, + timeline: true, + sceneModePicker: true, + terrainProvider: new Cesium.CesiumTerrainProvider({ + url: 'https://web3d.basemap.de/cesium/dgm5-mesh', + credit: new Cesium.Credit("\u0026copy; 2023 basemap.de", true) + }) + }); + viewer.extend(Cesium.viewerCesiumNavigationMixin, {}); + + var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({ + url: 'ulm_tileset/tileset.json' + })); + viewer.flyTo(tileset) + + + // const provider = new Cesium.WebMapServiceImageryProvider({ + // url: 'https://sgx.geodatenzentrum.de/wms_basemapde?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities', + // layers: "de_basemapde_web_raster_farbe", + // parameters: { + // transparent: true, + // format: "image/png", + // } + // }); + // viewer.imageryLayers.addImageryProvider(provider); + // Get the URL of the current page + // var url = window.location.href; + + // // Use a regular expression to extract the lat and lng parameters + // var regex = /lat=([0-9.]+)&lng=([0-9.]+)/; + // var match = regex.exec(url); + + // // Check if the match is not null + // if (match) { + // // Get the lat and lng values from the match array + // var lat = match[1]; + // var lng = match[2]; + + // // Do something with the lat and lng values + // console.log("Latitude: " + lat); + // console.log("Longitude: " + lng); + // viewer.camera.flyTo({ + // destination: Cesium.Cartesian3.fromDegrees(lng, lat, 3500.0), + // orientation: { + // heading: Cesium.Math.toRadians(0.0), + // pitch: Cesium.Math.toRadians(-40.0), + // roll: 0.0 + // } + // }); + // } else { + // // No lat and lng parameters found + // console.log("No latitude and longitude values found in the URL"); + // viewer.camera.flyTo({ + // destination: Cesium.Cartesian3.fromDegrees(10.277367, 47.415311, 3500.0), + // orientation: { + // heading: Cesium.Math.toRadians(0.0), + // pitch: Cesium.Math.toRadians(-40.0), + // roll: 0.0 + // } + // }); + // } + + + </script> +</body> + +</html> \ No newline at end of file