buffersAnalystJobService.html 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  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_buffersAnalystJobService"></title>
  9. <script type="text/javascript" include="jquery,bootstrap,widgets" src="../js/include-web.js"></script>
  10. </head>
  11. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
  12. <div id="map" style="width: 100%;height:100%"></div>
  13. <script type="text/javascript" src="../../dist/leaflet/include-leaflet.js"></script>
  14. <script type="text/javascript">
  15. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  16. var layer, processingUrl = host + "/iserver/services/distributedanalyst/rest/v1/jobs",
  17. mapURL = host + "/iserver/services/map-world/rest/maps/World",
  18. map = L.map('map', {
  19. crs: L.CRS.EPSG4326,
  20. center: [40.75, -73.95],
  21. maxZoom: 18,
  22. zoom: 12
  23. }),
  24. info = L.control({
  25. position: 'topright'
  26. });
  27. L.supermap.tiledMapLayer(mapURL).addTo(map);
  28. info.onAdd = function () {
  29. var popup = L.DomUtil.create('div');
  30. popup.style.width = '300px';
  31. popup.innerHTML = "<div class='panel panel-default'>" +
  32. "<div class='panel-heading'>" +
  33. "<h3 class='panel-title'>" + resources.text_bufferAnalyst + "</h3>" +
  34. "</div>" +
  35. "<div class='panel-body'>" +
  36. "<div class='input-group'>" +
  37. "<span class='input-group-addon'>" + resources.text_inputData + "<span title='" + resources.text_requiredField +
  38. "' style='color: red;'> * </span> </span>" +
  39. "<input id='datasetName' type='text' class='form-control' value='samples_processing_newyorkPoint_P'/>" +
  40. "</div><p></p>" +
  41. "<div class='input-group'>" +
  42. "<span class='input-group-addon'>" + resources.text_analysisRange + "</span>" +
  43. "<input id='bounds' type='text' class='form-control' value='-74.150, 40.550, -73.750, 40.950'/>" +
  44. "</div><p></p>" +
  45. "<div class='input-group'>" +
  46. "<span class='input-group-addon'>" + resources.text_bufferDistance + "</span>" +
  47. "<input id='distace' type='text' class='form-control' value='15'/>" +
  48. "</div><p></p>" +
  49. "<div class='input-group'>" +
  50. "<span class='input-group-addon'>" + resources.text_bufferDistanceField + "</span>" +
  51. "<input id='distanceField' type='text' class='form-control' value='pickup_latitude'/>" +
  52. "</div><p></p>" +
  53. "<div class='input-group'>" +
  54. "<span class='input-group-addon'>" + resources.text_bufferDistanceUnit + "</span>" +
  55. "<select class='form-control' id='distanceUnit' name='distanceUnit'>" +
  56. "<option value='Meter' selected='selected'>Meter</option>" +
  57. "<option value='Kilometer'>Kilometer</option>" +
  58. "<option value='Yard'>Yard</option>" +
  59. "<option value='Foot'>Foot</option>" +
  60. "<option value='Mile'>Mile</option></select></div><p></p>" +
  61. "<div class='input-group'>" +
  62. "<span class='input-group-addon'>" + resources.text_fusionField + "</span>" +
  63. "<input id='dissoveField' type='text' class='form-control' value='pickup_longitude'/>" +
  64. "</div><p></p>" +
  65. "<div align='right'>" +
  66. "<input type='button' id='btn' class='btn btn-primary' value=" + resources.text_analyst + ">" +
  67. "</div></div></div>";
  68. handleMapEvent(popup, this._map);
  69. return popup;
  70. };
  71. info.addTo(map);
  72. var processingService = new L.supermap.processingService(processingUrl, {
  73. withCredentials: window.isLocal
  74. });
  75. SuperMap.SecurityManager.registerToken(processingUrl, window.exampleToken);
  76. function getBounds() {
  77. if ($('#bounds').val() === "") {
  78. return "";
  79. }
  80. var bounds = [];
  81. $('#bounds').val().split(',').map(function (el) {
  82. bounds.push(parseFloat(el));
  83. });
  84. return L.latLngBounds(L.latLng(bounds[1], bounds[0]), L.latLng(bounds[3], bounds[2]));
  85. }
  86. $('#btn').on('click', function () {
  87. if ($('#msg_container')[0]) {
  88. $('#msg_container').remove();
  89. }
  90. widgets.loader.showLoader();
  91. if (map && layer) {
  92. map.removeLayer(layer);
  93. }
  94. var buffersAnalystJobsParameter = new SuperMap.BuffersAnalystJobsParameter({
  95. datasetName: $('#datasetName').val(),
  96. bounds: getBounds(),
  97. distance: $('#distace').val(),
  98. distanceField: $('#distanceField').val(),
  99. distanceUnit: $('#distanceUnit option:selected').attr('value'),
  100. dissolveField: $('#dissoveField').val()
  101. });
  102. processingService.addBuffersJob(buffersAnalystJobsParameter, function (serviceResult) {
  103. if (serviceResult.error) {
  104. widgets.loader.removeLoader();
  105. var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
  106. widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false);
  107. return;
  108. }
  109. serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
  110. if (info.serviceType === 'RESTMAP') {
  111. SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(function (
  112. response) {
  113. return response.json();
  114. }).then(function (result) {
  115. var mapUrl = result[0].path;
  116. layer = L.supermap.tiledMapLayer(mapUrl, {
  117. noWrap: true,
  118. transparent: true
  119. });
  120. layer.addTo(map);
  121. widgets.loader.removeLoader();
  122. });
  123. }
  124. });
  125. });
  126. });
  127. function handleMapEvent(div, map) {
  128. if (!div || !map) {
  129. return;
  130. }
  131. div.addEventListener('mouseover', function () {
  132. map.dragging.disable();
  133. map.scrollWheelZoom.disable();
  134. map.doubleClickZoom.disable();
  135. });
  136. div.addEventListener('mouseout', function () {
  137. map.dragging.enable();
  138. map.scrollWheelZoom.enable();
  139. map.doubleClickZoom.enable();
  140. });
  141. $("#model").on('shown.bs.modal', function () {
  142. map.dragging.disable();
  143. map.scrollWheelZoom.disable();
  144. map.doubleClickZoom.disable();
  145. });
  146. $("#model").on('hidden.bs.modal', function () {
  147. map.dragging.enable();
  148. map.scrollWheelZoom.enable();
  149. map.doubleClickZoom.enable();
  150. })
  151. }
  152. </script>
  153. </body>
  154. </html>