diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..c2658d7d1b31848c3b71960543cb0368e56cd4c7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4484.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4484.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..20ebd83bdaf4b054bfb63cfbb376f27d49320f8f Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4484.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4485.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4485.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..1f9243986ac0d40f590607ac5ffbe24806f7cdcc Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4485.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4486.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4486.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..3209917378b458613292914be1bb594bd99ec9e5 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4486.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4487.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4487.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..20095efbb122b3ecbe24127d933eab35616bb31b Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9646/4487.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4481.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4481.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..9a4f4b2a9ef7f7308b09b08fe2bc390c8c345f3f Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4481.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4482.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4482.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..bd2800305ffe65df385667d6d8a54c33d9fe3877 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4482.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4483.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4483.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..ca0ba2ff08ea9228659554fdd91f90041772bc6f Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4483.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4484.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4484.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..85c2b8f2620f9d2d1207893f6543df2a07591fd8 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4484.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4485.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4485.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..a845c7e36c6f037e456d5dc8c26948a269b6d719 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4485.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4486.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4486.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..e2cc10709251b3ad5d45f11364335127356aae99 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4486.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4487.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4487.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..30e512fca80fefc345e74ecab9229fab61f87e4a Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9647/4487.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4480.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4480.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..81a612020b61798e4cbba46c18e60bfecf2a4def Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4480.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4481.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4481.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..8b480a338a758ecebcff094dca67201da4a31585 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4481.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4482.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4482.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..b9c44875e33b8c0c9f5f6ebc052d8e1001a3af9f Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4482.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4483.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4483.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..7d6859809a4b4c4629e6fc08f3c24ada650daaa9 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4483.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4484.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4484.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..587d6ae5a721fd05b2ffe923dd223c80c9cea983 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4484.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4485.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4485.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..4de3974671f8d7bc136db13dad78a81ac42d9cc8 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4485.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4486.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4486.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..41ee4028d637433561dfa9d92367047fbca074ec Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9648/4486.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4479.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4479.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..4e3f3608bd573dad684fc5513b323819d77b7345 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4479.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4480.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4480.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..c418e9f56b82565e54a43fa8501898d1618e68f9 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4480.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4481.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4481.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..09f3723256db0ad24bc5fc05dd3e5e04316bf2b1 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4481.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4482.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4482.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..a6e43ec4ba94fa97021efefe16d85b87f214df0c Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4482.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4483.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4483.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..54390ce2dea0b82c62e820bdeb6a0090f1beb9c8 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4483.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4484.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4484.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..4aec4669efbd8792f5ccfc3630c6326c90d7ac83 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4484.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4485.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4485.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..9f6e5c1c1eb7f3c674d1ca1d63f8457d44f9c130 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4485.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4486.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4486.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..79a17e8fbb1a9460319276d21988c3bb6cf945b2 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9649/4486.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4478.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4478.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..d4cbd26ae09532b77c78e3ebbcdecc83db2ff336 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4478.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4479.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4479.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..4fb2631dbceef6adb356d6d79bc72f52f7407715 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4479.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4480.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4480.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..ae5c77bf821dad770c50785f8a390eb54497327d Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4480.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4481.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4481.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..f556b3fb7c941b2aba26eb94614043080564a81e Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4481.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4482.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4482.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..b8e49655df89929a9e927935dd620438864d4099 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4482.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4483.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4483.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..dd8ce3c003d5c356b160e365d1f9442acc7cd021 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4483.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4484.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4484.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..d2b5b5a949664871d9a0dba8b8ec479f888df06b Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4484.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4485.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4485.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..a5ab80c6998f2cf92863ec32b272a0239d08453f Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4485.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4486.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4486.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..d94a018f168631a68ca99862ca799e34107c0321 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9650/4486.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4476.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4476.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..3bd53edfbee712bcde011448b0df77f66831d47c Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4476.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4477.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4477.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..35c81205b14b006d22bf78ff8082b5815432ab91 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4477.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4478.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4478.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..0114ac392f8f16c946fd4acdabed5f27de15e572 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4478.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4479.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4479.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..90df50e322e27c02203ed9d3a7a18aa747ce1982 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4479.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4480.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4480.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..aec0b79eb775c6dd736ec9651f0539c4659584ad Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4480.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4481.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4481.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..c4ba6f590dc4b09dd5cf243b58ad2eabfa751591 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4481.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4482.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4482.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..0a5da6c6c178263ddd0e505a6fbab7e6fd5c81e3 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4482.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4483.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4483.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..41e5d3fab3457a8e3f8c086eda504d7699594449 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9651/4483.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4475.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4475.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..b22416f074fb89a1ee1070d0b4a8983f3a57c30f Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4475.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4476.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4476.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..eec5fc398c7b4b5ff417c62dade99d2f8cf21a40 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4476.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4477.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4477.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..d7d74c1c730c430c9cee646c7dd5d0578782d8b6 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4477.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4478.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4478.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..5dbb733c70289a686b2fdd21c8c58dbc7002e4d7 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4478.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4479.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4479.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..39dd7d16edbc79bc36ff44514b6c041a57e0dd1c Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4479.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4480.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4480.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..78f9e27780830bb0005c59c1f58be8d56f962411 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4480.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4481.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4481.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..c0a27a6e26418642b808528d52f1a426e72fed33 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4481.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4482.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4482.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..1ecf951933738281c93e6ffabd088778a9e262b4 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9652/4482.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4473.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4473.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..a1cd0b3926651b63205a1473865ad0d9c06c9cee Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4473.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4474.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4474.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..d21351b983814071e6768810f1b2e3ef63ccda26 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4474.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4475.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4475.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..83c98e163295cb25b6ee5a284c90b9b408882817 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4475.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4476.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4476.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..bb70923dd24eb6a864fb6e9014973be05028c164 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4476.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4477.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4477.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..a7f2447ca3b2e86ee551e598c299193ce893c06b Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4477.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4478.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4478.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..bfe9e22ae4ec94b0327d0ff86ece40cfe2be7e4c Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4478.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4479.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4479.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..5aa96244a8911a9c97a0de4abfe6313f2bf495dc Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4479.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4480.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4480.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..4435b3580ac6ee4e3134350b7deb89e613051190 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4480.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4481.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4481.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..4fdbe8352390f2956cb0996c166317b2e280c02e Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4481.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4482.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4482.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..57e66b8523d7a42ed3c2d5adb7f0913ffa6fd96a Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9653/4482.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4472.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4472.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..6cf70155d3d8a14a8094f80e37c5c5b4a0e8c3c4 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4472.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4473.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4473.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..c207409b70c4f63c4b253d621e0c530dfb2d4330 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4473.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4474.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4474.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..de51bd13f936d1f1f3113513e7060148ff9c6547 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4474.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4475.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4475.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..e1dc927b942ca51ab2fbd99ed1218072c6111ee6 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4475.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4476.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4476.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..d38bb701649ac6c1a41cde7861d75f832ae9b534 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4476.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4477.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4477.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..8d5ab5c1802e3de5c5ded2597140d3d579a153c8 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4477.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4478.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4478.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..35594e2e18f57f55a97fc6797626f8a214450567 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4478.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4479.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4479.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..12a95d3fc62c3d7aaf67bb38f9a99eae27c6211f Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4479.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4480.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4480.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..c7e05099278643bf2153dac24056975147fc5a9c Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4480.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4481.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4481.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..aee3f4a30122341497625d30434d0785f323d5a9 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9654/4481.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4470.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4470.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..5e5b0d6f2c0c4b9551716febd224153b600e0ed7 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4470.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4471.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4471.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..37c6a734f1a59d136f3dbe64909878f3002e586f Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4471.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4472.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4472.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..83f27cfe20fc77a408898c12395c24585d8acb24 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4472.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4473.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4473.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..0e5333104fe866901f2e35e4060cb11c5a27515e Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4473.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4474.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4474.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..dfae1bc7a32a0093b528eaeff8d36e41058ddbee Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4474.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4477.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4477.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..6ffa424a6082538907d8862a74ec168513c3d2cd Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4477.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4478.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4478.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..514744673b8543bb411d6361c8ae2235aa90b25a Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4478.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4479.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4479.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..483d8cd18274d22877c210b4c767e7ab98f931fb Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4479.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4480.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4480.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..0a0c2fbbdbb1f0259d4e861b88d55261e0381ca2 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9655/4480.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4470.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4470.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..eb42d7651fc3f95ff982d0e52e277e5a0843c1be Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4470.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4471.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4471.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..24bc74ff52bc16558b8c83e9013229a9d4878b82 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4471.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4472.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4472.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..741c8f1dcb09bfda323c5172005e21e5cfb2fde1 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4472.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4479.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4479.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..2b34f0220178001639b5cfd09c3eeb1a822193d8 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4479.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4480.b3dm b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4480.b3dm new file mode 100644 index 0000000000000000000000000000000000000000..6d7dda1f5382093c11a74eda4db3874b1c6d32a3 Binary files /dev/null and b/3DGeoVolumes/collections/NewYork/3dtiles/14/9656/4480.b3dm differ diff --git a/3DGeoVolumes/collections/NewYork/3dtiles/tileset.json b/3DGeoVolumes/collections/NewYork/3dtiles/tileset.json new file mode 100644 index 0000000000000000000000000000000000000000..4f03d851cfb312099ba71b08d714b159729bf9bc --- /dev/null +++ b/3DGeoVolumes/collections/NewYork/3dtiles/tileset.json @@ -0,0 +1 @@ +{"asset":{"version":"1.0","extras":{"ion":{"georeferenced":true,"movable":false}}},"properties":{"Height":{"maximum":547.7591871983744,"minimum":-11.892070104139751},"Latitude":{"maximum":40.880256294183646,"minimum":40.700475291581974},"Longitude":{"maximum":-73.9068954348699,"minimum":-74.01900887327089}},"geometricError":740.0197559011849,"root":{"boundingVolume":{"region":[-1.325359400733193,0.6872233929727672,-1.2762720155208527,0.7363107781851077,0,547.6909683533274]},"geometricError":740.0197559011849,"refine":"ADD","children":[{"boundingVolume":{"region":[-1.325359400733193,0.6872233929727672,-1.2762720155208527,0.7363107781851077,0,547.6909683533274]},"geometricError":740.0197559011849,"children":[{"boundingVolume":{"region":[-1.300815708127022,0.6872233929727672,-1.2762720155208527,0.7117670855789375,0,547.6909683533274]},"geometricError":563.8721715009725,"children":[{"boundingVolume":{"region":[-1.300815708127022,0.6994952392758524,-1.2885438618239373,0.7117670855789375,0,547.6909683533274]},"geometricError":563.8721715009725,"children":[{"boundingVolume":{"region":[-1.2946797849754788,0.705631162427395,-1.2885438618239373,0.7117670855789375,0,547.6909683533274]},"geometricError":563.8721715009725,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.7086991240031663,-1.2885438618239373,0.7117670855789375,0,443.6754133562039]},"geometricError":484.0702559061598,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.710233104791052,-1.2885438618239373,0.7117670855789375,0,29.74235060939729]},"geometricError":110.2081773190492,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7110000951849947,-1.2893108522178807,0.7117670855789375,0,29.74235060939729]},"geometricError":110.2081773190492,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7113835903819661,-1.2896943474148514,0.7117670855789375,0,29.74235060939729]},"geometricError":110.2081773190492,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7115753379804518,-1.2898860950133368,0.7117670855789375,0,29.74235060939729]},"geometricError":0,"content":{"uri":"14/9656/4480.b3dm","boundingVolume":{"region":[-1.290084270705168,0.7117051614910668,-1.290068490312515,0.7117576876196845,0,29.74235060939729]}}}]}]}]},{"boundingVolume":{"region":[-1.291611823399709,0.710233104791052,-1.2900778426118222,0.7117670855789375,0,443.6754133562039]},"geometricError":484.0702559061598,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.710233104791052,-1.2908448330057656,0.7110000951849947,0,174.6031070697304]},"geometricError":345.4512463403885,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.710233104791052,-1.2912283282027381,0.7106165999880234,0,174.6031070697304]},"geometricError":345.4512463403885,"children":[{"boundingVolume":{"region":[-1.2914200758012235,0.7104248523895377,-1.2912283282027381,0.7106165999880234,0,78.09534162829488]},"geometricError":0,"content":{"uri":"14/9649/4486.b3dm","boundingVolume":{"region":[-1.291421884902533,0.710510245248663,-1.291215014850406,0.7106242635030114,0,78.09534162829488]}}},{"boundingVolume":{"region":[-1.291611823399709,0.7104248523895377,-1.2914200758012235,0.7106165999880234,0,174.6031070697304]},"geometricError":0,"content":{"uri":"14/9648/4486.b3dm","boundingVolume":{"region":[-1.291618807254679,0.710423573538172,-1.291416006946582,0.7106208198147442,0,174.6031070697304]}}}]},{"boundingVolume":{"region":[-1.2912283282027381,0.710233104791052,-1.2908448330057656,0.7106165999880234,0,71.63317223375581]},"geometricError":143.2715369187961,"children":[{"boundingVolume":{"region":[-1.2912283282027381,0.7104248523895377,-1.2910365806042527,0.7106165999880234,0,71.63317223375581]},"geometricError":0,"content":{"uri":"14/9650/4486.b3dm","boundingVolume":{"region":[-1.291235670426816,0.7105288206790966,-1.29112575967513,0.7106203441366304,0,71.63317223375581]}}}]},{"boundingVolume":{"region":[-1.2912283282027381,0.7106165999880234,-1.2908448330057656,0.7110000951849947,0,116.2858801853736]},"geometricError":294.8558430480663,"children":[{"boundingVolume":{"region":[-1.2912283282027381,0.7106165999880234,-1.2910365806042527,0.710808347586509,0,76.82615125213479]},"geometricError":0,"content":{"uri":"14/9650/4485.b3dm","boundingVolume":{"region":[-1.291235464594426,0.7106144063856105,-1.291064820947236,0.7108137222663214,0,76.82615125213479]}}},{"boundingVolume":{"region":[-1.2912283282027381,0.710808347586509,-1.2910365806042527,0.7110000951849947,0,116.2858801853736]},"geometricError":0,"content":{"uri":"14/9650/4484.b3dm","boundingVolume":{"region":[-1.291231150388053,0.7107997650548464,-1.291048542909635,0.7110122007459323,0,116.2858801853736]}}}]},{"boundingVolume":{"region":[-1.291611823399709,0.7106165999880234,-1.2912283282027381,0.7110000951849947,0,136.2360983448311]},"geometricError":207.9286942364276,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.7106165999880234,-1.2914200758012235,0.710808347586509,0,108.5260236203511]},"geometricError":0,"content":{"uri":"14/9648/4485.b3dm","boundingVolume":{"region":[-1.291618009706854,0.7106136444835973,-1.291416944116504,0.7108109691710144,0,108.5260236203511]}}},{"boundingVolume":{"region":[-1.2914200758012235,0.7106165999880234,-1.2912283282027381,0.710808347586509,0,86.6399919213512]},"geometricError":0,"content":{"uri":"14/9649/4485.b3dm","boundingVolume":{"region":[-1.291424822707044,0.7106128360107217,-1.291226410299563,0.7108120855589061,0,86.6399919213512]}}},{"boundingVolume":{"region":[-1.2914200758012235,0.710808347586509,-1.2912283282027381,0.7110000951849947,0,136.2360983448311]},"geometricError":0,"content":{"uri":"14/9649/4484.b3dm","boundingVolume":{"region":[-1.291428319743017,0.7108062417078116,-1.291222705051698,0.7110037455240686,0,136.2360983448311]}}},{"boundingVolume":{"region":[-1.291611823399709,0.710808347586509,-1.2914200758012235,0.7110000951849947,0,113.8029748344472]},"geometricError":0,"content":{"uri":"14/9648/4484.b3dm","boundingVolume":{"region":[-1.291614100905681,0.7108037197008112,-1.291414541261866,0.7110031316298592,0,113.8029748344472]}}}]}]},{"boundingVolume":{"region":[-1.2908448330057656,0.7110000951849947,-1.2900778426118222,0.7117670855789375,0,162.494996063142]},"geometricError":404.8164392638009,"children":[{"boundingVolume":{"region":[-1.2908448330057656,0.7110000951849947,-1.290461337808793,0.7113835903819661,0,72.4315671716928]},"geometricError":180.6628108740191,"children":[{"boundingVolume":{"region":[-1.2906530854072784,0.7111918427834805,-1.290461337808793,0.7113835903819661,0,50.44437334880854]},"geometricError":0,"content":{"uri":"14/9653/4482.b3dm","boundingVolume":{"region":[-1.290639446428861,0.7113366661475248,-1.290544131094056,0.7113830463325966,0,50.44437334880854]}}},{"boundingVolume":{"region":[-1.2908448330057656,0.7111918427834805,-1.2906530854072784,0.7113835903819661,0,72.4315671716928]},"geometricError":0,"content":{"uri":"14/9652/4482.b3dm","boundingVolume":{"region":[-1.29084488593278,0.7112081733301616,-1.290704240608933,0.7113872887578452,0,72.4315671716928]}}}]},{"boundingVolume":{"region":[-1.290461337808793,0.7113835903819661,-1.2900778426118222,0.7117670855789375,0,67.82270541614443]},"geometricError":178.7162675136195,"children":[{"boundingVolume":{"region":[-1.290461337808793,0.7113835903819661,-1.2902695902103076,0.7115753379804518,0,67.82270541614443]},"geometricError":0,"content":{"uri":"14/9654/4481.b3dm","boundingVolume":{"region":[-1.290466893624511,0.7114517077815876,-1.290377336611101,0.7115735415976958,0,67.82270541614443]}}},{"boundingVolume":{"region":[-1.2902695902103076,0.7115753379804518,-1.2900778426118222,0.7117670855789375,0,32.50343427622218]},"geometricError":0,"content":{"uri":"14/9655/4480.b3dm","boundingVolume":{"region":[-1.290203560009345,0.7116894627950798,-1.290076324976198,0.7117675761747257,0,32.50343427622218]}}},{"boundingVolume":{"region":[-1.290461337808793,0.7115753379804518,-1.2902695902103076,0.7117670855789375,0,34.25443623320204]},"geometricError":0,"content":{"uri":"14/9654/4480.b3dm","boundingVolume":{"region":[-1.290454389031349,0.7115765401488955,-1.290353718033088,0.7117048090088367,0,34.25443623320204]}}}]},{"boundingVolume":{"region":[-1.2908448330057656,0.7113835903819661,-1.290461337808793,0.7117670855789375,0,162.494996063142]},"geometricError":404.8164392638009,"children":[{"boundingVolume":{"region":[-1.2908448330057656,0.7113835903819661,-1.2906530854072784,0.7115753379804518,0,162.494996063142]},"geometricError":0,"content":{"uri":"14/9652/4481.b3dm","boundingVolume":{"region":[-1.290851684272523,0.7113826300470949,-1.290646272491775,0.7115806358107565,0,162.494996063142]}}},{"boundingVolume":{"region":[-1.2906530854072784,0.7113835903819661,-1.290461337808793,0.7115753379804518,0,65.547397680504]},"geometricError":0,"content":{"uri":"14/9653/4481.b3dm","boundingVolume":{"region":[-1.290661144282276,0.7113712356715385,-1.29044722395943,0.7115763936032243,0,65.547397680504]}}},{"boundingVolume":{"region":[-1.2906530854072784,0.7115753379804518,-1.290461337808793,0.7117670855789375,0,143.3619299328811]},"geometricError":0,"content":{"uri":"14/9653/4480.b3dm","boundingVolume":{"region":[-1.290657965369472,0.7115539878723116,-1.290506886401771,0.7117697262219645,0,143.3619299328811]}}},{"boundingVolume":{"region":[-1.2908448330057656,0.7115753379804518,-1.2906530854072784,0.7117670855789375,0,149.324317717821]},"geometricError":0,"content":{"uri":"14/9652/4480.b3dm","boundingVolume":{"region":[-1.290847840383804,0.7115688604376444,-1.290649202946043,0.7117698900737741,0,149.324317717821]}}}]}]},{"boundingVolume":{"region":[-1.291611823399709,0.7110000951849947,-1.2908448330057656,0.7117670855789375,0,443.6754133562039]},"geometricError":484.0702559061598,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.7110000951849947,-1.2912283282027381,0.7113835903819661,0,443.6754133562039]},"geometricError":484.0702559061598,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.7110000951849947,-1.2914200758012235,0.7111918427834805,0,112.7860327246081]},"geometricError":0,"content":{"uri":"14/9648/4483.b3dm","boundingVolume":{"region":[-1.291624770321953,0.7109966894516024,-1.291414483678616,0.7111963544955399,0,112.7860327246081]}}},{"boundingVolume":{"region":[-1.2914200758012235,0.7110000951849947,-1.2912283282027381,0.7111918427834805,0,203.4208787217334]},"geometricError":0,"content":{"uri":"14/9649/4483.b3dm","boundingVolume":{"region":[-1.291424875131602,0.7109982429780091,-1.291223327592661,0.7111952086442578,0,203.4208787217334]}}},{"boundingVolume":{"region":[-1.2914200758012235,0.7111918427834805,-1.2912283282027381,0.7113835903819661,0,443.6754133562039]},"geometricError":0,"content":{"uri":"14/9649/4482.b3dm","boundingVolume":{"region":[-1.291427778214692,0.7111854254821752,-1.291220553202084,0.7113868484620794,0,443.6754133562039]}}},{"boundingVolume":{"region":[-1.291611823399709,0.7111918427834805,-1.2914200758012235,0.7113835903819661,0,195.3562769125744]},"geometricError":0,"content":{"uri":"14/9648/4482.b3dm","boundingVolume":{"region":[-1.291634288425658,0.7111879160136042,-1.291408688679729,0.7113863295452536,0,195.3562769125744]}}}]},{"boundingVolume":{"region":[-1.2912283282027381,0.7110000951849947,-1.2908448330057656,0.7113835903819661,0,327.2390242052346]},"geometricError":346.590479252845,"children":[{"boundingVolume":{"region":[-1.2912283282027381,0.7110000951849947,-1.2910365806042527,0.7111918427834805,0,170.1058367405325]},"geometricError":0,"content":{"uri":"14/9650/4483.b3dm","boundingVolume":{"region":[-1.291235248633703,0.7109912386422818,-1.291033910824614,0.7111978782519566,0,170.1058367405325]}}},{"boundingVolume":{"region":[-1.2910365806042527,0.7110000951849947,-1.2908448330057656,0.7111918427834805,0,96.61831848977624]},"geometricError":0,"content":{"uri":"14/9651/4483.b3dm","boundingVolume":{"region":[-1.291042345805582,0.7111392433932026,-1.290996159270315,0.7111915896940125,0,96.61831848977624]}}},{"boundingVolume":{"region":[-1.2910365806042527,0.7111918427834805,-1.2908448330057656,0.7113835903819661,0,283.7226389497704]},"geometricError":0,"content":{"uri":"14/9651/4482.b3dm","boundingVolume":{"region":[-1.291041212307375,0.7111896247589894,-1.290843994393689,0.7113857746108925,0,283.7226389497704]}}},{"boundingVolume":{"region":[-1.2912283282027381,0.7111918427834805,-1.2910365806042527,0.7113835903819661,0,327.2390242052346]},"geometricError":0,"content":{"uri":"14/9650/4482.b3dm","boundingVolume":{"region":[-1.291233312585803,0.7111878965745563,-1.291032389667871,0.7113908504354426,0,327.2390242052346]}}}]},{"boundingVolume":{"region":[-1.2912283282027381,0.7113835903819661,-1.2908448330057656,0.7117670855789375,0,301.6331505971878]},"geometricError":446.045330642158,"children":[{"boundingVolume":{"region":[-1.2912283282027381,0.7113835903819661,-1.2910365806042527,0.7115753379804518,0,301.6331505971878]},"geometricError":0,"content":{"uri":"14/9650/4481.b3dm","boundingVolume":{"region":[-1.291239547815166,0.7113818088578133,-1.291031536130226,0.7115768456389082,0,301.6331505971878]}}},{"boundingVolume":{"region":[-1.2910365806042527,0.7113835903819661,-1.2908448330057656,0.7115753379804518,0,247.8674732581905]},"geometricError":0,"content":{"uri":"14/9651/4481.b3dm","boundingVolume":{"region":[-1.291040665002061,0.7113773119312305,-1.290837801482476,0.7115798805649023,0,247.8674732581905]}}},{"boundingVolume":{"region":[-1.2910365806042527,0.7115753379804518,-1.2908448330057656,0.7117670855789375,0,131.3426951544566]},"geometricError":0,"content":{"uri":"14/9651/4480.b3dm","boundingVolume":{"region":[-1.291028716137558,0.7115733085872175,-1.290839290193981,0.7117686100321937,0,131.3426951544566]}}},{"boundingVolume":{"region":[-1.2912283282027381,0.7115753379804518,-1.2910365806042527,0.7117670855789375,0,170.5183366239251]},"geometricError":0,"content":{"uri":"14/9650/4480.b3dm","boundingVolume":{"region":[-1.291230434418998,0.7115711858141315,-1.291035684276822,0.7117759423472267,0,170.5183366239251]}}}]},{"boundingVolume":{"region":[-1.291611823399709,0.7113835903819661,-1.2912283282027381,0.7117670855789375,0,237.7415798788963]},"geometricError":340.1094291572558,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.7113835903819661,-1.2914200758012235,0.7115753379804518,0,198.8565746366315]},"geometricError":0,"content":{"uri":"14/9648/4481.b3dm","boundingVolume":{"region":[-1.29161634732402,0.7113781393517078,-1.291413902514705,0.7115802390216013,0,198.8565746366315]}}},{"boundingVolume":{"region":[-1.2914200758012235,0.7113835903819661,-1.2912283282027381,0.7115753379804518,0,237.7415798788963]},"geometricError":0,"content":{"uri":"14/9649/4481.b3dm","boundingVolume":{"region":[-1.291426962947114,0.7113793977856175,-1.291220237900102,0.7115785139207829,0,237.7415798788963]}}},{"boundingVolume":{"region":[-1.2914200758012235,0.7115753379804518,-1.2912283282027381,0.7117670855789375,0,183.4404053953036]},"geometricError":0,"content":{"uri":"14/9649/4480.b3dm","boundingVolume":{"region":[-1.291430850903286,0.7115693760122979,-1.291223973111336,0.7117737006356408,0,183.4404053953036]}}},{"boundingVolume":{"region":[-1.291611823399709,0.7115753379804518,-1.2914200758012235,0.7117670855789375,0,39.56761353567326]},"geometricError":0,"content":{"uri":"14/9648/4480.b3dm","boundingVolume":{"region":[-1.291476199583348,0.7115722981866527,-1.291412962781946,0.7116415056902122,0,39.56761353567326]}}}]}]}]}]},{"boundingVolume":{"region":[-1.2946797849754788,0.7086991240031663,-1.291611823399709,0.7117670855789375,0,547.6909683533274]},"geometricError":563.8721715009725,"children":[{"boundingVolume":{"region":[-1.2931458041875938,0.710233104791052,-1.291611823399709,0.7117670855789375,0,547.6909683533274]},"geometricError":563.8721715009725,"children":[{"boundingVolume":{"region":[-1.2923788137936505,0.710233104791052,-1.291611823399709,0.7110000951849947,0,547.6909683533274]},"geometricError":563.8721715009725,"children":[{"boundingVolume":{"region":[-1.2919953185966797,0.710233104791052,-1.291611823399709,0.7106165999880234,0,547.6909683533274]},"geometricError":563.8721715009725,"children":[{"boundingVolume":{"region":[-1.2919953185966797,0.710233104791052,-1.2918035709981943,0.7104248523895377,0,12.47109940117323]},"geometricError":0,"content":{"uri":"14/9646/4487.b3dm","boundingVolume":{"region":[-1.291849872805475,0.7103688064267114,-1.291802006266018,0.7104142916219145,0,12.47109940117323]}}},{"boundingVolume":{"region":[-1.2918035709981943,0.710233104791052,-1.291611823399709,0.7104248523895377,0,220.5612784438708]},"geometricError":0,"content":{"uri":"14/9647/4487.b3dm","boundingVolume":{"region":[-1.291802944237395,0.7103573144863446,-1.291647887880479,0.7104296705992981,0,220.5612784438708]}}},{"boundingVolume":{"region":[-1.2918035709981943,0.7104248523895377,-1.291611823399709,0.7106165999880234,0,547.6909683533274]},"geometricError":0,"content":{"uri":"14/9647/4486.b3dm","boundingVolume":{"region":[-1.291813218119574,0.7104205961636091,-1.291605925802534,0.7106193946543067,0,547.6909683533274]}}},{"boundingVolume":{"region":[-1.2919953185966797,0.7104248523895377,-1.2918035709981943,0.7106165999880234,0,199.5363420996507]},"geometricError":0,"content":{"uri":"14/9646/4486.b3dm","boundingVolume":{"region":[-1.29187544264487,0.7104235706409038,-1.291797219136396,0.7106184414278951,0,199.5363420996507]}}}]},{"boundingVolume":{"region":[-1.2919953185966797,0.7106165999880234,-1.291611823399709,0.7110000951849947,0,182.342954419289]},"geometricError":401.6343578515273,"children":[{"boundingVolume":{"region":[-1.2919953185966797,0.7106165999880234,-1.2918035709981943,0.710808347586509,0,110.1284985709776]},"geometricError":0,"content":{"uri":"14/9646/4485.b3dm","boundingVolume":{"region":[-1.291835176711274,0.7106156422694179,-1.291797147533161,0.7106635956652401,0,110.1284985709776]}}},{"boundingVolume":{"region":[-1.2918035709981943,0.7106165999880234,-1.291611823399709,0.710808347586509,0,182.342954419289]},"geometricError":0,"content":{"uri":"14/9647/4485.b3dm","boundingVolume":{"region":[-1.291807522967998,0.7106103685940853,-1.291606662959737,0.7108132357115023,0,182.342954419289]}}},{"boundingVolume":{"region":[-1.2918035709981943,0.710808347586509,-1.291611823399709,0.7110000951849947,0,85.82464507414171]},"geometricError":0,"content":{"uri":"14/9647/4484.b3dm","boundingVolume":{"region":[-1.291801893384584,0.7108047747456219,-1.291609289316247,0.711003029564907,0,85.82464507414171]}}},{"boundingVolume":{"region":[-1.2919953185966797,0.710808347586509,-1.2918035709981943,0.7110000951849947,0,40.35407104602649]},"geometricError":0,"content":{"uri":"14/9646/4484.b3dm","boundingVolume":{"region":[-1.291806693480475,0.7108095795089697,-1.291802537108842,0.7108150734684575,0,40.35407104602649]}}}]}]},{"boundingVolume":{"region":[-1.2923788137936505,0.7110000951849947,-1.291611823399709,0.7117670855789375,0,91.20598651011684]},"geometricError":336.0061708068685,"children":[{"boundingVolume":{"region":[-1.2919953185966797,0.7110000951849947,-1.291611823399709,0.7113835903819661,0,91.20598651011684]},"geometricError":336.0061708068685,"children":[{"boundingVolume":{"region":[-1.2918035709981943,0.7110000951849947,-1.291611823399709,0.7111918427834805,0,83.53970162760181]},"geometricError":0,"content":{"uri":"14/9647/4483.b3dm","boundingVolume":{"region":[-1.291757792996651,0.7109978446827347,-1.291609647658485,0.7111937113493773,0,83.53970162760181]}}},{"boundingVolume":{"region":[-1.2918035709981943,0.7111918427834805,-1.291611823399709,0.7113835903819661,0,91.20598651011684]},"geometricError":0,"content":{"uri":"14/9647/4482.b3dm","boundingVolume":{"region":[-1.291699377096638,0.711187355120627,-1.291609252987557,0.7113937998929066,0,91.20598651011684]}}}]},{"boundingVolume":{"region":[-1.2919953185966797,0.7113835903819661,-1.291611823399709,0.7117670855789375,0,7.156440040990883]},"geometricError":27.04310634758166,"children":[{"boundingVolume":{"region":[-1.2918035709981943,0.7113835903819661,-1.291611823399709,0.7115753379804518,0,7.156440040990883]},"geometricError":0,"content":{"uri":"14/9647/4481.b3dm","boundingVolume":{"region":[-1.291614439144327,0.7113863445643636,-1.291610413348209,0.7113921388434316,0,7.156440040990883]}}}]}]}]}]}]}]}]},{"boundingVolume":{"region":[-1.300815708127022,0.7117670855789375,-1.2762720155208527,0.7363107781851077,0,166.3668766735693]},"geometricError":740.0197559011849,"children":[{"boundingVolume":{"region":[-1.300815708127022,0.7117670855789375,-1.2885438618239373,0.7240389318820226,0,166.3668766735693]},"geometricError":740.0197559011849,"children":[{"boundingVolume":{"region":[-1.2946797849754788,0.7117670855789375,-1.2885438618239373,0.7179030087304801,0,166.3668766735693]},"geometricError":740.0197559011849,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.7117670855789375,-1.2885438618239373,0.7148350471547088,0,166.3668766735693]},"geometricError":740.0197559011849,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.7117670855789375,-1.2900778426118222,0.7133010663668231,0,166.3668766735693]},"geometricError":740.0197559011849,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.7117670855789375,-1.2908448330057656,0.7125340759728803,0,127.1553730967183]},"geometricError":255.7826101448336,"children":[{"boundingVolume":{"region":[-1.291611823399709,0.7117670855789375,-1.2912283282027381,0.712150580775909,0,71.5334415945622]},"geometricError":91.52723746635851,"children":[{"boundingVolume":{"region":[-1.2914200758012235,0.7117670855789375,-1.2912283282027381,0.7119588331774233,0,71.5334415945622]},"geometricError":0,"content":{"uri":"14/9649/4479.b3dm","boundingVolume":{"region":[-1.291335893529751,0.7117655801126845,-1.29122569351971,0.711874034263449,0,71.5334415945622]}}}]},{"boundingVolume":{"region":[-1.2912283282027381,0.7117670855789375,-1.2908448330057656,0.712150580775909,0,127.1553730967183]},"geometricError":255.7826101448336,"children":[{"boundingVolume":{"region":[-1.2912283282027381,0.7117670855789375,-1.2910365806042527,0.7119588331774233,0,116.2312318771745]},"geometricError":0,"content":{"uri":"14/9650/4479.b3dm","boundingVolume":{"region":[-1.291231300949673,0.7117638310059682,-1.291030674637564,0.7119624638061202,0,116.2312318771745]}}},{"boundingVolume":{"region":[-1.2910365806042527,0.7117670855789375,-1.2908448330057656,0.7119588331774233,0,120.3302742372877]},"geometricError":0,"content":{"uri":"14/9651/4479.b3dm","boundingVolume":{"region":[-1.291045313676588,0.7117824926264927,-1.290857169432887,0.7119615574149935,0,120.3302742372877]}}},{"boundingVolume":{"region":[-1.2910365806042527,0.7119588331774233,-1.2908448330057656,0.712150580775909,0,127.1553730967183]},"geometricError":0,"content":{"uri":"14/9651/4478.b3dm","boundingVolume":{"region":[-1.291039962726677,0.7119561559750687,-1.290840925653787,0.7121523464259527,0,127.1553730967183]}}},{"boundingVolume":{"region":[-1.2912283282027381,0.7119588331774233,-1.2910365806042527,0.712150580775909,0,102.664551348688]},"geometricError":0,"content":{"uri":"14/9650/4478.b3dm","boundingVolume":{"region":[-1.291161408100481,0.7119559092413498,-1.291032091528183,0.712106318925639,0,102.664551348688]}}}]},{"boundingVolume":{"region":[-1.2912283282027381,0.712150580775909,-1.2908448330057656,0.7125340759728803,0,121.2620829819604]},"geometricError":226.9849393112548,"children":[{"boundingVolume":{"region":[-1.2910365806042527,0.712150580775909,-1.2908448330057656,0.7123423283743946,0,121.2620829819604]},"geometricError":0,"content":{"uri":"14/9651/4477.b3dm","boundingVolume":{"region":[-1.291005236687719,0.7121480573120582,-1.290833011739654,0.7123458942856149,0,121.2620829819604]}}},{"boundingVolume":{"region":[-1.2910365806042527,0.7123423283743946,-1.2908448330057656,0.7125340759728803,0,81.71637208515322]},"geometricError":0,"content":{"uri":"14/9651/4476.b3dm","boundingVolume":{"region":[-1.290885525468493,0.7123405723315859,-1.290841559707159,0.7124201653490547,0,81.71637208515322]}}}]}]},{"boundingVolume":{"region":[-1.2908448330057656,0.7117670855789375,-1.2900778426118222,0.7125340759728803,0,166.3668766735693]},"geometricError":269.595234828273,"children":[{"boundingVolume":{"region":[-1.2908448330057656,0.7117670855789375,-1.290461337808793,0.712150580775909,0,166.3668766735693]},"geometricError":250.6708809869146,"children":[{"boundingVolume":{"region":[-1.2908448330057656,0.7117670855789375,-1.2906530854072784,0.7119588331774233,0,166.3668766735693]},"geometricError":0,"content":{"uri":"14/9652/4479.b3dm","boundingVolume":{"region":[-1.290848607218198,0.7117620452052434,-1.290649885820684,0.7119606567518652,0,166.3668766735693]}}},{"boundingVolume":{"region":[-1.2906530854072784,0.7117670855789375,-1.290461337808793,0.7119588331774233,0,144.4786247792966]},"geometricError":0,"content":{"uri":"14/9653/4479.b3dm","boundingVolume":{"region":[-1.290656588605912,0.7117637119346042,-1.290456247829944,0.7119605024472988,0,144.4786247792966]}}},{"boundingVolume":{"region":[-1.2906530854072784,0.7119588331774233,-1.290461337808793,0.712150580775909,0,106.8194143115867]},"geometricError":0,"content":{"uri":"14/9653/4478.b3dm","boundingVolume":{"region":[-1.290660490872179,0.7119556547239984,-1.290456448747871,0.712153419151801,0,106.8194143115867]}}},{"boundingVolume":{"region":[-1.2908448330057656,0.7119588331774233,-1.2906530854072784,0.712150580775909,0,86.8981962863899]},"geometricError":0,"content":{"uri":"14/9652/4478.b3dm","boundingVolume":{"region":[-1.290846938741512,0.7119539843629199,-1.290646697270726,0.7121534248399238,0,86.8981962863899]}}}]},{"boundingVolume":{"region":[-1.290461337808793,0.7117670855789375,-1.2900778426118222,0.712150580775909,0,109.1796598461603]},"geometricError":259.7029657919441,"children":[{"boundingVolume":{"region":[-1.290461337808793,0.7117670855789375,-1.2902695902103076,0.7119588331774233,0,91.18412915409324]},"geometricError":0,"content":{"uri":"14/9654/4479.b3dm","boundingVolume":{"region":[-1.290466367753268,0.7117979073156042,-1.290267755814076,0.7119573969020774,0,91.18412915409324]}}},{"boundingVolume":{"region":[-1.2902695902103076,0.7117670855789375,-1.2900778426118222,0.7119588331774233,0,32.28374495780349]},"geometricError":0,"content":{"uri":"14/9655/4479.b3dm","boundingVolume":{"region":[-1.290273786278874,0.7117660062752243,-1.290075744036816,0.7119617032740138,0,32.28374495780349]}}},{"boundingVolume":{"region":[-1.2902695902103076,0.7119588331774233,-1.2900778426118222,0.712150580775909,0,22.30459766479121]},"geometricError":0,"content":{"uri":"14/9655/4478.b3dm","boundingVolume":{"region":[-1.290258226724002,0.7119582144585316,-1.290078054306142,0.7121562461234006,0,22.30459766479121]}}},{"boundingVolume":{"region":[-1.290461337808793,0.7119588331774233,-1.2902695902103076,0.712150580775909,0,109.1796598461603]},"geometricError":0,"content":{"uri":"14/9654/4478.b3dm","boundingVolume":{"region":[-1.290466161982195,0.711955669407554,-1.290309645921718,0.712160255575498,0,109.1796598461603]}}}]},{"boundingVolume":{"region":[-1.290461337808793,0.712150580775909,-1.2900778426118222,0.7125340759728803,0,80.87149255864558]},"geometricError":269.595234828273,"children":[{"boundingVolume":{"region":[-1.290461337808793,0.712150580775909,-1.2902695902103076,0.7123423283743946,0,60.39559905222743]},"geometricError":0,"content":{"uri":"14/9654/4477.b3dm","boundingVolume":{"region":[-1.290466198497661,0.712149015906572,-1.290268111541479,0.7123433409951715,0,60.39559905222743]}}},{"boundingVolume":{"region":[-1.2902695902103076,0.712150580775909,-1.2900778426118222,0.7123423283743946,0,60.57582774234337]},"geometricError":0,"content":{"uri":"14/9655/4477.b3dm","boundingVolume":{"region":[-1.290274135041172,0.7121496910659777,-1.290093536193817,0.7122975793712414,0,60.57582774234337]}}},{"boundingVolume":{"region":[-1.290461337808793,0.7123423283743946,-1.2902695902103076,0.7125340759728803,0,80.87149255864558]},"geometricError":0,"content":{"uri":"14/9654/4476.b3dm","boundingVolume":{"region":[-1.290466194374196,0.712341913856776,-1.290397096409402,0.7125371529878889,0,80.87149255864558]}}}]},{"boundingVolume":{"region":[-1.2908448330057656,0.712150580775909,-1.290461337808793,0.7125340759728803,0,128.8566357569076]},"geometricError":262.0321806519117,"children":[{"boundingVolume":{"region":[-1.2908448330057656,0.712150580775909,-1.2906530854072784,0.7123423283743946,0,90.48624500100495]},"geometricError":0,"content":{"uri":"14/9652/4477.b3dm","boundingVolume":{"region":[-1.290852849408367,0.7121469519401235,-1.290649755648291,0.7123471478624791,0,90.48624500100495]}}},{"boundingVolume":{"region":[-1.2906530854072784,0.712150580775909,-1.290461337808793,0.7123423283743946,0,90.1231352280626]},"geometricError":0,"content":{"uri":"14/9653/4477.b3dm","boundingVolume":{"region":[-1.290664252685552,0.7121447600506765,-1.29045705328881,0.7123485551215821,0,90.1231352280626]}}},{"boundingVolume":{"region":[-1.2906530854072784,0.7123423283743946,-1.290461337808793,0.7125340759728803,0,84.36554560403722]},"geometricError":0,"content":{"uri":"14/9653/4476.b3dm","boundingVolume":{"region":[-1.290657136059534,0.7123353636044241,-1.290455738374096,0.712536067005497,0,84.36554560403722]}}},{"boundingVolume":{"region":[-1.2908448330057656,0.7123423283743946,-1.2906530854072784,0.7125340759728803,0,128.8566357569076]},"geometricError":0,"content":{"uri":"14/9652/4476.b3dm","boundingVolume":{"region":[-1.290850413329387,0.712338793722003,-1.290644045071249,0.7125367619531687,0,128.8566357569076]}}}]}]},{"boundingVolume":{"region":[-1.2908448330057656,0.7125340759728803,-1.2900778426118222,0.7133010663668231,0,120.3333831658323]},"geometricError":740.0197559011849,"children":[{"boundingVolume":{"region":[-1.2908448330057656,0.7125340759728803,-1.290461337808793,0.7129175711698517,0,120.3333831658323]},"geometricError":740.0197559011849,"children":[{"boundingVolume":{"region":[-1.2908448330057656,0.7125340759728803,-1.2906530854072784,0.712725823571366,0,45.65367492393488]},"geometricError":0,"content":{"uri":"14/9652/4475.b3dm","boundingVolume":{"region":[-1.290837173584634,0.7124945167057378,-1.290649597333975,0.7126754265872116,0,45.65367492393488]}}},{"boundingVolume":{"region":[-1.2906530854072784,0.7125340759728803,-1.290461337808793,0.712725823571366,0,86.91005027228186]},"geometricError":0,"content":{"uri":"14/9653/4475.b3dm","boundingVolume":{"region":[-1.290658164389173,0.7125300409789388,-1.290458049912094,0.7127278653696445,0,86.91005027228186]}}},{"boundingVolume":{"region":[-1.2906530854072784,0.712725823571366,-1.290461337808793,0.7129175711698517,0,120.3333831658323]},"geometricError":0,"content":{"uri":"14/9653/4474.b3dm","boundingVolume":{"region":[-1.290641474931581,0.7127222022065189,-1.290457014644938,0.7129195428610627,0,120.3333831658323]}}}]},{"boundingVolume":{"region":[-1.290461337808793,0.7125340759728803,-1.2900778426118222,0.7129175711698517,0,97.01854805801516]},"geometricError":153.0640154624529,"children":[{"boundingVolume":{"region":[-1.290461337808793,0.7125340759728803,-1.2902695902103076,0.712725823571366,0,97.01854805801516]},"geometricError":0,"content":{"uri":"14/9654/4475.b3dm","boundingVolume":{"region":[-1.290465808524124,0.7125332602480603,-1.290409168056419,0.7127188819942214,0,97.01854805801516]}}},{"boundingVolume":{"region":[-1.2902695902103076,0.712725823571366,-1.2900778426118222,0.7129175711698517,0,29.36790098154652]},"geometricError":0,"content":{"uri":"14/9655/4474.b3dm","boundingVolume":{"region":[-1.290267994097132,0.712781526263436,-1.290234815411167,0.7128630330526023,0,29.36790098154652]}}},{"boundingVolume":{"region":[-1.290461337808793,0.712725823571366,-1.2902695902103076,0.7129175711698517,0,58.14705566214254]},"geometricError":0,"content":{"uri":"14/9654/4474.b3dm","boundingVolume":{"region":[-1.290465864325228,0.7127229685343025,-1.290270583942165,0.7129197239217006,0,58.14705566214254]}}}]},{"boundingVolume":{"region":[-1.290461337808793,0.7129175711698517,-1.2900778426118222,0.7133010663668231,0,111.334395640283]},"geometricError":204.7997273231987,"children":[{"boundingVolume":{"region":[-1.290461337808793,0.7129175711698517,-1.2902695902103076,0.7131093187683374,0,111.334395640283]},"geometricError":0,"content":{"uri":"14/9654/4473.b3dm","boundingVolume":{"region":[-1.290464452009361,0.7129132227695064,-1.290263202497241,0.7131182869235406,0,111.334395640283]}}},{"boundingVolume":{"region":[-1.2902695902103076,0.7129175711698517,-1.2900778426118222,0.7131093187683374,0,71.4172754121708]},"geometricError":0,"content":{"uri":"14/9655/4473.b3dm","boundingVolume":{"region":[-1.290268159518731,0.7130166399095975,-1.290078303367424,0.7131041109564137,0,71.4172754121708]}}},{"boundingVolume":{"region":[-1.2902695902103076,0.7131093187683374,-1.2900778426118222,0.7133010663668231,0,68.7281171426032]},"geometricError":0,"content":{"uri":"14/9655/4472.b3dm","boundingVolume":{"region":[-1.290278390857043,0.7131056158615874,-1.290076973526721,0.7133028079782076,0,68.7281171426032]}}},{"boundingVolume":{"region":[-1.290461337808793,0.7131093187683374,-1.2902695902103076,0.7133010663668231,0,85.64980498057558]},"geometricError":0,"content":{"uri":"14/9654/4472.b3dm","boundingVolume":{"region":[-1.290452383543524,0.7131047284058316,-1.290265556355588,0.7133016716275915,0,85.64980498057558]}}}]},{"boundingVolume":{"region":[-1.2908448330057656,0.7129175711698517,-1.290461337808793,0.7133010663668231,0,61.29369556091982]},"geometricError":168.7325694002597,"children":[{"boundingVolume":{"region":[-1.2906530854072784,0.7129175711698517,-1.290461337808793,0.7131093187683374,0,61.29369556091982]},"geometricError":0,"content":{"uri":"14/9653/4473.b3dm","boundingVolume":{"region":[-1.290545738016819,0.7129150566163162,-1.290454080533345,0.7130744854037129,0,61.29369556091982]}}}]}]}]},{"boundingVolume":{"region":[-1.2900778426118222,0.7117670855789375,-1.2885438618239373,0.7133010663668231,0,66.20890819239261]},"geometricError":514.4406870245411,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7117670855789375,-1.2893108522178807,0.7125340759728803,0,12.42815077343435]},"geometricError":103.6030036364595,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7117670855789375,-1.2896943474148514,0.712150580775909,0,12.42815077343435]},"geometricError":103.6030036364595,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7117670855789375,-1.2898860950133368,0.7119588331774233,0,12.42815077343435]},"geometricError":0,"content":{"uri":"14/9656/4479.b3dm","boundingVolume":{"region":[-1.290084527862312,0.711774711805626,-1.290068074783226,0.7118166659656129,0,12.42815077343435]}}}]}]},{"boundingVolume":{"region":[-1.2900778426118222,0.7125340759728803,-1.2893108522178807,0.7133010663668231,0,66.20890819239261]},"geometricError":514.4406870245411,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7129175711698517,-1.2896943474148514,0.7133010663668231,0,66.20890819239261]},"geometricError":514.4406870245411,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7131093187683374,-1.2898860950133368,0.7133010663668231,0,66.20890819239261]},"geometricError":0,"content":{"uri":"14/9656/4472.b3dm","boundingVolume":{"region":[-1.29010162164868,0.7131368640470633,-1.289919109210917,0.7133047786235654,0,66.20890819239261]}}}]}]}]},{"boundingVolume":{"region":[-1.2900778426118222,0.7133010663668231,-1.2885438618239373,0.7148350471547088,0,115.348335542056]},"geometricError":269.4736043120431,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7133010663668231,-1.2893108522178807,0.714068056760766,0,115.348335542056]},"geometricError":269.4736043120431,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7133010663668231,-1.2896943474148514,0.7136845615637946,0,115.348335542056]},"geometricError":269.4736043120431,"children":[{"boundingVolume":{"region":[-1.2900778426118222,0.7133010663668231,-1.2898860950133368,0.7134928139653088,0,115.348335542056]},"geometricError":0,"content":{"uri":"14/9656/4471.b3dm","boundingVolume":{"region":[-1.290084253912739,0.7132987279616384,-1.289919263203459,0.7134950819190251,0,115.348335542056]}}},{"boundingVolume":{"region":[-1.2900778426118222,0.7134928139653088,-1.2898860950133368,0.7136845615637946,0,12.88303567538875]},"geometricError":0,"content":{"uri":"14/9656/4470.b3dm","boundingVolume":{"region":[-1.290077854594883,0.7134917993957982,-1.28996965311178,0.713494881833213,0,12.88303567538875]}}}]}]}]},{"boundingVolume":{"region":[-1.291611823399709,0.7133010663668231,-1.2900778426118222,0.7148350471547088,0,86.9775053070017]},"geometricError":156.6590059189892,"children":[{"boundingVolume":{"region":[-1.2908448330057656,0.7133010663668231,-1.2900778426118222,0.714068056760766,0,86.9775053070017]},"geometricError":156.6590059189892,"children":[{"boundingVolume":{"region":[-1.290461337808793,0.7133010663668231,-1.2900778426118222,0.7136845615637946,0,86.9775053070017]},"geometricError":156.6590059189892,"children":[{"boundingVolume":{"region":[-1.2902695902103076,0.7133010663668231,-1.2900778426118222,0.7134928139653088,0,86.9775053070017]},"geometricError":0,"content":{"uri":"14/9655/4471.b3dm","boundingVolume":{"region":[-1.290233871527291,0.7132974403821709,-1.290073088443673,0.7134924129102934,0,86.9775053070017]}}},{"boundingVolume":{"region":[-1.2902695902103076,0.7134928139653088,-1.2900778426118222,0.7136845615637946,0,3.77172301693583]},"geometricError":0,"content":{"uri":"14/9655/4470.b3dm","boundingVolume":{"region":[-1.290129552217363,0.7134928415201738,-1.290127668592326,0.7134942729416552,0,3.77172301693583]}}}]}]}]}]}]}]}]}]}]}} \ No newline at end of file diff --git a/3DGeoVolumes/collections/NewYork/NewYork.json b/3DGeoVolumes/collections/NewYork/NewYork.json new file mode 100644 index 0000000000000000000000000000000000000000..b952368a245032196efbe741ae9bfc22a443147b --- /dev/null +++ b/3DGeoVolumes/collections/NewYork/NewYork.json @@ -0,0 +1,75 @@ +{ + "links": [ + { + "rel": "self", + "href": "host_url/collections/NewYork", + "type": "application/json", + "title": "All geospatial data available in the New York area" + } + ], + "collections": [ + { + "id": "NewYork", + "title": "NewYork Data Source", + "description": "All Supported 3D Containers for the city of NewYork", + "collectiontype": "3d-container", + "extent": { + "spatial": { + "bbox": [ + [ + -74.01900887327089, + 40.700475291581974, + -11.892070104139751, + -73.9068954348699, + 40.880256294183646, + 547.7591871983744 + ] + ], + "crs": "http://www.opengis.net/def/crs/OGC/0/CRS84h" + } + }, + "links": [ + { + "rel": "collections", + "href": "host_url/collections/", + "type": "application/json" + }, + { + "title": "NewYork - 3D Buildings Manhattan", + "rel": "self", + "href": "host_url/collections/NewYork/", + "type": "application/json" + }, + { + "title": "NewYork - 3D Buildings Manhattan: 3D Tiles", + "rel": "items", + "href": "host_url/collections/NewYork/3dtiles", + "type": "application/json+3dtiles" + }, + { + "title": "NewYork - 3D Buildings Manhattan: i3s", + "rel": "items", + "href": "host_url/collections/NewYork/i3s", + "type": "application/json+i3s" + } + ], + "children": [ + + ], + "content": [ + { + "title": "NewYork - 3D Buildings Manhattan: 3D Tiles", + "rel": "original", + "href": "host_url/collections/NewYork/3dtiles/", + "type": "application/json+3dtiles" + }, + { + "title": "NewYork - 3D Buildings Manhattan: i3s", + "rel": "original", + "href": "https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Buildings_NewYork_17/SceneServer/layers/0/", + "type": "application/json+i3s" + } + ] + } + ] + } \ No newline at end of file diff --git a/3DGeoVolumes/collections/collections.json b/3DGeoVolumes/collections/collections.json new file mode 100644 index 0000000000000000000000000000000000000000..4de0a731398d816436d76408156a01354f299a20 --- /dev/null +++ b/3DGeoVolumes/collections/collections.json @@ -0,0 +1,75 @@ +{ + "links": [ + { + "rel": "self", + "href": "host_url/collections", + "type": "application/json", + "title": "All geospatial data available from this API" + } + ], + "collections": [ + { + "id": "NewYork", + "title": "NewYork Data Source", + "description": "All Supported 3D Containers for the city of NewYork", + "collectiontype": "3d-container", + "extent": { + "spatial": { + "bbox": [ + [ + -74.01900887327089, + 40.700475291581974, + -11.892070104139751, + -73.9068954348699, + 40.880256294183646, + 547.7591871983744 + ] + ], + "crs": "http://www.opengis.net/def/crs/OGC/0/CRS84h" + } + }, + "links": [ + { + "rel": "collections", + "href": "host_url/collections/", + "type": "application/json" + }, + { + "title": "NewYork - Collections", + "rel": "self", + "href": "host_url/collections/NewYork/", + "type": "application/json" + }, + { + "title": "NewYork - 3D Buildings Manhattan: 3D Tiles", + "rel": "items", + "href": "host_url/collections/NewYork/3dtiles", + "type": "application/json+3dtiles" + }, + { + "title": "NewYork - 3D Buildings Manhattan: i3s", + "rel": "items", + "href": "host_url/collections/NewYork/i3s", + "type": "application/json+i3s" + } + ], + "children": [ + + ], + "content": [ + { + "title": "NewYork - 3D Buildings Manhattan: 3D Tiles", + "rel": "original", + "href": "host_url/collections/NewYork/3dtiles/", + "type": "application/json+3dtiles" + }, + { + "title": "NewYork - 3D Buildings Manhattan: i3s", + "rel": "original", + "href": "host_url/collections/NewYork/i3s", + "type": "application/json+i3s" + } + ] + } + ] + } \ No newline at end of file diff --git a/3DGeoVolumes/conformance.json b/3DGeoVolumes/conformance.json new file mode 100644 index 0000000000000000000000000000000000000000..abbf6322db4dbdd134510f5fe312a2df6206a84a --- /dev/null +++ b/3DGeoVolumes/conformance.json @@ -0,0 +1,5 @@ +{ + "conformsTo": [ + "http://www.opengis.net/spec/OAPI_Common/1.0/req/core" + ] + } \ No newline at end of file diff --git a/3DGeoVolumes/landingpage.json b/3DGeoVolumes/landingpage.json new file mode 100644 index 0000000000000000000000000000000000000000..ebc807f4f161e26f136da4c7fab5b54cd2c93167 --- /dev/null +++ b/3DGeoVolumes/landingpage.json @@ -0,0 +1,24 @@ +{ + "title": "3D GeoVolumes API Server", + "description": "The 3D GeoVolumes API Server by the Steinbeis Transfer Center Technology Consultancy @ HFT Stuttgart", + "links": [ + { + "type": "application/openapi+json;version=3.0", + "title": "Service Description", + "href": "https://app.swaggerhub.com/apis/Thunyathep/OGC_GeoVolumes_API/0.0.1", + "rel": "service-desc" + }, + { + "type": "application/json", + "title": "Conformance", + "href": "host_url/conformance/", + "rel": "conformance" + }, + { + "type": "application/json", + "title": "Collections", + "href": "host_url/collections/", + "rel": "data" + } + ] + } \ No newline at end of file diff --git a/README.md b/README.md index 1ddad80fe07436225c2580474e4d33224790ffed..41fb3e249d61f3452929b6c1197eef7d743084ea 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,34 @@ # 3DGeoVolumesAPI +### Live Demo: https://steinbeis-3dps.eu/3DGeoVolumes/ + + +## Installation + +Use the package manager [npm](https://npmjs.com/) to install 3D GeoVolumes API. + +```bash +npm install +``` + +## Usage + +```bash +node server.js +``` + +## Contributing +Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. + +Please make sure to update tests as appropriate. + +## Team +- [Prof. Dr. Volker Coors](https://www.hft-stuttgart.de/p/volker-coors) +- [Joe Thunyathep Santhanavanich](https://www.hft-stuttgart.de/p/thunyathep-santhanavanich) + +## Link +| Document | URL | +|------------------------------------------------------------------|-------------------------------------| +| 3D Data Container and Tiles API Pilot Summary Engineering Report | http://docs.ogc.org/per/20-031.html | +| Interoperable Simulation and Gaming Sprint Engineering Report | http://docs.ogc.org/per/20-087.html | +| Steinbeis Demo | https://steinbeis-3dps.eu | \ No newline at end of file diff --git a/img/ResourceArchitecture.jpg b/img/ResourceArchitecture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..99056a439f634cd78e394a42f3bf7a25014a7172 Binary files /dev/null and b/img/ResourceArchitecture.jpg differ diff --git a/img/ResourceArchitecture2.jpg b/img/ResourceArchitecture2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..902b2ccd0be306423a70baa6335f38794a532db8 Binary files /dev/null and b/img/ResourceArchitecture2.jpg differ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..0773ee7a538536431b0a1022582c22a00a3ef4de --- /dev/null +++ b/package-lock.json @@ -0,0 +1,583 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bit-twiddle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", + "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4=" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "box-intersect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/box-intersect/-/box-intersect-1.0.2.tgz", + "integrity": "sha512-yJeMwlmFPG1gIa7Rs/cGXeI6iOj6Qz5MG5PE61xLKpElUGzmJ4abm+qsLpzxKJFpsSDq742BQEocr8dI2t8Nxw==", + "requires": { + "bit-twiddle": "^1.0.2", + "typedarray-pool": "^1.1.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "dup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", + "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "requires": { + "jake": "^10.6.1" + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + }, + "mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "requires": { + "mime-db": "1.48.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-pool": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", + "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", + "requires": { + "bit-twiddle": "^1.0.0", + "dup": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "requires": { + "lru-cache": "4.1.x", + "tmp": "0.0.x" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + } + } +} diff --git a/server.js b/server.js new file mode 100644 index 0000000000000000000000000000000000000000..7764594fffb6278d0b5c270df661020b0ae021df --- /dev/null +++ b/server.js @@ -0,0 +1,175 @@ +(function () { + "use strict"; + const express = require('express'); + const boxIntersect = require('box-intersect'); + const bodyParser = require('body-parser'); + const compression = require('compression'); + const app = express(); + const http = require('http'); + const useragent = require('useragent'); + + const port = 80; + app.use(compression()); + app.use(function (req, res, next) { + res.header("Access-Control-Allow-Origin", "*"); + res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + next(); + }); + app.use(bodyParser.json()); // for parsing application/json + app.use(bodyParser.urlencoded({ + extended: true + })); + app.use(express.static(__dirname)); + + const geovolumes_server_url = "http://localhost" + // const geovolumes_server_url = "https://steinbeis-3dps.eu/3DGeoVolumes" + // GeoVolume - A function to replace the geovolumes_server_url + var replace_server_url = function (const_json) { + var input_str = JSON.stringify(const_json) + input_str = input_str.replace(/host_url/g, geovolumes_server_url); + var input_output = JSON.parse(input_str) + return input_output; + } + + // GeoVolume Check if bbox intersection + // This version only check 2D !!!! + var validate_bbox = function (collections_input, req) { + if (typeof req.query.bbox == "string") { + + try { + // user request with bbox + // var collections_json = JSON.parse(collections_input); + var collections_json = collections_input; + var req_query_bbox = req.query.bbox; + var bbox = JSON.parse("[" + req_query_bbox + "]"); + // remove the req-height if exist + if (config.server_full_log) { + console.log(`bbox lenght: ${bbox.lenght}`) + } + if (bbox.length == 6) { + bbox = [bbox[0], bbox[1], bbox[3], bbox[4]] + } else if (bbox.lenght == 0 || typeof bbox.lenght == 'undefined') { + return collections_input + } + // prepare result array + var resultJSON = {} + resultJSON["links"] = collections_json["links"] + resultJSON["collections"] = [] // prepare empty collection + + for (let index = 0; index < collections_json["collections"].length; index++) { + var collection_bbox_minx = collections_json["collections"][index].extent.spatial.bbox[0][0] + var collection_bbox_miny = collections_json["collections"][index].extent.spatial.bbox[0][1] + var collection_bbox_maxx = collections_json["collections"][index].extent.spatial.bbox[0][3] + var collection_bbox_maxy = collections_json["collections"][index].extent.spatial.bbox[0][4] + var bbox_collection = []; + bbox_collection.push(collection_bbox_minx) + bbox_collection.push(collection_bbox_miny) + bbox_collection.push(collection_bbox_maxx) + bbox_collection.push(collection_bbox_maxy) + var boxes = [bbox, bbox_collection]; + var overlap = boxIntersect(boxes); + if (overlap == '') {} else { + resultJSON["collections"].push(collections_json["collections"][index]) + } + if (index == collections_json["collections"].length - 1) { + // Return only the last loop + return resultJSON + } + } + + } catch (error) { + console.log(`Error in the BBOX function validate_bbox() :`) + console.log(error) + return collections_input + } + + } else { + // user request without bbox + return collections_input + } + } + + app.get('/', function (req, res) { + var landingpage_json = require('./3DGeoVolumes/landingpage.json') + var landingpage_output = replace_server_url(landingpage_json) + try { + var agent = useragent.parse(req.headers['user-agent']); + var agentString = agent.toString() + if (req.query.f === "json" || req.query.format === "json" || agentString.includes("Other")) { + res.json(landingpage_output); + } else { + // browser + res.render('geovolumes/landing.ejs', { + landingpage_output + }) + } + } catch (error) { + console.log(error) + } + + }) + + // GeoVolume - conformance + const conformance_json = require('./3DGeoVolumes/conformance.json') + app.get('/conformance', function (req, res) { + res.json(conformance_json); + }) + + // GeoVolume - Collections + app.get('/collections', function (req, res) { + try { + var collection_resource = require('./3DGeoVolumes/collections/collections.json') + var collection_resource_updated = replace_server_url(collection_resource) + var collection_resource_updated_bbox = validate_bbox(collection_resource_updated, req) + + // check user-agent + var is_ajax = req.xhr; + + var agent = useragent.parse(req.headers['user-agent']); + var agentString = agent.toString() + console.log(`request agent: ${agentString}`) + if (req.query.f === "json" || req.query.format === "json" || agentString.includes("Other")) { + res.json(collection_resource_updated_bbox); + } else { + // browser + res.render('geovolumes/collections.ejs', { + collection_resource_updated_bbox + }) + } + } catch (error) { + console.log(error) + } + + }) + + app.get('/collections/:collectionsId', function (req, res) { + try { + var collection_json = require(`./3DGeoVolumes/collections/${req.params.collectionsId}/${req.params.collectionsId}.json`) + res.json(collection_json); + } catch (error) { + res.send("internal error at /3DGeoVolumes/collections/:collectionsId") + } + }) + + // request 3D Tiles + app.get('/collections/:collectionsId/3dtiles', function (req, res) { + try { + var collections_3dtiles_json = require(`./3DGeoVolumes/collections/${req.params.collectionsId}/3dtiles/tileset.json`) + var collections_3dtiles_output = replace_server_url(collections_3dtiles_json) + res.json(collections_3dtiles_output); + } catch (error) { + res.send("internal error at /3DGeoVolumes/collections/:collectionsId/3dtiles") + } + }) + + // request i3s - New York Manual Redirect + app.get('/collections/NewYork/i3s', function (req, res) { + res.redirect("https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Buildings_NewYork_17/SceneServer/layers/0/") + }) + + const httpServer = http.createServer(app); + httpServer.listen(port, () => { + console.log(`HTTP Server running on port ${port}`); + console.log(`server at http://localhost:${port}/`); + }) +})(); \ No newline at end of file diff --git a/views/geovolumes/collections.ejs b/views/geovolumes/collections.ejs new file mode 100644 index 0000000000000000000000000000000000000000..a1e681d83a08dd1a60a6915938730361d4833ed0 --- /dev/null +++ b/views/geovolumes/collections.ejs @@ -0,0 +1,137 @@ +<!doctype html> +<html lang="en"> + +<head> + <!-- Required meta tags --> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <!-- Bootstrap CSS --> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" + integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> + + <title>GeoVolumes Server</title> + +</head> + +<body> + <div class="container"> + <!-- <h1> + <img src="https://transfer.hft-stuttgart.de/pages/buildicipate/webpage/assets/images/hft_logo.svg" alt="" + width="50px"> + <img src="https://steinbeis-3dps.eu/images/stw-stuttgart.jpg" alt="" width="50px"> + STT GeoVolumes Server + </h1> --> + <nav class="navbar navbar-light bg-light"> + <div class="container-fluid"> + <a class="navbar-brand" href="#"> + + + <h3> + <img src="https://steinbeis-3dps.eu/images/stw-stuttgart.jpg" alt="" width="50px"> + <img src="https://transfer.hft-stuttgart.de/pages/buildicipate/webpage/assets/images/hft_logo.svg" + alt="" width="50px"> + STT GeoVolumes Server + </h3> + </a> + </div> + </nav> + <!-- <header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom"> + <a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none"> + + </a> + </header> --> + <nav aria-label="breadcrumb" style="--bs-breadcrumb-divider: '>';" class="fs-4"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../">Home</a></li> + <li class="breadcrumb-item"><a href="../">3DGeoVolumes</a></li> + <li class="breadcrumb-item active" aria-current="page">Collections</li> + </ol> + </nav> + See this response in raw <code>JSON</code> format: <a href="?f=json">json</a> <br> + + <!-- <input class="form-control mb-3 mt-3" id="searchBar" type="text" placeholder="Search Collections..."> --> + <hr> + <div id="collections_div"> + <% for(var i=0; i < collection_resource_updated_bbox["collections"].length; i++) { %> + <div class="collections_contents"> + <h5><%= collection_resource_updated_bbox["collections"][i].title %></h5> <br> + <b>ID</b>: <%= collection_resource_updated_bbox["collections"][i].id %> <br> + <b>Description</b>: <%= collection_resource_updated_bbox["collections"][i].description %> <br> + <b>Bbox</b>: + <%= JSON.stringify(collection_resource_updated_bbox["collections"][i].extent.spatial.bbox[0]) %> + <!-- BBOX 2D --> + <!-- <%= JSON.stringify( + collection_resource_updated_bbox["collections"][i].extent.spatial.bbox[0][0], + collection_resource_updated_bbox["collections"][i].extent.spatial.bbox[0][1], + collection_resource_updated_bbox["collections"][i].extent.spatial.bbox[0][3], + collection_resource_updated_bbox["collections"][i].extent.spatial.bbox[0][4], + ) %> --> + <br><br> + <img src="https://server.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/export?bbox=<%= collection_resource_updated_bbox["collections"][i].extent.spatial.bbox[0][0] %>%2C<%=collection_resource_updated_bbox["collections"][i].extent.spatial.bbox[0][1]%>%2C<%=collection_resource_updated_bbox["collections"][i].extent.spatial.bbox[0][3]%>%2C<%=collection_resource_updated_bbox["collections"][i].extent.spatial.bbox[0][4]%>&bboxSR=4326&layers=&layerDefs=&size=240%2C240&imageSR=&format=png&transparent=true&dpi=&time=&layerTimeOptions=&dynamicLayers=&gdbVersion=&mapScale=&rotation=&datumTransformations=&layerParameterValues=&mapRangeValues=&layerRangeValues=&f=image" alt=""> + + + <br> + <b>Links</b>: <br> + <% for(var j=0; j < collection_resource_updated_bbox["collections"][i].links.length; j++) { %> + <% if (collection_resource_updated_bbox["collections"][i].links[j]["title"]) { %> + <a href="<%= collection_resource_updated_bbox["collections"][i].links[j]["href"]%>" target="_blank"> + <%= collection_resource_updated_bbox["collections"][i].links[j]["title"]%> + </a> <br> + <% } %> + <% } %> + <b>Children:</b> + <%if (collection_resource_updated_bbox["collections"][i].children.length == 0) { %> + - + <% } %> + <br> + <% for(var j=0; j < collection_resource_updated_bbox["collections"][i].children.length; j++) { %> + <div class="card"> + <div class="card-body"> + <h6><%= collection_resource_updated_bbox["collections"][i].children[j].title %></h6> + <b>ID:</b> <%= collection_resource_updated_bbox["collections"][i].children[j].id %> <br> + <b>Description:</b> <%= collection_resource_updated_bbox["collections"][i].children[j].description %> <br> + <b>Bbox:</b> <%= JSON.stringify(collection_resource_updated_bbox["collections"][i].children[j].extent.spatial.bbox[0]) %> <br> + <br> + <img src="https://server.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/export?bbox=<%= collection_resource_updated_bbox["collections"][i].children[j].extent.spatial.bbox[0][0] %>%2C<%=collection_resource_updated_bbox["collections"][i].children[j].extent.spatial.bbox[0][1]%>%2C<%=collection_resource_updated_bbox["collections"][i].children[j].extent.spatial.bbox[0][3]%>%2C<%=collection_resource_updated_bbox["collections"][i].children[j].extent.spatial.bbox[0][4]%>&bboxSR=4326&layers=&layerDefs=&size=240%2C240&imageSR=&format=png&transparent=true&dpi=&time=&layerTimeOptions=&dynamicLayers=&gdbVersion=&mapScale=&rotation=&datumTransformations=&layerParameterValues=&mapRangeValues=&layerRangeValues=&f=image" alt=""> + + <br> + <b>Links:</b> <br> + <% for(var k=0; k < collection_resource_updated_bbox["collections"][i].children[j].links.length; k++) { %> + <% if (collection_resource_updated_bbox["collections"][i].children[j].links[k]["title"]) { %> + <a href="<%= collection_resource_updated_bbox["collections"][i].children[j].links[k]["href"]%>" target="_blank"> + <%= collection_resource_updated_bbox["collections"][i].children[j].links[k]["title"]%> + </a> <br> + <% } %> + <% } %> + </div> + </div> + <% } %> + + <hr> + <% } %> + </div> + <%- include('footer.ejs') %> + + </div> + + </div> + + <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" + integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"> + </script> + <!-- <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> --> + <!-- <script> + $(document).ready(function () { + $("#searchBar").on("keyup", function () { + var value = $(this).val().toLowerCase(); + $(".collections_contents").filter(function () { + $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1) + }); + }); + }); + </script> --> + +</body> + +</html> \ No newline at end of file diff --git a/views/geovolumes/footer.ejs b/views/geovolumes/footer.ejs new file mode 100644 index 0000000000000000000000000000000000000000..3ef97b079a59493d05fa1d495665174e783fde68 --- /dev/null +++ b/views/geovolumes/footer.ejs @@ -0,0 +1,11 @@ +<span class="text-muted">Found technical issue? Please contact <a + href="https://www.hft-stuttgart.de/p/thunyathep-santhanavanich"> Joe </a> +</span> +<footer class="footer mt-auto py-3 bg-light"> + <div class="container"> + <span class="text-muted text-center"> + <img src="https://steinbeis-3dps.eu/images/stw-stuttgart.jpg" alt="" width="32"> + The Steinbeis Transfer Center Technology Consultancy @ HFT Stuttgart. 2018 - 2021 + </span> + </div> +</footer> \ No newline at end of file diff --git a/views/geovolumes/landing.ejs b/views/geovolumes/landing.ejs new file mode 100644 index 0000000000000000000000000000000000000000..c57a4aabb74c35cd59aebc27e87d3c0ecf3aad26 --- /dev/null +++ b/views/geovolumes/landing.ejs @@ -0,0 +1,82 @@ +<!doctype html> +<html lang="en"> + +<head> + <!-- Required meta tags --> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <!-- Bootstrap CSS --> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" + integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> + + <title>GeoVolumes Server</title> + +</head> + +<body> + <div class="container"> + <!-- <h1> + <img src="https://transfer.hft-stuttgart.de/pages/buildicipate/webpage/assets/images/hft_logo.svg" alt="" + width="50px"> + <img src="https://steinbeis-3dps.eu/images/stw-stuttgart.jpg" alt="" width="50px"> + STT GeoVolumes Server + </h1> --> + <nav class="navbar navbar-light bg-light"> + <div class="container-fluid"> + <a class="navbar-brand" href="#"> + + + <h3> + <img src="https://steinbeis-3dps.eu/images/stw-stuttgart.jpg" alt="" width="50px"> + <img src="https://transfer.hft-stuttgart.de/pages/buildicipate/webpage/assets/images/hft_logo.svg" + alt="" width="50px"> + STT GeoVolumes Server + </h3> + </a> + </div> + </nav> + <!-- <header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom"> + <a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none"> + + </a> + </header> --> + <nav aria-label="breadcrumb" style="--bs-breadcrumb-divider: '>';" class="fs-4"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../">Home</a></li> + <li class="breadcrumb-item" aria-current="page">3DGeoVolumes</li> + <li class="breadcrumb-item active"><a href="/collections"></a>Collections</li> + </ol> + </nav> + See this response in raw <code>JSON</code> format: <a href="?f=json">json</a> <br> + + <hr> + <div id="collections_div"> + <h3> <%= landingpage_output["title"] %> </h3> + <span class="mb-4"> <%= landingpage_output["description"] %> </span> <br> + <b>Links</b>: <br> + + <div class="collections_contents"></div> + <% for(var i=0; i < landingpage_output["links"].length; i++) { %> + <a href="<%= landingpage_output["links"][i]["href"]%>" target="_blank"> + <%= landingpage_output["links"][i]["title"]%> </a> + <br> + <% } %> + </div> + <hr> + <%- include('footer.ejs') %> + + </div> + + </div> + + <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" + integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"> + </script> + <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> + <script> + </script> + +</body> + +</html> \ No newline at end of file