Commit 70572bae authored by Schneider's avatar Schneider

added a working vis and minor updates to design and added a blank publication page

parent 6cbeabea
Pipeline #1649 passed with stages
in 31 seconds
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js">
<!--<![endif]-->
<head>
<meta charset="utf-8">
<title>Stuttgart</title>
<link rel="stylesheet" href="css/myCesiumStyle.css">
<link rel="stylesheet" href="css/legend.css">
<link href="https://cesium.com/downloads/cesiumjs/releases/1.69/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-2.2.4.min.js"
integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"
integrity="sha256-1A78rJEdiWTzco6qdn3igTBv9VupN3Q1ozZNTR4WE/Y=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"
integrity="sha256-0rguYS0qgS6L4qVzANq4kjxPLtvnp5nn2nB5G1lWRv4=" crossorigin="anonymous"></script>
<script src="https://cesium.com/downloads/cesiumjs/releases/1.69/Build/Cesium/Cesium.js"></script>
</head>
<body>
<header>
<img src="imgs/icity.png" class="titleFigure">
<h2> TP2.4 - Prototyp 4: Webbasierte Visualisierung von CFD Simulationsdaten </h2>
</header>
<script src="aoi.js"></script>
<div id="cesiumContainer" class="pagecesium">
<div id="legend">
<table>
<tr style="height: 30px;vertical-align: top;">
<td colspan="2">Pressure (Pa) </td>
<td></td>
</tr>
<tr>
<td rowspan="1" style="height:100px;text-align:right;"><img src="imgs/colorbarJET.png" height="100" width="20"> </td>
<td>- 113006<p style="margin-top: 78px;"><p> - 112976</td>
</tr>
</table>
</div>
</div>
<footer>
<p align="center">
<h5>Copyright &copy; 2018 - 2020, HFT-Stuttgart. All rights reserved</h5>
</p>
</footer>
</body>
</html>
\ No newline at end of file
$(function () {
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI5ODI4ZTYyZS1mMTg2LTQ5NGEtYjdiOS02ODg2NzVhNjc0MTAiLCJpZCI6MjkwNCwiaWF0IjoxNTM1MTA5OTAzfQ.kyDX_0ScvJBkYnvXI0DW5NfZbiaRL5ezwtAUhxYnk1Y';
var imageryViewModels = [];
imageryViewModels.push(new Cesium.ProviderViewModel({
name: 'Sentinel-2',
iconUrl: Cesium.buildModuleUrl('Widgets/Images/ImageryProviders/sentinel-2.png'),
tooltip: 'Sentinel-2 cloudless.',
creationFunction: function () {
return new Cesium.IonImageryProvider({ assetId: 3954 });
}
}));
imageryViewModels.push(new Cesium.ProviderViewModel({
name: 'Blue Marble',
iconUrl: Cesium.buildModuleUrl('Widgets/Images/ImageryProviders/blueMarble.png'),
tooltip: 'Blue Marble Next Generation July, 2004 imagery from NASA.',
creationFunction: function () {
return new Cesium.IonImageryProvider({ assetId: 3845 });
}
}));
var viewer = new Cesium.Viewer('cesiumContainer',
{
imageryProvider: new Cesium.IonImageryProvider({ assetId: 3954 }),
terrainProvider : new Cesium.CesiumTerrainProvider({
url: Cesium.IonResource.fromAssetId(1)
}),
scene3DOnly: false,
shouldAnimate: true,
animation: true,
infoBox: true,
baseLayerPicker: true,
fullscreenButton: false,
timeline: false,
navigationHelpButton: true,
navigationInstructionsInitiallyVisible: false,
homeButton: false,
selectionIndicator: true,
geocoder: true,
// imageryProviderViewModels: imageryViewModels
});
// var layer = viewer.imageryLayers.addImageryProvider(
// new Cesium.IonImageryProvider({ assetId: 3 })
// );
var imageryLayer = viewer.imageryLayers.addImageryProvider(
new Cesium.IonImageryProvider({ assetId: 3954 })
);
var canvas = viewer.canvas;
canvas.setAttribute('tabindex', '0'); // needed to put focus on the canvas
canvas.addEventListener('click', function() {
canvas.focus();
});
canvas.focus();
var scene = viewer.scene;
// var osmBuildings = viewer.scene.primitives.add(
// new Cesium.Cesium3DTileset({
// url: Cesium.IonResource.fromAssetId(96188),
// })
// );
var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
url: 'buildingTiles/Aoi/tileset.json',
show: true
}));
tileset.readyPromise.then(function (tileset) {
return zoomAll(tileset);
});
tileset.readyPromise.then(function (tileset) {
var R = 0; // roll
var P = 0; // pitch
var Yaw = 0; // yaw
var height =53;
var cartographic = Cesium.Cartographic.fromCartesian(tileset.boundingSphere.center);
var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, height);
var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
//var rotMat = new Cesium.Matrix3();
var rotation = new Cesium.Matrix3.fromHeadingPitchRoll(new Cesium.HeadingPitchRoll(Yaw, P, R));
tileset.modelMatrix = Cesium.Matrix4.fromRotationTranslation(rotation,translation);
return zoomAll(tileset);
});
var camera = viewer.camera;
var controller = scene.screenSpaceCameraController;
var r = 0;
var center = new Cesium.Cartesian3();
var hpRoll = new Cesium.HeadingPitchRoll();
var hpRange = new Cesium.HeadingPitchRange();
var speed = 0.1;
var deltaRadians = Cesium.Math.toRadians(3.0);
var position = Cesium.Cartesian3.fromDegrees(9.190471, 48.786782, 0.0);
var speedVector = new Cesium.Cartesian3();
var fixedFrameTransform = Cesium.Transforms.localFrameToFixedFrameGenerator('north', 'west');
viewer.scene.globe.enableLighting = true; // set lighting to true
var zoomAll = function (tileset) {
return new Promise(function (resolve, reject) {
if (!tileset) { reject("Tileset is undifined"); }
viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 1500));
viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);
resolve();
});
}
// HTML overlay for showing feature name on mouseover
var nameOverlay = document.createElement('div');
viewer.container.appendChild(nameOverlay);
nameOverlay.className = 'backdrop';
nameOverlay.style.display = 'none';
nameOverlay.style.position = 'absolute';
nameOverlay.style.bottom = '0';
nameOverlay.style.left = '0';
nameOverlay.style['pointer-events'] = 'none';
nameOverlay.style.padding = '4px';
nameOverlay.style.backgroundColor = 'green';
// Information about the currently selected feature
var selected = {
feature: undefined,
originalColor: new Cesium.Color()
};
// Information about the currently highlighted feature
var highlighted = {
feature: undefined,
originalColor: new Cesium.Color()
};
var selectedEntity = new Cesium.Entity();
// Color a feature yellow on hover.
viewer.screenSpaceEventHandler.setInputAction(function onMouseMove(movement) {
// If a feature was previously highlighted, undo the highlight
if (Cesium.defined(highlighted.feature)) {
highlighted.feature.color = highlighted.originalColor;
highlighted.feature = undefined;
}
// Pick a new feature
var pickedFeature = viewer.scene.pick(movement.endPosition);
if (!Cesium.defined(pickedFeature)) {
nameOverlay.style.display = 'none';
return;
}
// A feature was picked, so show it's overlay content
nameOverlay.style.display = 'block';
nameOverlay.style.bottom = viewer.canvas.clientHeight - movement.endPosition.y + 'px';
nameOverlay.style.left = movement.endPosition.x + 'px';
var name = pickedFeature.getProperty('name');
if (!Cesium.defined(name)) {
name = pickedFeature.getProperty('id');
}
nameOverlay.textContent = name;
// Highlight the feature if it's not already selected.
if (pickedFeature !== selected.feature) {
highlighted.feature = pickedFeature;
Cesium.Color.clone(pickedFeature.color, highlighted.originalColor);
pickedFeature.color = Cesium.Color.AQUA;
}
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
// Color a feature on selection and show metadata in the InfoBox.
var clickHandler = viewer.screenSpaceEventHandler.getInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
viewer.screenSpaceEventHandler.setInputAction(function onLeftClick(movement) {
// If a feature was previously selected, undo the highlight
if (Cesium.defined(selected.feature)) {
selected.feature.color = selected.originalColor;
selected.feature = undefined;
}
// Pick a new feature
var pickedFeature = viewer.scene.pick(movement.position);
if (!Cesium.defined(pickedFeature)) {
clickHandler(movement);
return;
}
// Select the feature if it's not already selected
if (selected.feature === pickedFeature) {
return;
}
selected.feature = pickedFeature;
// Save the selected feature's original color
if (pickedFeature === highlighted.feature) {
Cesium.Color.clone(highlighted.originalColor, selected.originalColor);
highlighted.feature = undefined;
} else {
Cesium.Color.clone(pickedFeature.color, selected.originalColor);
}
// Highlight newly selected feature
pickedFeature.color = Cesium.Color.WHITE;
// Set feature infobox description
var featureName = pickedFeature.getProperty('name');
selectedEntity.name = featureName;
selectedEntity.description = 'Loading <div class="cesium-infoBox-loading"></div>';
viewer.selectedEntity = selectedEntity;
selectedEntity.description = '<table class="cesium-infoBox-defaultTable"><tbody>' +
'<tr><th>Bld function</th><td>' + pickedFeature.getProperty('Function') + '</td></tr>' +
'<tr><th>gmlID</th><td>' + pickedFeature.getProperty('gmlIDStr') + '</td></tr>' +
'<tr><th>Dachgeschossausbau</th><td>' + pickedFeature.getProperty('dachgeschossausbau') + '</td></tr>' +
'<tr><th>Lon</th><td>' + pickedFeature.getProperty('Longitude') + '</td></tr>' +
'<tr><th>Lat</th><td>' + pickedFeature.getProperty('Latitude') + '</td></tr>' +
'<tr><th>Geschossflaeche (sqm)</th><td>' + pickedFeature.getProperty('geschossflaeche') + '</td></tr>' +
'<tr><th>YearOfConstruction</th><td>' + pickedFeature.getProperty('YearOfConstruction') + '</td></tr>' +
'<tr><th>MeasuredHeight (m):</th><td>' + pickedFeature.getProperty('MeasuredHeight') + '</td></tr>' +
'<tr><th>HoeheFirst (m)</th><td>' + pickedFeature.getProperty('hoeheFirst') + '</td></tr>' +
'<tr><th>HoeheTrauf (m)</th><td>' + pickedFeature.getProperty('hoeheTrauf') + '</td></tr>' +
'<tr><th>Grundflaeche (sqm)</th><td>' + pickedFeature.getProperty('grundflaeche') + '</td></tr>' +
'<tr><th>StoreysAboveGround: </th><td>' + pickedFeature.getProperty('StoreysAboveGround') + '</td></tr>' +
'<tr><th>StoreysBelowGround: </th><td>' + pickedFeature.getProperty('StoreysBelowGround') + '</td></tr>' +
'<tr><th>Durchfahrtsstr.: </th><td>' + pickedFeature.getProperty('ThoroughfareName') + '</td></tr>' +
'<tr><th>Hausnummer.: </th><td>' + pickedFeature.getProperty('ThoroughfareNumber') + '</td></tr>' +
'</tbody></table>';
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
var scene = viewer.scene;
var longitude;
var latitude;
var fid;
var featuretype;
var gmlid;
var selID = new Array();
var cnt = 0;
var lastPickedObject;
var viewModel = {
rightClickAction: 'properties',
middleClickAction: 'hide'
};
Cesium.knockout.track(viewModel);
var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function (movement) {
// makes camera go to a certain position given by the coordinates below
var feature = viewer.scene.pick(movement.position);
if (!Cesium.defined(feature)) {
console.log("no feature defined")
return;
}
var propertyNames = feature.getPropertyNames();
var lat = feature.getProperty("Latitude");
var lon = feature.getProperty("Longitude");
var tmp = feature.getProperty("YearOfConstruction");
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(lon, lat, 900),
maximumHeight: 1500.0,
orientation: {
heading: Cesium.Math.toRadians(0.0),
pitch: Cesium.Math.toRadians(-90.0),
roll: Cesium.Math.toRadians(45.0)
},
duration: 2
}); }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
handler.setInputAction(function (movement) {
var feature = viewer.scene.pick(movement.position);
if (!Cesium.defined(feature)) {
return;
}
var action = viewModel.rightClickAction;
action === 'properties'
printProperties(movement, feature)
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
function printProperties(movement, feature) {
console.log('Properties:');
var propertyNames = feature.getPropertyNames();
var length = propertyNames.length;
for (var i = 0; i < length; ++i) {
var propertyName = propertyNames[i];
if (propertyName == 'gmlIdALKISLageBezeichnung_1' ||
propertyName == 'gmlIdALKISLageBezeichnung_2' ||
propertyName == 'gmlIdALKISLageBezeichnung_3' ||
propertyName == 'gmlIdALKISLageBezeichnung_4' ||
propertyName == 'gmlIdALKISLageBezeichnung_5' ||
propertyName == 'gmlIdALKISLageBezeichnung_6')
console.log(' ' + propertyName + ': ' + 'zensiert');
else
console.log(' ' + propertyName + ': ' + feature.getProperty(propertyName));
}
// Evaluate feature description
//console.log('Description : ' + tileset.style.meta.description.evaluate(scene.frameState, feature));
}
handler.setInputAction(function (movement) {
var feature = viewer.scene.pick(movement.position);
if (!Cesium.defined(feature)) {
return;
}
var action = viewModel.middleClickAction;
if (action === 'hide') {
feature.show = false;
}
}, Cesium.ScreenSpaceEventType.MIDDLE_CLICK);
/*
return Cesium.when(tileset.readyPromise).then(function (tileset) {
tileset.style = new Cesium.Cesium3DTileStyle({
color: {
conditions: [
["${Latitude} >= 48.8170", "color('purple', 0.5)"],
["${Latitude} >= 48.7950", "color('red')"],
["${Latitude} >= 48.7830", "color('orange')"],
["${Latitude} >= 48.7710", "color('yellow')"],
["${Latitude} >= 48.7690", "color('lime')"],
["${Latitude} >= 48.7570", "color('cyan')"],
["${Latitude} >= 48.7470", "color('CORNFLOWERBLUE')"],
["${Latitude} >= 48.7370", "color('DARKMAGENTA')"],
["true", "color('lightblue')"]
]
}
});
});
*/
function showLegend() {
$("#legend").css("display", "block");
}
function hideLegend() {
$("#legend").css("display", "none");
}
// Legend - Colour Table
function emptyColourTable() {
$(".inner").empty();
}
/*
function setHeightTable() {
$(".inner").append( "<table>" +
"<tr><td class='outlined' bgcolor='red'>&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 113007 </td></tr>" +
"<tr><td class='outlined' bgcolor='#ff6b21'></td><td> 113001 </td></tr>" +
"<tr><td class='outlined' bgcolor='#ffb400'></td><td> 112996 </td></tr>" +
"<tr><td class='outlined' bgcolor='yellow'></td><td> 112991</td></tr>" +
"<tr><td class='outlined' bgcolor='#00ff00'></td><td> 112986 </td></tr>" +
"<tr><td class='outlined' bgcolor='cyan'></td><td> 112981 </td></tr>" +
"<tr><td class='outlined' bgcolor='blue'></td><td> 112976 </td></tr>" +
"</table>" );
}
*/
/*
function setHeightTable() {
$(".inner").append( "<table>" +
"<tr><td class='outlined' bgcolor='red'>&nbsp;&nbsp;&nbsp;&nbsp;</td><td> x </td></tr>" +
"<tr><td class='outlined' bgcolor='green'></td><td> y </td></tr>" +
"<tr><td class='outlined' bgcolor='blue'></td><td> z </td></tr>" +
"</table>" );
}
*/
function setHeightTable() {
$(".inner").append( "<table>" +
"<tr><td class='outlined' bgcolor='red'>&nbsp;&nbsp;&nbsp;&nbsp;</td><td> >30 </td></tr>" +
"<tr><td class='outlined' bgcolor='#ff6b21'></td><td> 24 </td></tr>" +
"<tr><td class='outlined' bgcolor='#FFB300'></td><td> 18</td></tr>" +
"<tr><td class='outlined' bgcolor='#BFBF00'></td><td> 12 </td></tr>" +
"<tr><td class='outlined' bgcolor='#0080FF',0)'></td><td> 6 </td></tr>" +
"<tr><td class='outlined' bgcolor='#0000FF',0)'></td><td> 0 </td></tr>" +
"</table>" );
}
return Cesium.when(tileset.readyPromise).then(function (tileset) {
tileset.style = new Cesium.Cesium3DTileStyle({
color: "color('white',1)",
/*color: {
conditions: [
['Number(${MeasuredHeight}) >= 40', 'rgb(255,0,0)'],
['Number(${MeasuredHeight}) >= 30.', 'rgb(255, 93 , 0)'],
['Number(${MeasuredHeight}) >= 25', 'rgb(255, 180, 0)'],
['Number(${MeasuredHeight}) >= 20', 'rgb(255,255,0)'],
['Number(${MeasuredHeight}) >= 15', 'rgb(0,255,0)'],
['Number(${MeasuredHeight}) >= 10', 'rgb(0,0,255)'],
['Number(${MeasuredHeight}) >= 7.5', 'rgb(75, 0, 130)'],
['Number(${MeasuredHeight}) >= 4', 'rgb(248, 100, 221)'],
['Number(${MeasuredHeight}) >= 0.1', 'rgb(248, 100, 221)'],
['true', 'color("lightblue")']
]
}
*/
});
showLegend();
setHeightTable();
});
/*
return Cesium.when(tileset.readyPromise).then(function (tileset) {
tileset.style = new Cesium.Cesium3DTileStyle({
color: {
conditions: [
['Number(${YearOfConstruction}) >= 2015', 'rgb(127,201,127)'],
['Number(${YearOfConstruction}) >= 2005', 'rgb(190,174,212)'],
['Number(${YearOfConstruction}) >= 1990', 'rgb(253,192,134)'],
['Number(${YearOfConstruction}) >= 1975', 'rgb(255,255,153)'],
['Number(${YearOfConstruction}) >= 1950', 'rgb(56,108,176)'],
['Number(${YearOfConstruction}) >= 1920', 'rgb(240,2,127)'],
['Number(${YearOfConstruction}) >= 1900', 'rgb(191,91,23)'],
['Number(${YearOfConstruction}) >= 1800', 'rgb(102,102,102)'],
['true', 'color("lightblue")']
]
}
});
}); */
});
\ No newline at end of file
{"asset":{"version":"0.0"},"geometricError":229.3220880265378,"root":{"refine":"ADD","boundingVolume":{"region":[0.15977709773480187,0.8507650625156149,0.16108248046872242,0.8515410894765577,203.872792,428.882009]},"content":{"uri":"b3dms/R.b3dm","boundingVolume":{"region":[0.16036067829890002,0.8514251966867225,0.16046636049860033,0.8515310489448098,231.221165,263.9]}},"children":[{"boundingVolume":{"region":[0.15977709773480187,0.8507650625156149,0.16042978910176214,0.8511530759960863,203.872792,428.882009]},"content":{"uri":"b3dms/R/NE.b3dm","boundingVolume":{"region":[0.15977709773480187,0.8510212723221641,0.15978172479720798,0.8510251770860452,270.259748,286.852634]}},"geometricError":0.0},{"boundingVolume":{"region":[0.16042978910176214,0.8507650625156149,0.16108248046872242,0.8511530759960863,203.872792,428.882009]},"content":{"uri":"b3dms/R/SE.b3dm","boundingVolume":{"region":[0.16107810437316705,0.8507650625156149,0.16108248046872242,0.8507675099038445,416.2911,428.882009]}},"geometricError":0.0},{"boundingVolume":{"region":[0.15977709773480187,0.8511530759960863,0.16042978910176214,0.8515410894765577,203.872792,428.882009]},"content":{"uri":"b3dms/R/SW.b3dm","boundingVolume":{"region":[0.16036573412398705,0.8514227783631574,0.160434862482977,0.8515169777690451,231.248925,276.1]}},"children":[{"boundingVolume":{"region":[0.16010344341828203,0.851347082736322,0.16042978910176214,0.8515410894765577,203.872792,428.882009]},"content":{"uri":"b3dms/R/SW/NW.b3dm","boundingVolume":{"region":[0.16033573476493687,0.8514240636116377,0.16043127365989357,0.8515045650935256,233.548755,281.79]}},"children":[{"boundingVolume":{"region":[0.16026661626002212,0.851347082736322,0.16042978910176214,0.8514440861064397,203.872792,428.882009]},"content":{"uri":"b3dms/R/SW/NW/SE.b3dm","boundingVolume":{"region":[0.16034174151400826,0.8514179833881225,0.16042479071474092,0.8514448205161139,242.104346,284.071874]}},"children":[{"boundingVolume":{"region":[0.16034820268089214,0.8513955844213809,0.16042978910176214,0.8514440861064397,203.872792,428.882009]},"content":{"uri":"b3dms/R/SW/NW/SE/NW.b3dm","boundingVolume":{"region":[0.16035945288220904,0.8514154877685053,0.16043181144750782,0.8514448798384635,238.70414,301.738784]}},"geometricError":0.0}],"geometricError":36.40961273226351},{"boundingVolume":{"region":[0.16026661626002212,0.8514440861064397,0.16042978910176214,0.8515410894765577,203.872792,428.882009]},"content":{"uri":"b3dms/R/SW/NW/NW.b3dm","boundingVolume":{"region":[0.16038742000902362,0.8514435804075354,0.1604305299389919,0.8515069058485158,231.71424,280.85697]}},"children":[{"boundingVolume":{"region":[0.16034820268089214,0.8514440861064397,0.16042978910176214,0.8514925877914987,203.872792,428.882009]},"content":{"uri":"b3dms/R/SW/NW/NW/SE.b3dm","boundingVolume":{"region":[0.16036441173240737,0.8514427124881899,0.16043059945807514,0.8514911370565277,234.97906,270.176376]}},"children":[{"boundingVolume":{"region":[0.16038899589132716,0.8514440861064397,0.16042978910176214,0.8514683369489692,203.872792,428.882009]},"content":{"uri":"b3dms/R/SW/NW/NW/SE/SE.b3dm","boundingVolume":{"region":[0.16040069757771577,0.8514500613049895,0.16041219877903493,0.8514604615609376,241.36276,254.64]}},"geometricError":0.0},{"boundingVolume":{"region":[0.16038899589132716,0.8514683369489692,0.16042978910176214,0.8514925877914987,203.872792,428.882009]},"content":{"uri":"b3dms/R/SW/NW/NW/SE/NW.b3dm","boundingVolume":{"region":[0.16041360209901953,0.8514832345793519,0.1604249885382775,0.8514855865210507,237.28584,245.28584]}},"geometricError":0.0}],"geometricError":9.099519182911566},{"boundingVolume":{"region":[0.16034820268089214,0.8514925877914987,0.16042978910176214,0.8515410894765577,203.872792,428.882009]},"content":{"uri":"b3dms/R/SW/NW/NW/NW.b3dm","boundingVolume":{"region":[0.1603978798581476,0.8514917095213664,0.16041903214526332,0.8514964669297571,234.070953,243.3]}},"geometricError":0.0}],"geometricError":29.939828072458475}],"geometricError":47.26665600927166}],"geometricError":82.9030692307651},{"boundingVolume":{"region":[0.16042978910176214,0.8511530759960863,0.16108248046872242,0.8515410894765577,203.872792,428.882009]},"content":{"uri":"b3dms/R/NW.b3dm","boundingVolume":{"region":[0.16042400255904268,0.851431768917438,0.16050775982192336,0.8515410894765577,203.872792,301.62112]}},"children":[{"boundingVolume":{"region":[0.16042978910176214,0.851347082736322,0.16075613478524228,0.8515410894765577,203.872792,428.882009]},"content":{"uri":"b3dms/R/NW/SW.b3dm","boundingVolume":{"region":[0.16042778482629774,0.8514443242727573,0.16048760253872932,0.851515260611071,232.765342,292.170796]}},"children":[{"boundingVolume":{"region":[0.16042978910176214,0.851347082736322,0.1605929619435022,0.8514440861064397,203.872792,428.882009]},"content":{"uri":"b3dms/R/NW/SW/NE.b3dm","boundingVolume":{"region":[0.16042836993379717,0.8514342854291657,0.16044036330532865,0.851445124189975,271.22098,295.362747]}},"geometricError":0.0},{"boundingVolume":{"region":[0.16042978910176214,0.8514440861064397,0.1605929619435022,0.8515410894765577,203.872792,428.882009]},"content":{"uri":"b3dms/R/NW/SW/SW.b3dm","boundingVolume":{"region":[0.1604284701696494,0.8514477994202222,0.1604986669097732,0.8515182031793607,231.189368,296.593443]}},"children":[{"boundingVolume":{"region":[0.16042978910176214,0.8514440861064397,0.16051137552263217,0.8514925877914987,203.872792,428.882009]},"content":{"uri":"b3dms/R/NW/SW/SW/NE.b3dm","boundingVolume":{"region":[0.16042920781657163,0.851447329473888,0.16050448269004955,0.8514926738509778,234.23584,296.664067]}},"children":[{"boundingVolume":{"region":[0.16042978910176214