SummaryMeshJobService.html 10 KB

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