SummaryRegionJobService.html 16 KB

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