topologyValidatorJobService.html 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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_topologyValidatorJobService"></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_topologyValidatorJobService"></h3>
  24. </div>
  25. <div class='panel-body'>
  26. <div class='input-group'>
  27. <span class='input-group-addon'><span data-i18n="resources.text_sourceDataset"></span><span
  28. data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span> </span>
  29. <input id='datasetName' type='text' class='form-control' value='samples_processing_newyorkZone_R' /></div>
  30. <p></p>
  31. <div class='input-group'>
  32. <span class='input-group-addon' data-i18n="resources.text_topologyValidatorRule"><span data-i18n="[title]resources.text_requiredField"
  33. style="color: red;"> * </span></span>
  34. <select class='form-control' id='rule' name='rule'>
  35. <option value='REGIONNOOVERLAP' data-i18n="resources.btn_regionNoOverlap"></option>
  36. <option value='REGIONNOOVERLAPWITH' data-i18n="resources.btn_regionNoOverlapWith"></option>
  37. <option value='REGIONCONTAINEDBYREGION' data-i18n="resources.btn_regionContainedByRegion"></option>
  38. <option value='REGIONCOVEREDBYREGION' selected data-i18n="resources.btn_regionCoveredByRegion"></option>
  39. <option value='LINENOOVERLAP' data-i18n="resources.btn_lineNoOverlap"></option>
  40. <option value='LINENOOVERLAPWITH' data-i18n="resources.btn_lineNoOverlapWith"></option>
  41. <option value='POINTNOIDENTICAL' data-i18n="resources.btn_pointNoIdentical"></option>
  42. </select>
  43. </div>
  44. <p></p>
  45. <div class='input-group' id='datasetTopologyDiv'>
  46. <span class='input-group-addon'><span data-i18n="resources.text_topologyValidatorDataset"></span><span
  47. data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span> </span>
  48. <input id='datasetTopology' type='text' class='form-control' value='samples_processing_newyorkResidential_R' /></div>
  49. <p></p>
  50. <div class='input-group'>
  51. <span class='input-group-addon' data-i18n="resources.text_tolerance"></span>
  52. <input id='tolerance' type='text' class='form-control' value='0.000001' />
  53. </div>
  54. <p></p>
  55. <div align='right'>
  56. <input type='button' id='btn' class='btn btn-primary' data-i18n="[value]resources.text_analyst" />
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. <script type="text/javascript" include="bootstrap,jquery,widgets" src="../js/include-web.js"></script>
  62. <script type="text/javascript">
  63. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  64. var layer,
  65. processingsUrl = host + "/iserver/services/distributedanalyst/rest/v1/jobs",
  66. mapURL = host + "/iserver/services/map-world/rest/maps/World",
  67. map = new ol.Map({
  68. target: 'map',
  69. controls: ol.control.defaults({
  70. attributionOptions: {
  71. collapsed: false
  72. }
  73. })
  74. .extend([new ol.supermap.control.Logo()]),
  75. view: new ol.View({
  76. center: [-73.95, 40.75],
  77. zoom: 12,
  78. projection: 'EPSG:4326',
  79. multiWorld: true
  80. })
  81. });
  82. map.addLayer(new ol.layer.Tile({
  83. source: new ol.source.TileSuperMapRest({
  84. url: mapURL,
  85. }),
  86. }));
  87. var processingService = new ol.supermap.ProcessingService(processingsUrl, {
  88. withCredentials: window.isLocal
  89. });
  90. initForm();
  91. bindClick();
  92. function initForm() {
  93. $("#rule").change(function () {
  94. var rule = $(this).val();
  95. if (rule == "PointNoIdentical" || rule == "LineNoOverlap" || rule == "RegionNoOverlap") {
  96. $("#datasetTopologyDiv").hide();
  97. } else {
  98. $("#datasetTopologyDiv").show();
  99. }
  100. });
  101. var info = new ol.control.Control({
  102. element: popup
  103. });
  104. info.setMap(map);
  105. map.addControl(info);
  106. }
  107. function bindClick() {
  108. $('#btn').on('click', function () {
  109. if ($('#msg_container')[0]) {
  110. $('#msg_container').remove();
  111. }
  112. widgets.loader.showLoader();
  113. if (map && layer) {
  114. map.removeLayer(layer);
  115. }
  116. TopologyValidatorJobs();
  117. });
  118. }
  119. SuperMap.SecurityManager.registerToken(processingsUrl, window.exampleToken);
  120. function TopologyValidatorJobs() {
  121. var topologyValidatorJobsParameter = new SuperMap.TopologyValidatorJobsParameter({
  122. datasetName: $('#datasetName').val(),
  123. datasetTopology: $('#datasetTopology').val(),
  124. rule: $('#rule option:selected').attr('value'),
  125. tolerance: $('#tolerance').val()
  126. });
  127. processingService.addTopologyValidatorJob(topologyValidatorJobsParameter, function (serviceResult) {
  128. if (serviceResult.error) {
  129. widgets.loader.removeLoader();
  130. var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
  131. widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false);
  132. return;
  133. }
  134. serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
  135. if (info.serviceType === 'RESTMAP') {
  136. SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(function (
  137. response) {
  138. return response.json();
  139. }).then(function (result) {
  140. var mapUrl = result[0].path;
  141. new ol.supermap.MapService(mapUrl).getMapInfo(function (mapInfo) {
  142. layer = new ol.layer.Tile({
  143. source: new ol.source.ImageSuperMapRest(ol.source
  144. .ImageSuperMapRest.optionsFromMapJSON(
  145. mapUrl, mapInfo.result))
  146. });
  147. map.addLayer(layer);
  148. widgets.loader.removeLoader();
  149. });
  150. });
  151. }
  152. });
  153. });
  154. }
  155. </script>
  156. </body>
  157. </html>