SummaryMeshJobService.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <!--********************************************************************
  2. * Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.
  3. *********************************************************************-->
  4. <!DOCTYPE html>
  5. <html lang="en">
  6. <head>
  7. <meta charset="UTF-8">
  8. <title data-i18n="resources.title_SummaryMeshJobService"></title>
  9. <style>
  10. .mb-popup {
  11. position: absolute;
  12. top: 10px;
  13. right: 10px;
  14. }
  15. </style>
  16. </head>
  17. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
  18. <div id="map" style="width: 100%;height:100%"></div>
  19. <div id="popup" class="mb-popup" data-i18n="[style]resources.style_width350px">
  20. <div class="panel panel-default">
  21. <div class="panel-heading">
  22. <h3 class="panel-title" data-i18n="resources.title_SummaryMeshJobService"></h3>
  23. </div>
  24. <div class="panel-body">
  25. <div class="input-group">
  26. <span class="input-group-addon"><span data-i18n="resources.text_inputData"></span><span data-i18n="[title]resources.text_requiredField"
  27. style="color: red;"> * </span> </span>
  28. <input id="datasetName" type="text" class="form-control" value="samples_newyork_taxi_2013-01_14k" />
  29. </div>
  30. <p>
  31. <div class="input-group">
  32. <span class="input-group-addon"><span data-i18n="resources.text_polymerizationType"></span><span
  33. data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span> </span>
  34. <select class="form-control" id="type" name="clientType">
  35. <option value="SUMMARYMESH" data-i18n="resources.text_polymerizationMesh" selected="selected">
  36. 网格面聚合
  37. </option>
  38. <option value="SUMMARYREGION" data-i18n="resources.text_polymerizationRegion"></option>
  39. </select>
  40. </div>
  41. <p>
  42. <div id="summarymeshS">
  43. <div class="input-group">
  44. <span class="input-group-addon"><span data-i18n="resources.text_meshSurfaceType"></span><span
  45. data-i18n="[title]resources.text_requiredField" 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 class="input-group">
  53. <span class="input-group-addon" data-i18n="resources.text_analysisRange"></span>
  54. <input id="query" type="text" class="form-control" value="-74.150, 40.550, -73.750, 40.950" />
  55. </div>
  56. <p>
  57. <div class="input-group">
  58. <span class="input-group-addon"><span data-i18n="resources.text_resolution"></span><span
  59. data-i18n="[title]resources.text_requiredField" style="color: red;"> *
  60. </span>  </span>
  61. <input id="resolution" type="text" class="form-control" value="100" />
  62. </div>
  63. <p>
  64. </div>
  65. <div id="summaryregionS" style="display: none">
  66. <div class="input-group">
  67. <span class="input-group-addon" data-i18n="resources.text_regionDataset"></span>
  68. <select class="form-control" id="regionDataset" name="clientType">
  69. <option value="samples_processing_newyorkZone_R" selected="selected">
  70. samples_processing_newyorkZone_R
  71. </option>
  72. <option value="samples_processing_singleRegion_R">samples_processing_singleRegion_R
  73. </option>
  74. </select>
  75. </div>
  76. <p>
  77. </div>
  78. <div class="input-group">
  79. <span class="input-group-addon" data-i18n="resources.text_statisticModes"></span>
  80. <input id="statisticModes" type="text" class="form-control" value="max" />
  81. </div>
  82. <p>
  83. <div class="input-group">
  84. <span class="input-group-addon" data-i18n="resources.text_weightField"></span>
  85. <input id="fields" type="text" class="form-control" value="col7" />
  86. </div>
  87. <p>
  88. <div align="right">
  89. <input type="button" id='btn' class="btn btn-primary" data-i18n="[value]resources.btn_polymerization" />
  90. </div>
  91. </div>
  92. </div>
  93. <script type="text/javascript" include="bootstrap,jquery,widgets" src="../js/include-web.js"></script>
  94. <script type="text/javascript" src="../../dist/mapboxgl/include-mapboxgl.js"></script>
  95. <script>
  96. var map,
  97. baseUrl = (window.isLocal ? window.server : "https://iserver.supermap.io") +
  98. "/iserver/services/map-world/rest/maps/World",
  99. mapUrl = baseUrl + "/zxyTileImage.png?z={z}&x={x}&y={y}",
  100. processingsUrl = (window.isLocal ? window.server : "https://iserver.supermap.io") +
  101. "/iserver/services/distributedanalyst/rest/v1/jobs";
  102. var attribution = "<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox </a>" +
  103. " with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a> | </span>" +
  104. " Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span> ";
  105. map = new mapboxgl.Map({
  106. container: 'map',
  107. style: {
  108. "version": 8,
  109. "sources": {
  110. "raster-tiles": {
  111. "attribution": attribution,
  112. "type": "raster",
  113. "tiles": [mapUrl],
  114. "tileSize": 256
  115. }
  116. },
  117. "layers": [{
  118. "id": "simple-tiles",
  119. "type": "raster",
  120. "source": "raster-tiles",
  121. }]
  122. },
  123. center: [-73.95, 40.75],
  124. zoom: 11
  125. });
  126. map.addControl(new mapboxgl.NavigationControl(), 'top-left');
  127. map.addControl(new mapboxgl.supermap.LogoControl(), 'bottom-right');
  128. //控制两种分析选项值:
  129. $(".form-control").change(function (e) {
  130. if (e.target.selectedIndex == 0) {
  131. $("#summarymeshS").show();
  132. $("summaryregionS").hide();
  133. return;
  134. }
  135. $("#summarymeshS").hide();
  136. $("#summaryregionS").show();
  137. });
  138. SuperMap.SecurityManager.registerToken(processingsUrl, window.exampleToken);
  139. //分布式分析:
  140. var processingService = new mapboxgl.supermap.ProcessingService(processingsUrl, {
  141. withCredentials: window.isLocal
  142. });
  143. function getQuery() {
  144. if ($('#query').val() === "") {
  145. return "";
  146. }
  147. var query = [];
  148. $('#query').val().split(',').map(function (el) {
  149. query.push(parseFloat(el));
  150. });
  151. var sw = new mapboxgl.LngLat(query[0], query[1]);
  152. var ne = new mapboxgl.LngLat(query[2], query[3]);
  153. return new mapboxgl.LngLatBounds(sw, ne);
  154. }
  155. $('#btn').on('click', function () {
  156. if ($('#msg_container')[0]) {
  157. $('#msg_container').remove();
  158. }
  159. widgets.loader.showLoader();
  160. if (map.getLayer("summaryLayer")) {
  161. map.removeLayer("summaryLayer");
  162. map.removeSource("summarySource");
  163. }
  164. var summaryMeshJobParameter = new SuperMap.SummaryMeshJobParameter({
  165. datasetName: $('#datasetName').val(),
  166. resolution: $('#resolution').val(),
  167. meshType: $('#meshType option:selected').attr('value'),
  168. fields: $('#fields').val(),
  169. query: getQuery(),
  170. statisticModes: $('#statisticModes').val(),
  171. type: $('#type option:selected').attr('value'),
  172. regionDataset: $('#regionDataset option:selected').attr('value')
  173. });
  174. processingService.addSummaryMeshJob(summaryMeshJobParameter, function (serviceResult) {
  175. if (serviceResult.error) {
  176. widgets.loader.removeLoader();
  177. var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
  178. widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false);
  179. return;
  180. }
  181. serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
  182. if (info.serviceType === 'RESTMAP') {
  183. SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(
  184. function (response) {
  185. return response.json();
  186. }).then(function (result) {
  187. var mapUrl = result[0].path +
  188. "/zxyTileImage.png?z={z}&x={x}&y={y}&width=256&height=256&transparent=true";
  189. map.addSource("summarySource", {
  190. "type": "raster",
  191. "tiles": [mapUrl],
  192. "tileSize": 256
  193. });
  194. map.addLayer({
  195. "id": "summaryLayer",
  196. "type": "raster",
  197. "source": "summarySource",
  198. "minzoom": 0,
  199. "maxzoom": 22
  200. });
  201. widgets.loader.removeLoader();
  202. });
  203. }
  204. });
  205. });
  206. });
  207. </script>
  208. </body>
  209. </html>