overlay_splinesData.html 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  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_splinesData"></title>
  9. <style type="text/css">
  10. body {
  11. margin: 0;
  12. overflow: hidden;
  13. background: #fff;
  14. width: 100%;
  15. height: 100%
  16. }
  17. #map {
  18. position: absolute;
  19. width: 100%;
  20. height: 100%;
  21. }
  22. #toolbar {
  23. position: absolute;
  24. top: 50px;
  25. right: 10px;
  26. text-align: center;
  27. z-index: 100;
  28. border-radius: 4px;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div id="toolbar" class="panel panel-primary">
  34. <div class='panel-heading'>
  35. <h5 class='panel-title text-center' data-i18n="resources.text_splinesData"></h5></div>
  36. <div class='panel-body content'>
  37. <input type="button" class="btn btn-default" data-i18n="[value]resources.btn_createPoint" onclick="createPoint()"/>
  38. <input type="button" class="btn btn-default" data-i18n="[value]resources.btn_createBLine" onclick="createBLine()"/>
  39. <input type="button" class="btn btn-default" data-i18n="[value]resources.text_input_value_clear" onclick="clearAllFeatures()"/>
  40. </div>
  41. </div>
  42. <div id="map"></div>
  43. <script type="text/javascript" include="bootstrap,widgets.alert" src="../js/include-web.js"></script>
  44. <script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
  45. <script>
  46. var featuresOrigin = [];
  47. var map, local, layer, pointLayer, drawPoint, lineLayer, markerLayer, vector, select;
  48. var pointArray = [];
  49. var styleDraw = {
  50. strokeColor: "#304DBE",
  51. strokeWidth: 2,
  52. pointerEvents: "visiblePainted",
  53. fillColor: "#304DBE",
  54. fillOpacity: 0.8,
  55. pointRadius: 6
  56. };
  57. style = {
  58. strokeColor: "#304DBE",
  59. strokeWidth: 2,
  60. pointerEvents: "visiblePainted",
  61. fillColor: "#304DBE",
  62. fillOpacity: 0.8
  63. };
  64. var style_green = {
  65. strokeColor: "#FFF",
  66. strokeOpacity: 1,
  67. strokeWidth: 2,
  68. pointRadius: 6,
  69. pointerEvents: "visiblePainted",
  70. fillColor: '#545BF4'
  71. };
  72. var style_green1 = {
  73. strokeColor: "#FFF",
  74. strokeOpacity: 1,
  75. strokeWidth: 2,
  76. pointRadius: 6,
  77. pointerEvents: "visiblePainted",
  78. fillColor: '#50E7F8'
  79. };
  80. var style_green2 = {
  81. strokeColor: "#FFF",
  82. strokeOpacity: 1,
  83. strokeWidth: 2,
  84. pointRadius: 6,
  85. pointerEvents: "visiblePainted",
  86. fillColor: '#0C9CFE'
  87. };
  88. var style1 = {
  89. fillColor: '#F00',
  90. fillOpacity: 0.6,
  91. strokeWidth: 0
  92. };
  93. var style2 = {
  94. fillColor: '#0F0',
  95. fillOpacity: 0.6,
  96. strokeWidth: 0
  97. };
  98. var style3 = {
  99. fillColor: '#00F',
  100. fillOpacity: 0.6,
  101. strokeWidth: 0
  102. };
  103. var host = window.isLocal ? window.server : "https://iserver.supermap.io",
  104. url = host + "/iserver/services/map-china400/rest/maps/China";
  105. init();
  106. function init() {
  107. //新建点矢量图层
  108. pointLayer = new SuperMap.Layer.Vector("pointLayer");
  109. //对点图层应用样式styleDraw(前面有定义)
  110. pointLayer.style = styleDraw;
  111. drawPoint = new SuperMap.Control.DrawFeature(pointLayer, SuperMap.Handler.Point);
  112. drawPoint.events.on({"featureadded": drawCompleted});
  113. //新建线矢量图层
  114. lineLayer = new SuperMap.Layer.Vector("lineLayer");
  115. //对线图层应用样式styleDraw(前面有定义)
  116. lineLayer.style = styleDraw;
  117. //定义layer图层,TiledDynamicRESTLayer:分块动态 REST 图层
  118. layer = new SuperMap.Layer.TiledDynamicRESTLayer("China", url, {
  119. transparent: true,
  120. cacheEnabled: true
  121. }, {maxResolution: "auto", useCanvas: false});
  122. //为图层初始化完毕添加addLayer()事件
  123. layer.events.on({"layerInitialized": addLayer});
  124. map = new SuperMap.Map("map", {
  125. controls: [
  126. new SuperMap.Control.OverviewMap(),
  127. new SuperMap.Control.ScaleLine(),
  128. new SuperMap.Control.Zoom(),
  129. new SuperMap.Control.Navigation({
  130. dragPanOptions: {
  131. enableKinetic: true
  132. }
  133. }), drawPoint
  134. ]
  135. });
  136. map.addControl(new SuperMap.Control.LayerSwitcher(), new SuperMap.Pixel(42, 80));
  137. }
  138. function addLayer() {
  139. map.addLayers([layer, pointLayer, lineLayer]);
  140. map.setCenter(new SuperMap.LonLat(11733502.481499, 4614406.969325), 4);
  141. }
  142. //绘制点
  143. function createPoint() {
  144. widgets.alert.clearAlert();
  145. drawPoint.activate();
  146. }
  147. //绘制B样条线
  148. function createBLine() {
  149. widgets.alert.clearAlert();
  150. if (pointArray.length < 2) {
  151. widgets.alert.showAlert(resources.msg_drawTwoPoint, false, 240);
  152. return;
  153. }
  154. drawPoint.deactivate()
  155. var geo1 = SuperMap.Geometry.LineString.createBspline(pointArray, 10);
  156. var vector1 = new SuperMap.Feature.Vector(
  157. geo1,
  158. {},
  159. styleDraw
  160. );
  161. lineLayer.addFeatures([vector1]);
  162. }
  163. function drawCompleted(drawGeometryArgs) {
  164. var feature = drawGeometryArgs.feature;
  165. var geometry = feature.geometry;
  166. //将每次绘制的点存起来
  167. pointArray.push(geometry);
  168. //停止画点面控制
  169. //drawPoint.deactivate();
  170. }
  171. //移除整个图层要素
  172. function clearAllFeatures() {
  173. widgets.alert.clearAlert();
  174. pointArray = [];
  175. pointLayer.removeAllFeatures();
  176. lineLayer.removeAllFeatures();
  177. }
  178. </script>
  179. </body>
  180. </html>