plot_symbolExtendProperty.html 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  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_symbolExtendProperty"></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. width: 220px;
  27. text-align: center;
  28. z-index: 100;
  29. border-radius: 4px;
  30. }
  31. .input-group {
  32. margin-bottom: 15px;
  33. }
  34. .winContent {
  35. padding: 5px;
  36. overflow-y: auto;
  37. height: 300px;
  38. }
  39. .popupWindow {
  40. position: absolute;
  41. right: 10px;
  42. top: 280px;
  43. width: 220px;
  44. background: #FFF;
  45. z-index: 9999;
  46. display: block;
  47. }
  48. .winTitle {
  49. background: #1E90FF;
  50. }
  51. </style>
  52. </head>
  53. <body>
  54. <div id="toolbar" class="panel panel-primary">
  55. <div class='panel-heading'>
  56. <h5 class='panel-title text-center' data-i18n="resources.title_symbolExtendProperty"></h5></div>
  57. <div class='panel-body content'>
  58. <div class='panel'>
  59. <div class='input-group'>
  60. <span class='input-group-addon' data-i18n="resources.text_propertyName"></span>
  61. <input class='form-control' id='propertyName' value=''/>
  62. </div>
  63. <div class='input-group'>
  64. <span class='input-group-addon' data-i18n="resources.text_propertyValue"></span>
  65. <input class='form-control' id='propertyValue' value=''/>
  66. </div>
  67. </div>
  68. <input id="btn" type="button" class="btn btn-default" data-i18n="[value]resources.btn_addProperty" onclick="addExtendProperty()"/>
  69. </div>
  70. </div>
  71. <div id="popupWin" class="panel panel-primary popupWindow">
  72. <div class="winTitle">
  73. <span class="title_left" data-i18n="resources.title_symbolExtendProperty"></span>
  74. </div>
  75. <div id="extendProperty" class="winContent"></div>
  76. </div>
  77. <div id="map"></div>
  78. <script type="text/javascript" include="bootstrap,widgets.alert" src="../js/include-web.js"></script>
  79. <script type="text/javascript" exclude="iclient-classic" include="iclient8c-plot" src="../../dist/classic/include-classic.js"></script>
  80. <script>
  81. var plottingLayer, plottingEdit, layer, map;
  82. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  83. var mapurl = host + "/iserver/services/map-world/rest/maps/World";
  84. var serverUrl = host + "/iserver/services/plot-jingyong/rest/plot/";
  85. init();
  86. function init() {
  87. map = new SuperMap.Map("map", {
  88. controls: [
  89. new SuperMap.Control.ScaleLine(),
  90. new SuperMap.Control.Zoom(),
  91. new SuperMap.Control.Navigation({
  92. dragPanOptions: {
  93. enableKinetic: true
  94. }
  95. })]
  96. });
  97. map.addControl(new SuperMap.Control.LayerSwitcher(), new SuperMap.Pixel(42, 80));
  98. layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", mapurl, {
  99. transparent: true,
  100. cacheEnabled: true
  101. }, {maxResolution: "auto"});
  102. layer.events.on({"layerInitialized": addLayer});
  103. plottingLayer = new SuperMap.Layer.PlottingLayer("标绘图层", serverUrl);
  104. plottingLayer.style = {
  105. fillColor: "#66cccc",
  106. fillOpacity: 0.4,
  107. strokeColor: "#66cccc",
  108. strokeOpacity: 1,
  109. strokeWidth: 3,
  110. pointRadius: 6
  111. };
  112. //态势标绘编辑
  113. plottingEdit = new SuperMap.Control.PlottingEdit();
  114. plottingLayer.events.on({"featureselected": showExtendProperty});
  115. plottingLayer.events.on({"featuremodified": showExtendProperty});
  116. plottingLayer.events.on({"afterfeaturemodified": showExtendProperty});
  117. //添加态势标绘控件
  118. map.addControls([plottingEdit]);
  119. }
  120. function addLayer() {
  121. map.addLayers([layer, plottingLayer]);
  122. map.setCenter(new SuperMap.LonLat(0, 0), 0);
  123. //标绘标号
  124. plotSymbol();
  125. plottingEdit.activate();
  126. }
  127. function plotSymbol() {
  128. //标绘多边形
  129. var polygonPoints = [];
  130. polygonPoints.push(new SuperMap.Geometry.Point(-20, 0));
  131. polygonPoints.push(new SuperMap.Geometry.Point(-10, 20));
  132. polygonPoints.push(new SuperMap.Geometry.Point(-30, 40));
  133. polygonPoints.push(new SuperMap.Geometry.Point(-60, 10));
  134. plottingLayer.createSymbolWC(0, SuperMap.Plot.SymbolType.ARBITRARYPOLYGONSYMBOL, polygonPoints);
  135. //标绘折线
  136. var linePoints = [];
  137. linePoints.push(new SuperMap.Geometry.Point(0, 0));
  138. linePoints.push(new SuperMap.Geometry.Point(0, 20));
  139. linePoints.push(new SuperMap.Geometry.Point(20, 10));
  140. linePoints.push(new SuperMap.Geometry.Point(10, 30));
  141. plottingLayer.createSymbolWC(0, SuperMap.Plot.SymbolType.POLYLINESYMBOL, linePoints);
  142. }
  143. function addExtendProperty() {
  144. widgets.alert.clearAlert();
  145. var key = document.getElementById("propertyName").value;
  146. var value = document.getElementById("propertyValue").value;
  147. if ("" === key || "" === value) {
  148. return;
  149. }
  150. var features = plottingLayer.selectedFeatures;
  151. if (0 === features.length) {
  152. widgets.alert.showAlert(resources.msg_selectFeature, true);
  153. return;
  154. }
  155. var geometry = features[0].geometry;
  156. var extendProperty = geometry.getExtendProperty();
  157. extendProperty.addProperty(key, value);
  158. showExtendProperty();
  159. }
  160. function showExtendProperty() {
  161. document.all.extendProperty.innerHTML = "";
  162. //获取选中的对象
  163. var features = plottingLayer.selectedFeatures;
  164. if (0 === features.length) {
  165. return;
  166. }
  167. var geometry = features[0].geometry;
  168. var extendProperty = geometry.getExtendProperty();
  169. var nPropertyCount = extendProperty.getPropertyCount();
  170. if (0 === nPropertyCount) {
  171. return;
  172. }
  173. var container = document.getElementById("extendProperty");
  174. var table = document.createElement("table");
  175. var body = document.createElement("tbody");
  176. table.setAttribute("border", "1");
  177. table.setAttribute("borderColor", "black");
  178. table.setAttribute("width", "100%");
  179. var tr = document.createElement("tr");
  180. //添加属性名
  181. var td_Name = document.createElement("th");
  182. var text_Name = document.createTextNode(resources.text_propertyName);
  183. td_Name.appendChild(text_Name);
  184. tr.appendChild(td_Name);
  185. //添加属性值
  186. var td_Value = document.createElement("th");
  187. var text_Value = document.createTextNode(resources.text_propertyValue);
  188. td_Value.appendChild(text_Value);
  189. tr.appendChild(td_Value);
  190. body.appendChild(tr);
  191. for (var i = 0; i < nPropertyCount; i++) {
  192. var property = extendProperty.getPropertyByIndex(i);
  193. if (null === property) {
  194. continue;
  195. }
  196. var _tr = document.createElement("tr");
  197. //添加属性名
  198. var td_PropertyName = document.createElement("td");
  199. var text_propertyName = document.createTextNode(property.getKey());
  200. td_PropertyName.appendChild(text_propertyName);
  201. _tr.appendChild(td_PropertyName);
  202. //添加属性值
  203. var td_PropertyValue = document.createElement("td");
  204. var text_propertyValue = document.createTextNode(property.getValue());
  205. td_PropertyValue.appendChild(text_propertyValue);
  206. _tr.appendChild(td_PropertyValue);
  207. body.appendChild(_tr);
  208. }
  209. table.appendChild(body);
  210. container.appendChild(table);
  211. }
  212. </script>
  213. </body>
  214. </html>