SummaryMeshJobService.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  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. <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:350px'>
  23. <div class="panel panel-default">
  24. <div class="panel-heading">
  25. <h3 class="panel-title" data-i18n="resources.title_SummaryMeshJobService"></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_newyork_taxi_2013-01_14k" />
  32. </div>
  33. <p>
  34. <div class="input-group">
  35. <span class="input-group-addon"><span data-i18n="resources.text_polymerizationType"></span><span
  36. data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span> </span>
  37. <select class="form-control" id="type" name="clientType">
  38. <option value="SUMMARYMESH" data-i18n="resources.text_polymerizationMesh" selected="selected"></option>
  39. <option value="SUMMARYREGION" data-i18n="resources.text_polymerizationRegion"></option>
  40. </select>
  41. </div>
  42. <p>
  43. <div id="summarymeshS">
  44. <div class="input-group">
  45. <span class="input-group-addon"><span data-i18n="resources.text_meshSurfaceType"></span><span
  46. data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span></span>
  47. <select class="form-control" id="meshType" name="clientType">
  48. <option value="0" data-i18n="resources.text_4grid" selected="selected"></option>
  49. <option value="1" data-i18n="resources.text_6grid"></option>
  50. </select>
  51. </div>
  52. <p>
  53. <div class="input-group">
  54. <span class="input-group-addon" data-i18n="resources.text_analysisRange"></span>
  55. <input id="query" type="text" class="form-control" value="-74.150, 40.550, -73.750, 40.950" />
  56. </div>
  57. <p>
  58. <div class="input-group">
  59. <span class="input-group-addon"><span data-i18n="resources.text_resolution"></span><span
  60. data-i18n="[title]resources.text_requiredField" style="color: red;"> *
  61. </span>  </span>
  62. <input id="resolution" type="text" class="form-control" value="100" />
  63. </div>
  64. <p>
  65. </div>
  66. <div id="summaryregionS" style="display: none">
  67. <div class="input-group">
  68. <span class="input-group-addon" data-i18n="resources.text_regionDataset"></span>
  69. <select class="form-control" id="regionDataset" name="clientType">
  70. <option value="samples_processing_newyorkZone_R" selected="selected">
  71. samples_processing_newyorkZone_R
  72. </option>
  73. <option value="samples_processing_singleRegion_R">samples_processing_singleRegion_R
  74. </option>
  75. </select>
  76. </div>
  77. <p>
  78. </div>
  79. <div class="input-group">
  80. <span class="input-group-addon" data-i18n="resources.text_statisticModes"></span>
  81. <input id="statisticModes" type="text" class="form-control" value="max" />
  82. </div>
  83. <p>
  84. <div class="input-group">
  85. <span class="input-group-addon" data-i18n="resources.text_weightField"></span>
  86. <input id="fields" type="text" class="form-control" value="col7" />
  87. </div>
  88. <p>
  89. <div align="right">
  90. <input type="button" id='btn' class="btn btn-primary" data-i18n="[value]resources.btn_polymerization" />
  91. </div>
  92. </div>
  93. </div>
  94. <script type="text/javascript" include="jquery,bootstrap,widgets" src="../js/include-web.js"></script>
  95. <script type="text/javascript" src="../../dist/classic/include-classic.js"></script>
  96. <script type="text/javascript">
  97. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  98. var resultLayer,
  99. processingsUrl = host + "/iserver/services/distributedanalyst/rest/v1/jobs",
  100. mapURL = host + "/iserver/services/map-world/rest/maps/World",
  101. map = new SuperMap.Map("map", {
  102. controls: [
  103. new SuperMap.Control.Navigation(),
  104. new SuperMap.Control.Zoom(),
  105. new SuperMap.Control.LayerSwitcher()
  106. ],
  107. allOverlays: true
  108. });
  109. map.addControl(new SuperMap.Control.MousePosition());
  110. var layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", mapURL, null, {
  111. maxResolution: "auto"
  112. });
  113. layer.events.on({
  114. "layerInitialized": addLayer
  115. });
  116. function addLayer() {
  117. map.addLayers([layer]);
  118. map.setCenter(new SuperMap.LonLat(-73.95, 40.75), 12);
  119. }
  120. var processingService = new SuperMap.REST.ProcessingService(processingsUrl, {
  121. withCredentials: window.isLocal
  122. });
  123. SuperMap.SecurityManager.registerToken(processingsUrl, window.exampleToken);
  124. $("#type").change(function (e) {
  125. if (e.target.selectedIndex === 0) {
  126. $("#summarymeshS").show();
  127. $("#summaryregionS").hide();
  128. return;
  129. }
  130. $("#summarymeshS").hide();
  131. $("#summaryregionS").show();
  132. });
  133. function getQuery() {
  134. if ($('#query').val() === "") {
  135. return "";
  136. }
  137. var query = [];
  138. $('#query').val().split(',').map(function (el) {
  139. query.push(parseFloat(el));
  140. });
  141. return new SuperMap.Bounds(
  142. query[0],
  143. query[1],
  144. query[2],
  145. query[3]
  146. );
  147. }
  148. $('#btn').on('click', function () {
  149. if ($('#msg_container')[0]) {
  150. $('#msg_container').remove();
  151. }
  152. widgets.loader.showLoader();
  153. if (map && resultLayer) {
  154. map.removeLayer(resultLayer);
  155. }
  156. var summaryMeshJobParameter = new SuperMap.SummaryMeshJobParameter({
  157. datasetName: $('#datasetName').val(),
  158. resolution: $('#resolution').val(),
  159. meshType: $('#meshType option:selected').attr('value'),
  160. fields: $('#fields').val(),
  161. query: getQuery(),
  162. statisticModes: $('#statisticModes').val(),
  163. type: $('#type option:selected').attr('value'),
  164. regionDataset: $('#regionDataset option:selected').attr('value')
  165. });
  166. processingService.addSummaryMeshJob(summaryMeshJobParameter, function (serviceResult) {
  167. if (serviceResult.error) {
  168. widgets.loader.removeLoader();
  169. var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
  170. widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false);
  171. return;
  172. }
  173. serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
  174. if (info.serviceType === 'RESTMAP') {
  175. SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(
  176. function (response) {
  177. return response.json();
  178. }).then(function (result) {
  179. var mapUrl = result[0].path;
  180. resultLayer = new SuperMap.Layer.TiledDynamicRESTLayer(
  181. "resultLayer", mapUrl, {
  182. transparent: true
  183. });
  184. resultLayer.events.on({
  185. "layerInitialized": addLayer
  186. });
  187. function addLayer() {
  188. map.addLayer(resultLayer);
  189. widgets.loader.removeLoader();
  190. }
  191. });
  192. }
  193. });
  194. });
  195. });
  196. </script>
  197. </body>
  198. </html>