plot_saveload.html 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  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_saveload"></title>
  9. <style type="text/css">
  10. #map {
  11. position: absolute;
  12. left: 250px;
  13. right: 0px;
  14. height: 100%;
  15. }
  16. #plottingPanel {
  17. float: left;
  18. background: #ffffff;
  19. width: 250px;
  20. height: 100%;
  21. border: 1px solid #3473b7;
  22. }
  23. #plottingMenu {
  24. position: absolute;
  25. top: 20%;
  26. z-index: 999999;
  27. border-radius: 4px;
  28. padding-top: 2px;
  29. left: 265px;
  30. color: #000000;
  31. background-color: #fff;
  32. }
  33. </style>
  34. </head>
  35. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
  36. <div id="toolbar" class="panel panel-primary" style=" position: absolute;top: 15px;right: 20px;text-align: center;z-index: 9999;border-radius: 4px;">
  37. <div class='panel-heading' id="panelheading">
  38. <h5 class='panel-title text-center' data-i18n="resources.title_saveload" style=" font-size: 16px;color: #ffffff;"></h5>
  39. </div>
  40. <div class='panel-body content' id="panelbodycontent" style="overflow:hidden;">
  41. <div class='panel' >
  42. <div class='input-group' style="margin-top:15px;margin-left: 5px; margin-bottom: 10px;text-align: center">
  43. <select class="search-query form-control" id="SLT" style="width: 150px"></select>
  44. <input type="button" class="btn btn-default" data-i18n="[value]resources.btn_load" onclick="loadSimulationMap()"/>
  45. <input type="button" class="btn btn-default " data-i18n="[value]resources.btn_save" onclick="save()"/>
  46. <input type="button" class="btn btn-default" data-i18n="[value]resources.btn_saveAs" onclick="saveAsSmlFile()"/>
  47. <input type="text" id="txt" class='form-control' style="width: 120px;float: right;margin-right: 5px;"/>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. <div id="plottingPanel">
  53. <div class="easyui-panel" style="position:absolute;top:0px;bottom:0px;left:0px;right:0px;padding:5px; width: 100%;">
  54. <div class="easyui-tabs" style="width: 100%;height: 100%">
  55. <div id="plotPanel" data-i18n="[title]resources.text_drawPanel" style="overflow: hidden"></div>
  56. <div id="stylePanel" data-i18n="[title]resources.text_attributePanel"></div>
  57. </div>
  58. </div>
  59. </div>
  60. <div id="plottingMenu" class="sticklr">
  61. <li>
  62. <a class="glyphicon plotting-glyphicon-draw-deactivate notArrow"
  63. data-i18n="[title]resources.text_cancelDraw"
  64. onclick="cancelDraw()"></a>
  65. </li>
  66. <li>
  67. <a class="glyphicon plotting-glyphicon-draw-removeAll notArrow"
  68. data-i18n="[title]resources.text_input_value_clear"></a>
  69. <ul>
  70. <li><input type="button" data-i18n="[value]resources.btn_deleteMarker" onclick="deleteSymbol()"
  71. style="width:70px;height: 25px ;margin:0 auto;"/> </li>
  72. <li><input type="button" data-i18n="[value]resources.btn_clearLayers" onclick="clearLayer()"
  73. style="width: 70px;height: 25px ;margin:0 auto;"/></li>
  74. </ul>
  75. </li>
  76. </div>
  77. <div id="map"></div>
  78. <script type="text/javascript" include="bootstrap,sticklr,widgets.alert,plottingPanel" src="../js/include-web.js"></script>
  79. <script type="text/javascript" include="iclient-plot-leaflet" src="../../dist/leaflet/include-leaflet.js"></script>
  80. <script type="text/javascript" include="PlotPanel,StylePanel" src="../js/plottingPanel/PlottingPanel.Include.js"></script>
  81. <script type="text/javascript">
  82. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  83. var url = host + "/iserver/services/map-china400/rest/maps/China_4326";
  84. var serverUrl = host + "/iserver/services/plot-jingyong/rest/plot/";
  85. var map;
  86. map = L.map('map', {
  87. preferCanvas: true,
  88. crs: L.CRS.EPSG4326,
  89. center: [35,104],
  90. maxZoom: 18,
  91. zoom: 3
  92. });
  93. L.supermap.tiledMapLayer(url).addTo(map);
  94. var plottingLayer = L.supermap.plotting.plottingLayer("plot", serverUrl);
  95. plottingLayer.spatialAnalystUrl=host+"/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst";
  96. plottingLayer.addTo(map);
  97. var drawControl = L.supermap.plotting.drawControl(plottingLayer);
  98. drawControl.addTo(map);
  99. var editControl = L.supermap.plotting.editControl();
  100. editControl.addTo(map);
  101. L.supermap.plotting.initPlotPanel("plotPanel", serverUrl, drawControl);
  102. L.supermap.plotting.initStylePanel("stylePanel", serverUrl, editControl);
  103. var plotting = L.supermap.plotting.getControl(map, serverUrl);
  104. var sitDataManager = plotting.getSitDataManager();
  105. //获取态势图列表
  106. function getSMLInfos() {
  107. sitDataManager.getSMLInfos(0, 10, function(evt){
  108. var result = evt.smlInfoList;
  109. var select = document.getElementById("SLT");
  110. while (select.hasChildNodes()) {
  111. select.removeChild(select.firstChild);
  112. }
  113. for (var i = 0, len = result.length; i < len; i++) {
  114. var options = document.createElement("option");
  115. options.setAttribute("value", result[i].SMLFileName);
  116. options.innerHTML = result[i].SMLFileName;
  117. select.appendChild(options);
  118. }
  119. return false;
  120. });
  121. }
  122. //加载态势图
  123. function loadSimulationMap() {
  124. widgets.alert.clearAlert();
  125. var select = document.getElementById("SLT");
  126. for (var i = 0; i < select.children.length; i++) {
  127. if (select.children[i].selected) {
  128. sitDataManager.openSmlFileOnServer(select.children[i].value, function(evt){
  129. if(evt.success){
  130. drawControl.setDrawingLayer(evt.sitDataLayers[0]);
  131. widgets.alert.showAlert("加载态势图成功!",true);
  132. } else {
  133. widgets.alert.showAlert("加载态势图失败!",true);
  134. }
  135. });
  136. }
  137. }
  138. }
  139. //保存态势图
  140. function save() {
  141. widgets.alert.clearAlert();
  142. drawControl.handler.disable();
  143. sitDataManager.saveSmlFile(function(evt){
  144. if(evt.success){
  145. getSMLInfos();
  146. widgets.alert.showAlert("保存态势图成功!",true);
  147. } else {
  148. widgets.alert.showAlert("保存态势图失败!",true);
  149. }
  150. });
  151. }
  152. //另存态势图
  153. function saveAsSmlFile() {
  154. widgets.alert.clearAlert();
  155. var SMLName = document.getElementById("txt").value;
  156. if (SMLName.length !== 0) {
  157. drawControl.handler.disable();
  158. sitDataManager.saveAsSmlFile(SMLName, function(evt){
  159. if(evt.success){
  160. getSMLInfos();
  161. widgets.alert.showAlert("保存态势图成功!",true);
  162. } else {
  163. widgets.alert.showAlert("保存态势图失败!",true);
  164. }
  165. });
  166. } else {
  167. widgets.alert.showAlert("请输入另存为态势图的名字",true);
  168. }
  169. }
  170. //取消标绘
  171. function cancelDraw() {
  172. drawControl.handler.disable();
  173. }
  174. //删除选中标号
  175. function deleteSymbol() {
  176. editControl.deleteSelectedFeatures();
  177. }
  178. //清空绘制
  179. function clearLayer() {
  180. cancelDraw();
  181. for (var i = 0; i < map.getPlottingLayers().length; i++) {
  182. map.getPlottingLayers()[i].removeAllFeatures();
  183. }
  184. }
  185. window.onload = function(){
  186. getSMLInfos();//初始化页面时获取态势图列表
  187. };
  188. $(document).ready(function(){
  189. $('#panelheading').click(function(){
  190. $('#panelbodycontent').toggle();
  191. });
  192. });
  193. </script>
  194. </body>
  195. </html>