Commit 523afcce authored by Santhanavanich's avatar Santhanavanich
Browse files

upload

parent bed6d349
Showing with 1200 additions and 0 deletions
+1200 -0
File added
File added
File added
File added
File added
File added
{"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
{
"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
{
"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
{
"conformsTo": [
"http://www.opengis.net/spec/OAPI_Common/1.0/req/core"
]
}
\ No newline at end of file
{
"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
# 3DGeoVolumesAPI # 3DGeoVolumesAPI
### Live Demo: https://steinbeis-3dps.eu/3DGeoVolumes/
![Steinbeis GeoVolumes API](./img/ResourceArchitecture2.jpg)
## 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
img/ResourceArchitecture.jpg

46.1 KB

img/ResourceArchitecture2.jpg

308 KB

{
"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="
}
}
}
server.js 0 → 100644
(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
<!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
<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
<!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
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment