classifications.html 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="description" content="">
  6. <meta name="author" content="">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
  8. <title>Potree Viewer</title>
  9. <link rel="stylesheet" type="text/css" href="../build/potree/potree.css">
  10. <link rel="stylesheet" type="text/css" href="../libs/jquery-ui/jquery-ui.min.css">
  11. <link rel="stylesheet" type="text/css" href="../libs/openlayers3/ol.css">
  12. <link rel="stylesheet" type="text/css" href="../libs/spectrum/spectrum.css">
  13. <link rel="stylesheet" type="text/css" href="../libs/jstree/themes/mixed/style.css">
  14. </head>
  15. <body>
  16. <script src="../libs/jquery/jquery-3.1.1.min.js"></script>
  17. <script src="../libs/spectrum/spectrum.js"></script>
  18. <script src="../libs/jquery-ui/jquery-ui.min.js"></script>
  19. <script src="../libs/other/BinaryHeap.js"></script>
  20. <script src="../libs/tween/tween.min.js"></script>
  21. <script src="../libs/d3/d3.js"></script>
  22. <script src="../libs/proj4/proj4.js"></script>
  23. <script src="../libs/openlayers3/ol.js"></script>
  24. <script src="../libs/i18next/i18next.js"></script>
  25. <script src="../libs/jstree/jstree.js"></script>
  26. <script src="../build/potree/potree.js"></script>
  27. <script src="../libs/plasio/js/laslaz.js"></script>
  28. <div class="potree_container" style="position: absolute; width: 100%; height: 100%; left: 0px; top: 0px; ">
  29. <div id="potree_render_area" style="background-image: url('../build/potree/resources/images/background.jpg');">
  30. <span style="position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); z-index: 10000">
  31. <input type="button" value="Default Scheme" onclick="setDefaultScheme()"/>
  32. <input type="button" value="Tree Scheme" onclick="setTreeScheme()"/>
  33. <input type="button" value="Random Scheme" onclick="setRandomScheme()"/>
  34. </span>
  35. </div>
  36. <div id="potree_sidebar_container"> </div>
  37. </div>
  38. <script type="module">
  39. import * as THREE from "../libs/three.js/build/three.module.js";
  40. window.viewer = new Potree.Viewer(document.getElementById("potree_render_area"));
  41. viewer.setDescription(`
  42. Classification schemes can be changed at runtime via viewer.setClassifications(...). <br>
  43. <br>
  44. Point cloud courtesy of <a target='_blank' href='https://www.pge.com/'>PG&E</a>,
  45. hosted by <a target='_blank' href='http://opentopo.sdsc.edu/lidarDataset?opentopoID=OTLAS.032013.26910.2'>Open Topography</a>`);
  46. viewer.setEDLEnabled(true);
  47. viewer.setFOV(60);
  48. viewer.setPointBudget(2_000_000);
  49. viewer.loadGUI(() => {
  50. $("#menu_filters").next().show();
  51. viewer.toggleSidebar();
  52. });
  53. Potree.loadPointCloud("http://5.9.65.151/mschuetz/potree/resources/pointclouds/opentopography/CA13_1.4/cloud.js", "CA13", function(e){
  54. viewer.scene.addPointCloud(e.pointcloud);
  55. e.pointcloud.position.z = 0;
  56. let material = e.pointcloud.material;
  57. material.size = 3;
  58. material.pointSizeType = Potree.PointSizeType.FIXED;
  59. material.activeAttributeName = "classification";
  60. viewer.scene.view.position.set(694274.518, 3916261.987, 348.732);
  61. viewer.scene.view.lookAt(694683.097, 3916386.916, 30.879);
  62. });
  63. </script>
  64. <script type="module">
  65. import * as THREE from "../libs/three.js/build/three.module.js";
  66. window.setDefaultScheme = function(){
  67. viewer.setClassifications(Potree.ClassificationScheme.DEFAULT);
  68. }
  69. window.setTreeScheme = function(){
  70. viewer.setClassifications({
  71. 5: { visible: true, name: 'trees' , color: [0.0, 1.0, 0.0, 1.0] },
  72. DEFAULT: { visible: false, name: 'other' , color: [0.0, 0.0, 0.0, 1.0] },
  73. });
  74. }
  75. window.setRandomScheme = function(){
  76. const scheme = {};
  77. for(let i = 0; i < 32; i++){
  78. scheme[i] = { visible: true, name: `random:_${i}`, color: [Math.random(), Math.random(), Math.random(), 1.0] };
  79. }
  80. viewer.setClassifications(scheme);
  81. }
  82. </script>
  83. </body>
  84. </html>