04_geometryBatchAnalystService.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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_geometryBatchAnalystService"></title>
  9. <script type="text/javascript" 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="margin:0 auto;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 baseUrl = host + "/iserver/services/map-jingjin/rest/maps/京津地区地图",
  17. serviceUrl = host + "/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst",
  18. map = L.map('map', {
  19. crs: L.CRS.EPSG4326,
  20. center: [40, 117],
  21. maxZoom: 18,
  22. zoom: 8
  23. });
  24. L.supermap.tiledMapLayer(baseUrl, {noWrap: true}).addTo(map);
  25. batchAnalystFromGeometry();
  26. function batchAnalystFromGeometry() {
  27. //缓冲区分析数据:
  28. var bufferLine = {
  29. "type": "Feature",
  30. "geometry": {
  31. "type": "LineString",
  32. "coordinates": [[117, 40.50], [118, 40]]
  33. }
  34. };
  35. var bufferPoint = {
  36. "type": "Feature",
  37. "geometry": {
  38. "type": "Point",
  39. "coordinates": [117, 40]
  40. }
  41. };
  42. //叠加分析数据:
  43. var sourceGeometry = {
  44. "type": "Feature",
  45. "geometry": {
  46. "type": "Polygon",
  47. "coordinates": [[[116, 39.75],
  48. [116, 39.15],
  49. [117, 39.15],
  50. [117, 39.85],
  51. [116, 39.85]]]
  52. }
  53. };
  54. var operateGeometry = {
  55. "type": "Feature",
  56. "geometry": {
  57. "type": "Polygon",
  58. "coordinates": [[[116.25, 40.5],
  59. [116.25, 38.5],
  60. [116.75, 38.5],
  61. [116.75, 40.5],
  62. [116.25, 40.5]]]
  63. }
  64. };
  65. //数据加载到地图:
  66. var geojsonFeature = {
  67. "type": "FeatureCollection",
  68. "features": [bufferLine, bufferPoint, sourceGeometry, operateGeometry]
  69. };
  70. L.geoJSON(geojsonFeature, {
  71. style: function (feature) {
  72. if (feature.geometry.type === "LineString") {
  73. return {
  74. "color": "blue",
  75. "weight": 1.5,
  76. };
  77. } else if (feature.geometry.type === "Polygon") {
  78. return {
  79. "weight": 1.5,
  80. "color": "blue",
  81. "opacity": 0.15
  82. };
  83. }
  84. }
  85. }).addTo(map);
  86. //缓冲区分析参数
  87. var geoBufferAnalystParams = {
  88. analystName: "buffer",
  89. param: new SuperMap.GeometryBufferAnalystParameters({
  90. sourceGeometry: bufferLine,
  91. sourceGeometrySRID: 4326,
  92. bufferSetting: new SuperMap.BufferSetting({
  93. endType: SuperMap.BufferEndType.ROUND,
  94. leftDistance: new SuperMap.BufferDistance({value: 5000}),
  95. rightDistance: new SuperMap.BufferDistance({value: 5000}),
  96. semicircleLineSegment: 10
  97. })
  98. })
  99. };
  100. var geoBufferAnalystParams_Point = {
  101. analystName: "buffer",
  102. param: new SuperMap.GeometryBufferAnalystParameters({
  103. sourceGeometry: bufferPoint,
  104. sourceGeometrySRID: 4326,
  105. bufferSetting: new SuperMap.BufferSetting({
  106. endType: SuperMap.BufferEndType.ROUND,
  107. leftDistance: new SuperMap.BufferDistance({value:5000}),
  108. rightDistance: new SuperMap.BufferDistance({value: 5000}),
  109. radiusUnit: "METER",
  110. semicircleLineSegment: 10
  111. })
  112. })
  113. };
  114. //叠加分析参数
  115. var OverlayBatchAnalystParameters = {
  116. analystName: "overlay",
  117. param: new SuperMap.GeometryOverlayAnalystParameters({
  118. sourceGeometry: sourceGeometry,
  119. operateGeometry: operateGeometry,
  120. operation: SuperMap.OverlayOperationType.CLIP
  121. })
  122. };
  123. //批量分析参数
  124. var paramter = [geoBufferAnalystParams, OverlayBatchAnalystParameters, geoBufferAnalystParams_Point];
  125. //批量分析
  126. L.supermap.spatialAnalystService(serviceUrl).geometrybatchAnalysis(paramter, function (serviceResult) {
  127. //结果展示
  128. var overlayResultStyle = {
  129. "color": "red",
  130. "opacity": 0.65
  131. };
  132. var bufferResultLayer = L.geoJSON([serviceResult.result[0].resultGeometry, serviceResult.result[2].resultGeometry], {
  133. style: overlayResultStyle
  134. }).addTo(map);
  135. bufferResultLayer.on("mousemove", function (e) {
  136. e.layer.bindPopup('<h4>'+resources.text_bufferAnalystResult+'</h4>').openPopup();
  137. });
  138. bufferResultLayer.on("mouseout", function (e) {
  139. e.layer.closePopup();
  140. });
  141. var overlayResultLayer = L.geoJSON(serviceResult.result[1].resultGeometry, {
  142. style: overlayResultStyle
  143. }).addTo(map);
  144. overlayResultLayer.on("mousemove", function (e) {
  145. e.layer.bindPopup('<h4>'+resources.text_overlayAnalystResult+'</h4>').openPopup();
  146. });
  147. overlayResultLayer.on("mouseout", function (e) {
  148. e.layer.closePopup();
  149. });
  150. });
  151. }
  152. </script>
  153. </body>
  154. </html>