SummaryRegionJobService.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  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. <style>
  10. .control {
  11. position: absolute;
  12. top: 50px;
  13. right: 10px;
  14. }
  15. #map {
  16. position: absolute;
  17. }
  18. </style>
  19. </head>
  20. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
  21. <div id="map" style="width: 100%;height:100%"></div>
  22. <div id="control" class="control" style='width:500px'>
  23. <div class="panel panel-default">
  24. <div class="panel-heading">
  25. <h3 class="panel-title" data-i18n="resources.title_SummaryRegionJobService"></h3>
  26. </div>
  27. <div class="panel-body">
  28. <div class="input-group">
  29. <span class="input-group-addon"><span data-i18n="resources.text_inputData"></span><span data-i18n="[title]resources.text_requiredField"
  30. style="color: red;"> * </span>     </span>
  31. <input id="datasetName" type="text" class="form-control" value="samples_processing_newyorkZone_R" />
  32. </div>
  33. <p>
  34. <div class="input-group">
  35. <span class="input-group-addon"><span data-i18n="resources.text_summaryType"></span><span
  36. data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span>     </span>
  37. <div>
  38. <select class="form-control" id="type" name="clientType">
  39. <option value="SUMMARYMESH" data-i18n="resources.text_summaryMesh" selected="selected">
  40. </option>
  41. <option value="SUMMARYREGION" data-i18n="resources.text_summaryRegion"></option>
  42. </select>
  43. </div>
  44. </div>
  45. <p>
  46. <div id="meshTypeS" class="input-group">
  47. <span class="input-group-addon"><span data-i18n="resources.text_meshSurfaceType"></span><span
  48. data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span>  </span>
  49. <select class="form-control" id="meshType" name="clientType">
  50. <option value="0" data-i18n="resources.text_4grid" selected="selected"></option>
  51. <option value="1" data-i18n="resources.text_6grid"></option>
  52. </select>
  53. </div>
  54. <p>
  55. <div id="regionDatasetS" class="input-group">
  56. <span class="input-group-addon" data-i18n="resources.text_summaryDataset"><span
  57. data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span>  </span>
  58. <input id="regionDataset" type="text" class="form-control" value="samples_processing_newyorkZone_R" />
  59. </div>
  60. <p>
  61. <div class="input-group">
  62. <span class="input-group-addon" data-i18n="resources.text_analysisRange"></span>
  63. <input id="query" type="text" class="form-control" value="-74.050,40.650,-73.850,40.850" />
  64. </div>
  65. <p>
  66. <p>
  67. <div class="input-group">
  68. <span class="input-group-addon" data-i18n="resources.text_statisticStandardField"></span>
  69. <span class="form-control">
  70. <input id="standardSummaryFields" type="checkbox">
  71. </span>
  72. <span class="input-group-addon" data-i18n="resources.text_statisticWeightField"></span>
  73. <span class="form-control">
  74. <input id="weightedSummaryFields" type="checkbox">
  75. </span>
  76. </div>
  77. <p>
  78. <div id="standardS" style="display: none">
  79. <div class="input-group">
  80. <span class="input-group-addon"><span data-i18n="resources.text_statisticAttrFieldMode"></span><span
  81. data-i18n="[title]resources.text_requiredField" style="color: red;">
  82. * </span> </span>
  83. <input id="standardStatisticModes" type="text" class="form-control"
  84. value="max" />
  85. </div>
  86. <p>
  87. <div class="input-group">
  88. <span class="input-group-addon"><span data-i18n="resources.text_AttrFieldName"></span><span
  89. data-i18n="[title]resources.text_requiredField" style="color: red;">
  90. * </span>    </span>
  91. <input id="standardFields" type="text" class="form-control"
  92. value="LocationID" />
  93. </div>
  94. <p>
  95. </div>
  96. <div id="weightS" style="display: none">
  97. <div class="input-group">
  98. <span class="input-group-addon"><span data-i18n="resources.text_statisticWeightFieldMode"></span><span
  99. data-i18n="[title]resources.text_requiredField" style="color: red;">
  100. * </span> </span>
  101. <input id="weightedStatisticModes" type="text" class="form-control"
  102. value="max" />
  103. </div>
  104. <p>
  105. <div class="input-group">
  106. <span class="input-group-addon"><span data-i18n="resources.text_weightFieldName"></span><span
  107. data-i18n="[title]resources.text_requiredField" style="color: red;">
  108. * </span>    </span>
  109. <input id="weightedFields" type="text" class="form-control"
  110. value="LocationID" />
  111. </div>
  112. <p>
  113. </div>
  114. <div id="resolutionS" class="input-group">
  115. <span class="input-group-addon" data-i18n="resources.text_gridSize"></span>
  116. <input id="resolution" type="text" class="form-control" value="100" />
  117. </div>
  118. <p>
  119. <div id="meshSizeUnitS" class="input-group">
  120. <span class="input-group-addon" data-i18n="resources.text_gridSizeUnit"></span>
  121. <select class="form-control" id="meshSizeUnit" name="clientType">
  122. <option value="Meter" selected="selected">Meter</option>
  123. <option value="Kilometer">Kilometer</option>
  124. <option value="Yard">Yard</option>
  125. <option value="Foot">Foot</option>
  126. <option value="Mile">Mile</option>
  127. </select>
  128. </div>
  129. <p>
  130. <div class="input-group">
  131. <span class="input-group-addon" data-i18n="resources.text_lengthAndArea"></span>
  132. <span class="form-control">
  133. <input id="sumShape" type="checkbox" checked>
  134. </span>
  135. </div>
  136. <p>
  137. <div align="right">
  138. <input type="button" id='btn' class="btn btn-primary"
  139. data-i18n="[value]resources.btn_summary" />
  140. </div>
  141. </div>
  142. </div>
  143. <script type="text/javascript" include="jquery,bootstrap,widgets" src="../js/include-web.js"></script>
  144. <script type="text/javascript" src="../../dist/classic/include-classic.js"></script>
  145. <script type="text/javascript">
  146. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  147. var resultLayer,
  148. processingsUrl = host + "/iserver/services/distributedanalyst/rest/v1/jobs",
  149. mapURL = host + "/iserver/services/map-world/rest/maps/World",
  150. map = new SuperMap.Map("map", {
  151. controls: [
  152. new SuperMap.Control.Navigation(),
  153. new SuperMap.Control.Zoom(),
  154. new SuperMap.Control.LayerSwitcher()
  155. ],
  156. allOverlays: true
  157. });
  158. map.addControl(new SuperMap.Control.MousePosition());
  159. var layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", mapURL, null, {
  160. maxResolution: "auto"
  161. });
  162. layer.events.on({
  163. "layerInitialized": addLayer
  164. });
  165. function addLayer() {
  166. map.addLayers([layer]);
  167. map.setCenter(new SuperMap.LonLat(-73.95, 40.75), 12);
  168. }
  169. var processingService = new SuperMap.REST.ProcessingService(processingsUrl, {
  170. withCredentials: window.isLocal
  171. });
  172. SuperMap.SecurityManager.registerToken(processingsUrl, window.exampleToken);
  173. $("#standardSummaryFields").change(function (e) {
  174. if (e.target.checked) {
  175. $("#standardS").show();
  176. return;
  177. }
  178. $("#standardS").hide();
  179. });
  180. $("#weightedSummaryFields").change(function (e) {
  181. if (e.target.checked) {
  182. $("#weightS").show();
  183. return;
  184. }
  185. $("#weightS").hide();
  186. });
  187. $("#type").change(function (e) {
  188. if (e.target.selectedIndex === 0) {
  189. $("#meshTypeS").show();
  190. $("#resolutionS").show();
  191. $("#meshSizeUnitS").show();
  192. $("#regionDatasetS").hide();
  193. return;
  194. }
  195. $("#meshTypeS").hide();
  196. $("#resolutionS").hide();
  197. $("#meshSizeUnitS").hide();
  198. $("#regionDatasetS").show();
  199. });
  200. function getQuery() {
  201. if ($('#query').val() === "") {
  202. return "";
  203. }
  204. var query = [];
  205. $('#query').val().split(',').map(function (el) {
  206. query.push(parseFloat(el));
  207. });
  208. return new SuperMap.Bounds(
  209. query[0],
  210. query[1],
  211. query[2],
  212. query[3]
  213. );
  214. }
  215. $('#btn').on('click', function () {
  216. if ($('#msg_container')[0]) {
  217. $('#msg_container').remove();
  218. }
  219. widgets.loader.showLoader();
  220. if (map && resultLayer) {
  221. map.removeLayer(resultLayer);
  222. }
  223. var summaryRegionJobParameter = new SuperMap.SummaryRegionJobParameter({
  224. datasetName: $('#datasetName').val(),
  225. regionDataset: $('#regionDataset').val(),
  226. type: $('#type option:selected').attr('value'),
  227. meshType: $('#meshType option:selected').attr('value'),
  228. query: getQuery(),
  229. standardSummaryFields: $('#standardSummaryFields').get(0).checked,
  230. weightedSummaryFields: $('#weightedSummaryFields').get(0).checked,
  231. standardStatisticModes: $('#standardStatisticModes').val(),
  232. standardFields: $('#standardFields').val(),
  233. weightedStatisticModes: $('#weightedStatisticModes').val(),
  234. weightedFields: $('#weightedFields').val(),
  235. resolution: $('#resolution').val(),
  236. meshSizeUnit: $('#meshSizeUnit option:selected').attr('value'),
  237. sumShape: $('#sumShape').get(0).checked
  238. });
  239. processingService.addSummaryRegionJob(summaryRegionJobParameter, function (serviceResult) {
  240. if (serviceResult.error) {
  241. widgets.loader.removeLoader();
  242. var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
  243. widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false);
  244. return;
  245. }
  246. serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
  247. if (info.serviceType === 'RESTMAP') {
  248. SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(
  249. function (response) {
  250. return response.json();
  251. }).then(function (result) {
  252. var mapUrl = result[0].path;
  253. resultLayer = new SuperMap.Layer.TiledDynamicRESTLayer(
  254. "resultLayer", mapUrl, {
  255. transparent: true
  256. });
  257. resultLayer.events.on({
  258. "layerInitialized": addLayer
  259. });
  260. function addLayer() {
  261. map.addLayer(resultLayer);
  262. widgets.loader.removeLoader();
  263. }
  264. });
  265. }
  266. });
  267. });
  268. });
  269. </script>
  270. </body>
  271. </html>