02_datasetService.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <!--********************************************************************
  2. * Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.
  3. *********************************************************************-->
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="UTF-8">
  8. <title data-i18n="resources.title_DatasetInfo"></title>
  9. <script type="text/javascript" src="../../dist/ol/include-ol.js"></script>
  10. <style>
  11. body {
  12. margin: 0;
  13. overflow: hidden;
  14. background: #fff;
  15. width: 100%;
  16. height: 100%
  17. }
  18. #map {
  19. position: absolute;
  20. width: 100%;
  21. height: 100%;
  22. }
  23. #toolbar {
  24. position: absolute;
  25. top: 50px;
  26. right: 10px;
  27. width: 300px;
  28. text-align: center;
  29. z-index: 100;
  30. border-radius: 4px;
  31. }
  32. .ol-popup {
  33. position: absolute;
  34. background-color: white;
  35. -webkit-filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
  36. filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
  37. padding: 15px;
  38. border-radius: 10px;
  39. border: 1px solid #cccccc;
  40. bottom: 12px;
  41. left: -50px;
  42. min-width: 280px;
  43. }
  44. .ol-popup:after, .ol-popup:before {
  45. top: 100%;
  46. border: solid transparent;
  47. content: " ";
  48. height: 0;
  49. width: 0;
  50. position: absolute;
  51. pointer-events: none;
  52. }
  53. .ol-popup:after {
  54. border-top-color: white;
  55. border-width: 10px;
  56. left: 48px;
  57. margin-left: -10px;
  58. }
  59. .ol-popup:before {
  60. border-top-color: #cccccc;
  61. border-width: 11px;
  62. left: 48px;
  63. margin-left: -11px;
  64. }
  65. .ol-popup-closer {
  66. text-decoration: none;
  67. position: absolute;
  68. top: 2px;
  69. right: 8px;
  70. }
  71. .ol-popup-closer:after {
  72. content: "✖";
  73. }
  74. </style>
  75. </head>
  76. <body>
  77. <div id="toolbar" class="panel panel-primary">
  78. <div class='panel-heading'>
  79. <h5 class='panel-title text-center' data-i18n="resources.title_DatasetInfo"></h5></div>
  80. <div class='panel-body content'>
  81. <div class='panel'>
  82. <div class='input-group'>
  83. <span class='input-group-addon' data-i18n ="resources.text_Datasources"></span>
  84. <select id='datasourcesSelect' class='form-control'></select>
  85. </div>
  86. </div>
  87. <div class='panel'>
  88. <div class='input-group'>
  89. <span class='input-group-addon' data-i18n ="resources.text_dataset"></span>
  90. <select id='datasetsSelect' class='form-control'></select>
  91. </div>
  92. </div>
  93. <input type="button" class="btn btn-default" data-i18n ="[value]resources.btn_query"
  94. onclick="datasetsPrint()"/>
  95. </div>
  96. </div>
  97. <div id="map"></div>
  98. <div id="popup" class="ol-popup">
  99. <a href="#" id="popup-closer" class="ol-popup-closer"></a>
  100. <div id="popup-content"></div>
  101. </div>
  102. <script type="text/javascript" include="bootstrap-css" src="../js/include-web.js"></script>
  103. <script type="text/javascript">
  104. let map,
  105. datasourcesSelect,
  106. datasetsSelect,
  107. datasourceName,
  108. baseUrl = (window.isLocal ? window.server : "https://iserver.supermap.io")+"/iserver/services/map-world/rest/maps/World",
  109. url = (window.isLocal ? window.server : "https://iserver.supermap.io")+"/iserver/services/data-world/rest/data";
  110. let container = document.getElementById('popup');
  111. let content = document.getElementById('popup-content');
  112. let closer = document.getElementById('popup-closer');
  113. let overlay = new ol.Overlay(({
  114. element: container,
  115. autoPan: true,
  116. autoPanAnimation: {
  117. duration: 250
  118. }
  119. }));
  120. map = new ol.Map({
  121. target: 'map',
  122. controls: ol.control.defaults({attributionOptions: {collapsed: false}})
  123. .extend([new ol.supermap.control.Logo()]),
  124. view: new ol.View({
  125. center: [0, 0],
  126. zoom: 3,
  127. projection: 'EPSG:4326',
  128. multiWorld: true
  129. }),
  130. overlays: [overlay]
  131. });
  132. let layer = new ol.layer.Tile({
  133. source: new ol.source.TileSuperMapRest({
  134. url: baseUrl,
  135. }),
  136. projection: 'EPSG:4326'
  137. });
  138. map.addLayer(layer);
  139. dataSetService();
  140. function dataSetService() {
  141. new ol.supermap.DatasourceService(url).getDatasources(function (serviceResult) {
  142. datasourcesSelect = document.getElementById("datasourcesSelect");
  143. const datasourceNames = serviceResult.result.datasourceNames;
  144. for (let i = 0,len = datasourceNames.length; i < len; i++) {
  145. datasourcesSelect.options[i] = new Option(datasourceNames[i], datasourceNames[i]);
  146. }
  147. datasourceName = datasourcesSelect.value;
  148. datasetsService(datasourceName)
  149. })
  150. }
  151. //数据集信息
  152. function datasetsService(datasourceName){
  153. new ol.supermap.DatasetService(url).getDatasets(datasourceName,function (serviceResult) {
  154. const datasetNames = serviceResult.result.datasetNames;
  155. datasetsSelect = document.getElementById("datasetsSelect");
  156. for (let i = 0,len = datasetNames.length; i < len; i++) {
  157. datasetsSelect.options[i] = new Option(datasetNames[i], datasetNames[i]);
  158. }
  159. });
  160. }
  161. function datasetsPrint(){
  162. datasourceName = datasourcesSelect.value;
  163. const datasetName = datasetsSelect.value;
  164. new ol.supermap.DatasetService(url).getDataset(datasourceName, datasetName, function (serviceResult) {
  165. let innerHTML = "(" + resources.text_datasetInfoPrint + ")" + "<br><br>";
  166. innerHTML += "dataSourceName:" + JSON.stringify(serviceResult.result.datasetInfo.dataSourceName, null, 2) + "<br>";
  167. innerHTML += "description:" + JSON.stringify(serviceResult.result.datasetInfo.description, null, 2) + "<br>";
  168. innerHTML += "isFileCache:" + JSON.stringify(serviceResult.result.datasetInfo.isFileCache, null, 2) + "<br>";
  169. innerHTML += "name:" + JSON.stringify(serviceResult.result.datasetInfo.name, null, 2) + "<br>";
  170. innerHTML += "prjCoordSys:" + "(...)" + "<br>";
  171. content.innerHTML = innerHTML;
  172. overlay.setPosition([0, 0])
  173. });
  174. }
  175. //关闭弹窗
  176. closer.onclick = function () {
  177. overlay.setPosition(undefined);
  178. closer.blur();
  179. return false;
  180. };
  181. </script>
  182. </body>
  183. </html>