SummaryRegionJobService.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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_SummaryRegionJobService"></title>
  9. <script type="text/javascript" include="jquery,bootstrap,widgets" src="../js/include-web.js"></script>
  10. </head>
  11. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
  12. <div id="map" style="width: 100%;height:100%"></div>
  13. <script type="text/javascript" src="../../dist/leaflet/include-leaflet.js"></script>
  14. <script type="text/javascript">
  15. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  16. var layer,
  17. processingUrl = host + "/iserver/services/distributedanalyst/rest/v1/jobs",
  18. mapURL = host + "/iserver/services/map-world/rest/maps/World",
  19. map = L.map('map', {
  20. crs: L.CRS.EPSG4326,
  21. center: [40.75, -73.95],
  22. maxZoom: 18,
  23. zoom: 12
  24. }),
  25. info = L.control({
  26. position: 'topright'
  27. });
  28. L.supermap.tiledMapLayer(mapURL).addTo(map);
  29. info.onAdd = function () {
  30. var popup = L.DomUtil.create('div');
  31. popup.style.width = '498px';
  32. popup.innerHTML = "<div class='panel panel-default'>" +
  33. "<div class='panel-heading'>" +
  34. "<h3 class='panel-title'>" + resources.title_SummaryRegionJobService + "</h3>" +
  35. "</div><div class='panel-body'>" +
  36. "<div class='input-group'>" +
  37. "<span class='input-group-addon'>" + resources.text_inputData + "<span title='" + resources.text_requiredField +
  38. "' style='color: red;'> * </span>     </span>" +
  39. "<input id='datasetName' type='text' class='form-control'value='samples_processing_newyorkZone_R'/>" +
  40. "</div><p><div class='input-group'>" +
  41. "<span class='input-group-addon'>" + resources.text_summaryType + "<span title='" + resources.text_requiredField +
  42. "' style='color: red;'> * </span>     </span> <div>" +
  43. "<select class='form-control' id='type' name='clientType'>" +
  44. "<option value='SUMMARYMESH' selected='selected'>" + resources.text_summaryMesh + "</option>" +
  45. "<option value='SUMMARYREGION'>" + resources.text_summaryRegion + "</option>" +
  46. "</select></div></div><p>" +
  47. "<div id='meshTypeS' class='input-group'>" +
  48. "<span class='input-group-addon'>" + resources.text_meshSurfaceType + "<span title='" + resources.text_requiredField +
  49. "' style='color: red;'> * </span>  </span>" +
  50. "<select class='form-control' id='meshType' name='clientType'>" +
  51. "<option value='0' selected='selected'>" + resources.text_4grid + "</option>" +
  52. "<option value='1'>" + resources.text_6grid + "</option>" +
  53. "</select></div><p>" +
  54. "<div id='regionDatasetS'' class='input-group'>" +
  55. "<span class='input-group-addon'>" + resources.text_summaryDataset + "<span title='" + resources.text_requiredField +
  56. "' style='color: red;'> * </span>  </span>" +
  57. "<input id='regionDataset' type='text' class='form-control' value='samples_processing_newyorkZone_R'/>" +
  58. "</div><p><div class='input-group'>" +
  59. "<span class='input-group-addon'>" + resources.text_analysisRange + "</span>" +
  60. "<input id='query' type='text' class='form-control' value='-74.050,40.650,-73.850,40.850'/>" +
  61. "</div><p><p><div class='input-group'>" +
  62. "<span class='input-group-addon'>" + resources.text_statisticStandardField + "</span>" +
  63. "<span class='form-control'>" +
  64. "<input id='standardSummaryFields' type='checkbox'>" +
  65. "</span><span class='input-group-addon'>" + resources.text_statisticWeightField + "</span>" +
  66. "<span class='form-control'><input id='weightedSummaryFields' type='checkbox'>" +
  67. "</span></div><p><div id='standardS' style='display: none'>" +
  68. "<div class='input-group'><span class='input-group-addon'>" + resources.text_statisticAttrFieldMode +
  69. "<span title='" + resources.text_requiredField + "' style='color: red;'> * </span> </span>" +
  70. "<input id='standardStatisticModes' type='text' class='form-control' value='max'/>" +
  71. "</div><p><div class='input-group'>" +
  72. "<span class='input-group-addon'>" + resources.text_AttrFieldName + "<span title='" + resources.text_requiredField +
  73. "' style='color: red;'> * </span>    </span>" +
  74. "<input id='standardFields' type='text' class='form-control' value='LocationID'/>" +
  75. "</div><p></div><div id='weightS' style='display: none'>" +
  76. "<div class='input-group'><span class='input-group-addon'>" + resources.text_statisticWeightFieldMode +
  77. "<span title='" + resources.text_requiredField + "' style='color: red;'> * </span> </span>" +
  78. "<input id='weightedStatisticModes' type='text' class='form-control' value='max'/>" +
  79. "</div><p><div class='input-group'><span class='input-group-addon'>" + resources.text_weightFieldName +
  80. "<span title='" + resources.text_requiredField + "' style='color: red;'> * </span>    </span>" +
  81. "<input id='weightedFields' type='text' class='form-control' value='LocationID'/>" +
  82. "</div><p></div><div id='resolutionS' class='input-group'>" +
  83. "<span class='input-group-addon'>" + resources.text_gridSize + "</span>" +
  84. "<input id='resolution' type='text' class='form-control' value='100'/>" +
  85. "</div><p><div id='meshSizeUnitS' class='input-group'><span class='input-group-addon'>" + resources
  86. .text_gridSizeUnit + "</span>" +
  87. "<select class='form-control' id='meshSizeUnit' name='clientType'>" +
  88. "<option value='Meter' selected='selected'>Meter</option>" +
  89. "<option value='Kilometer'>Kilometer</option>" +
  90. "<option value='Yard'>Yard</option>" +
  91. "<option value='Foot'>Foot</option>" +
  92. "<option value='Mile'>Mile</option>" +
  93. "</select></div><p><div class='input-group'>" +
  94. "<span class='input-group-addon'>" + resources.text_lengthAndArea + "</span>" +
  95. "<span class='form-control'><input id='sumShape' type='checkbox' checked>" +
  96. "</span></div><p><div align='right'>" +
  97. "<input type='button' id='btn' class='btn btn-primary' value='" + resources.btn_summary +
  98. "'/></div></div>"
  99. handleMapEvent(popup, this._map);
  100. return popup;
  101. };
  102. info.addTo(map);
  103. $("#standardSummaryFields").change(function (e) {
  104. if (e.target.checked) {
  105. $("#standardS").show();
  106. return;
  107. }
  108. $("#standardS").hide();
  109. });
  110. $("#weightedSummaryFields").change(function (e) {
  111. if (e.target.checked) {
  112. $("#weightS").show();
  113. return;
  114. }
  115. $("#weightS").hide();
  116. });
  117. $("#type").change(function (e) {
  118. if (e.target.selectedIndex === 0) {
  119. $("#meshTypeS").show();
  120. $("#resolutionS").show();
  121. $("#meshSizeUnitS").show();
  122. $("#regionDatasetS").hide();
  123. return;
  124. }
  125. $("#meshTypeS").hide();
  126. $("#resolutionS").hide();
  127. $("#meshSizeUnitS").hide();
  128. $("#regionDatasetS").show();
  129. });
  130. var processingService = new L.supermap.processingService(processingUrl, {
  131. withCredentials: window.isLocal
  132. });
  133. SuperMap.SecurityManager.registerToken(processingUrl, window.exampleToken);
  134. function getQuery() {
  135. if ($('#query').val() === "") {
  136. return "";
  137. }
  138. var query = [];
  139. $('#query').val().split(',').map(function (el) {
  140. query.push(parseFloat(el));
  141. });
  142. return L.latLngBounds(L.latLng(query[1], query[0]), L.latLng(query[3], query[2]));
  143. }
  144. $('#btn').on('click', function () {
  145. if ($('#msg_container')[0]) {
  146. $('#msg_container').remove();
  147. }
  148. widgets.loader.showLoader();
  149. if (map && layer) {
  150. map.removeLayer(layer);
  151. }
  152. var summaryRegionJobParameter = new SuperMap.SummaryRegionJobParameter({
  153. datasetName: $('#datasetName').val(),
  154. regionDataset: $('#regionDataset').val(),
  155. type: $('#type option:selected').attr('value'),
  156. meshType: $('#meshType option:selected').attr('value'),
  157. query: getQuery(),
  158. standardSummaryFields: $('#standardSummaryFields').get(0).checked,
  159. weightedSummaryFields: $('#weightedSummaryFields').get(0).checked,
  160. standardStatisticModes: $('#standardStatisticModes').val(),
  161. standardFields: $('#standardFields').val(),
  162. weightedStatisticModes: $('#weightedStatisticModes').val(),
  163. weightedFields: $('#weightedFields').val(),
  164. resolution: $('#resolution').val(),
  165. meshSizeUnit: $('#meshSizeUnit option:selected').attr('value'),
  166. sumShape: $('#sumShape').get(0).checked
  167. });
  168. processingService.addSummaryRegionJob(summaryRegionJobParameter, function (serviceResult) {
  169. if (serviceResult.error) {
  170. widgets.loader.removeLoader();
  171. var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
  172. widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false, 400);
  173. return;
  174. }
  175. serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
  176. if (info.serviceType === 'RESTMAP') {
  177. SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(function (
  178. response) {
  179. return response.json();
  180. }).then(function (result) {
  181. var mapUrl = result[0].path;
  182. layer = L.supermap.tiledMapLayer(mapUrl, {
  183. noWrap: true,
  184. transparent: true
  185. });
  186. layer.addTo(map);
  187. widgets.loader.removeLoader();
  188. });
  189. }
  190. });
  191. });
  192. });
  193. function handleMapEvent(div, map) {
  194. if (!div || !map) {
  195. return;
  196. }
  197. div.addEventListener('mouseover', function () {
  198. map.dragging.disable();
  199. map.scrollWheelZoom.disable();
  200. map.doubleClickZoom.disable();
  201. });
  202. div.addEventListener('mouseout', function () {
  203. map.dragging.enable();
  204. map.scrollWheelZoom.enable();
  205. map.doubleClickZoom.enable();
  206. });
  207. $("#model").on('shown.bs.modal', function () {
  208. map.dragging.disable();
  209. map.scrollWheelZoom.disable();
  210. map.doubleClickZoom.disable();
  211. });
  212. $("#model").on('hidden.bs.modal', function () {
  213. map.dragging.enable();
  214. map.scrollWheelZoom.enable();
  215. map.doubleClickZoom.enable();
  216. })
  217. }
  218. </script>
  219. </body>
  220. </html>