SummaryMeshJobService.html 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  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_SummaryMeshJobService"></title>
  9. <script type="text/javascript" include="jquery,bootstrap,widgets" src="../js/include-web.js"></script>
  10. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
  11. <div id="map" style="width: 100%;height:100%"></div>
  12. <script type="text/javascript" src="../../dist/leaflet/include-leaflet.js"></script>
  13. <script type="text/javascript">
  14. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  15. var layer,
  16. processingUrl = host + "/iserver/services/distributedanalyst/rest/v1/jobs",
  17. mapURL = host + "/iserver/services/map-world/rest/maps/World",
  18. map = L.map('map', {
  19. crs: L.CRS.EPSG4326,
  20. center: [40.75, -73.95],
  21. maxZoom: 18,
  22. zoom: 12
  23. }),
  24. info = L.control({
  25. position: 'topright'
  26. });
  27. L.supermap.tiledMapLayer(mapURL).addTo(map);
  28. info.onAdd = function () {
  29. var popup = L.DomUtil.create('div');
  30. popup.style.width = '350px';
  31. popup.innerHTML = "<div class='panel panel-default'>" +
  32. "<div class='panel-heading'>" +
  33. "<h3 class='panel-title'>" + resources.title_SummaryMeshJobService + "</h3>" +
  34. "</div><div class='panel-body'>" +
  35. "<div class='input-group'><span class='input-group-addon'>" + resources.text_inputData +
  36. "<span title='" + resources.text_requiredField + "' style='color: red;'> * </span> </span>" +
  37. "<input id='datasetName' type='text' class='form-control' value='samples_newyork_taxi_2013-01_14k'/>" +
  38. "</div><p><div class='input-group'>" +
  39. "<span class='input-group-addon'>" + resources.text_polymerizationType + "<span title='" +
  40. resources.text_requiredField + "' style='color: red;'> * </span> </span>" +
  41. "<select class='form-control' id='type' name='clientType'>" +
  42. "<option value='SUMMARYMESH' selected='selected'>" + resources.text_polymerizationMesh +
  43. "</option>" +
  44. "<option value='SUMMARYREGION'>" + resources.text_polymerizationRegion + "</option>" +
  45. "</select></div><p><div id='summarymeshS'>" +
  46. "<div class='input-group'><span class='input-group-addon'>" + resources.text_meshSurfaceType +
  47. "<span title='" + resources.text_requiredField + "' style='color: red;'> * </span></span>" +
  48. "<select class='form-control' id='meshType' name='clientType'>" +
  49. "<option value='0' selected='selected'>" + resources.text_4grid + "</option>" +
  50. "<option value='1'>" + resources.text_6grid + "</option></select></div><p>" +
  51. "<div class='input-group'> <span class='input-group-addon'>" + resources.text_analysisRange +
  52. "</span>" +
  53. "<input id='query' type='text' class='form-control' value='-74.150, 40.550, -73.750, 40.950'/>" +
  54. "</div><p><div class='input-group'>" +
  55. "<span class='input-group-addon'>" + resources.text_resolution + "<span title='" + resources.text_requiredField +
  56. "' style='color: red;'> * </span>  </span>" +
  57. "<input id='resolution' type='text' class='form-control' value='100'/>" +
  58. "</div><p></div>" +
  59. "<div id='summaryregionS' style='display: none'>" +
  60. "<div class='input-group'>" +
  61. "<span class='input-group-addon'>" + resources.text_regionDataset + "</span>" +
  62. "<select class='form-control' id='regionDataset' name='clientType'>" +
  63. "<option value='samples_processing_newyorkZone_R' selected='selected'>samples_processing_newyorkZone_R</option>" +
  64. "<option value='samples_processing_singleRegion_R'>samples_processing_singleRegion_R</option>" +
  65. "</select></div><p></div><div class='input-group'>" +
  66. "<span class='input-group-addon'>" + resources.text_statisticModes + "</span>" +
  67. "<input id='statisticModes' type='text' class='form-control' value='max'/>" +
  68. "</div><p><div class='input-group'>" +
  69. "<span class='input-group-addon'>" + resources.text_weightField + "</span>" +
  70. "<input id='fields' type='text' class='form-control' value='col7'/>" +
  71. "</div><p><div align='right'>" +
  72. "<input type='button' id='btn' class='btn btn-primary' value='" + resources.btn_polymerization +
  73. "'/>" +
  74. "</div></div>";
  75. handleMapEvent(popup, this._map);
  76. return popup;
  77. };
  78. info.addTo(map);
  79. $("#type").change(function (e) {
  80. if (e.target.selectedIndex === 0) {
  81. $("#summarymeshS").show();
  82. $("#summaryregionS").hide();
  83. return;
  84. }
  85. $("#summarymeshS").hide();
  86. $("#summaryregionS").show();
  87. });
  88. var processingService = new L.supermap.processingService(processingUrl, {
  89. withCredentials: window.isLocal
  90. });
  91. SuperMap.SecurityManager.registerToken(processingUrl, window.exampleToken);
  92. function getQuery() {
  93. if ($('#query').val() === "") {
  94. return "";
  95. }
  96. var query = [];
  97. $('#query').val().split(',').map(function (el) {
  98. query.push(parseFloat(el));
  99. });
  100. return L.latLngBounds(L.latLng(query[1], query[0]), L.latLng(query[3], query[2]));
  101. }
  102. $('#btn').on('click', function () {
  103. if ($('#msg_container')[0]) {
  104. $('#msg_container').remove();
  105. }
  106. widgets.loader.showLoader();
  107. if (map && layer) {
  108. map.removeLayer(layer);
  109. }
  110. var summaryMeshJobParameter = new SuperMap.SummaryMeshJobParameter({
  111. datasetName: $('#datasetName').val(),
  112. resolution: $('#resolution').val(),
  113. meshType: $('#meshType option:selected').attr('value'),
  114. fields: $('#fields').val(),
  115. query: getQuery(),
  116. statisticModes: $('#statisticModes').val(),
  117. type: $('#type option:selected').attr('value'),
  118. regionDataset: $('#regionDataset option:selected').attr('value')
  119. });
  120. processingService.addSummaryMeshJob(summaryMeshJobParameter, function (serviceResult) {
  121. if (serviceResult.error) {
  122. widgets.loader.removeLoader();
  123. var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
  124. widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false);
  125. return;
  126. }
  127. serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
  128. if (info.serviceType === 'RESTMAP') {
  129. SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(function (
  130. response) {
  131. return response.json();
  132. }).then(function (result) {
  133. var mapUrl = result[0].path;
  134. layer = L.supermap.tiledMapLayer(mapUrl, {
  135. noWrap: true,
  136. transparent: true
  137. });
  138. layer.addTo(map);
  139. widgets.loader.removeLoader();
  140. });
  141. }
  142. });
  143. });
  144. });
  145. function handleMapEvent(div, map) {
  146. if (!div || !map) {
  147. return;
  148. }
  149. div.addEventListener('mouseover', function () {
  150. map.dragging.disable();
  151. map.scrollWheelZoom.disable();
  152. map.doubleClickZoom.disable();
  153. });
  154. div.addEventListener('mouseout', function () {
  155. map.dragging.enable();
  156. map.scrollWheelZoom.enable();
  157. map.doubleClickZoom.enable();
  158. });
  159. $("#model").on('shown.bs.modal', function () {
  160. map.dragging.disable();
  161. map.scrollWheelZoom.disable();
  162. map.doubleClickZoom.disable();
  163. });
  164. $("#model").on('hidden.bs.modal', function () {
  165. map.dragging.enable();
  166. map.scrollWheelZoom.enable();
  167. map.doubleClickZoom.enable();
  168. })
  169. }
  170. </script>
  171. </body>
  172. </html>