f5b9ba391efe2802b64fecbb97c1e128262f592f.svn-base 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import {_longLatTransform} from './mercatorToLngLat'
  2. import {removeLayerById} from './removeLayerById.js'
  3. import { mapConfig } from '../config/mapConfig.js';
  4. var _self;
  5. export function getBiaoJiList(self,tableData){
  6. _self = self;
  7. var ol = _self.$ol;
  8. removeLayerById(_self,'ls_bjGraphicLayer');
  9. _self.mapObject.getLayers().forEach((val)=>{
  10. if(val){
  11. if(val.getProperties().id == "ls_bjGraphicLayer"){
  12. val.getSource().clear();
  13. }
  14. }
  15. });
  16. var symbol = new ol.style.Style({
  17. image: new ol.style.Icon(({
  18. anchor: [0.5, 0.5],
  19. scale:0.07,
  20. src: '/src/views/zongHeXinXiOl/assets/bjR.png'
  21. }))
  22. });
  23. var symbol,iconFeature;
  24. var features = [];
  25. tableData.forEach((item)=>{
  26. if(item.lgtd && item.lttd){
  27. var pt = self.projTransform(new ol.geom.Point([Number(item.lgtd), Number(item.lttd)]),mapConfig.wkid)
  28. // var pt = ol.proj.transform([Number(item.lgtd), Number(item.lttd)], "EPSG:4326", "EPSG:3857")
  29. iconFeature = new ol.Feature({
  30. geometry: pt,
  31. name: '标记'
  32. });
  33. item['layerId'] = 'ls_bjGraphicLayer';
  34. iconFeature.setProperties(item);
  35. iconFeature.setStyle(symbol);
  36. features.push(iconFeature)
  37. }
  38. });
  39. var vectorSource = new ol.source.Vector({
  40. features: features
  41. });
  42. var vectorLayer = new ol.layer.Vector({
  43. source: vectorSource,
  44. id:'ls_bjGraphicLayer'
  45. });
  46. _self.mapObject.addLayer(vectorLayer)
  47. }
  48. var bjX,bjY;
  49. export function biaojiHandler(self,x,y){
  50. _self = self
  51. var ol = _self.$ol;
  52. var longLat = _longLatTransform({x:x,y:y})
  53. bjX = longLat.x;
  54. bjY = longLat.y;
  55. var symbol = new ol.style.Style({
  56. image: new ol.style.Icon(({
  57. anchor: [0.5, 0.5],
  58. scale:0.07,
  59. src: '/src/views/zongHeXinXiOl/assets/bjR.png'
  60. }))
  61. });
  62. var features = [];
  63. var iconFeature = new ol.Feature({
  64. geometry: new ol.geom.Point([x, y]),
  65. name: '标记'
  66. });
  67. iconFeature.setStyle(symbol);
  68. features.push(iconFeature)
  69. var vectorSource = new ol.source.Vector({
  70. features: features
  71. });
  72. var vectorLayer = new ol.layer.Vector({
  73. source: vectorSource,
  74. id:'bjGraphicLayer1'
  75. });
  76. _self.mapObject.addLayer(vectorLayer)
  77. var strHtml;
  78. if(document.getElementById('popupbj')){
  79. document.getElementById('popupbj').style.display = 'block'
  80. }
  81. var container = document.getElementById('popupbj');
  82. if(!container){
  83. return;
  84. }
  85. var content = document.getElementById('popup-contentbj');
  86. var overlay = new ol.Overlay({
  87. id:'biaojiOverlayId',
  88. element: container,
  89. autoPan: true,
  90. autoPanAnimation: {
  91. duration: 250
  92. }
  93. });
  94. var strHtml = "<div>"+
  95. "<div>"+
  96. "<div style='display: flex;padding: 2px;'>"+
  97. "<p style='font-size: 14px;padding: 5px;width: 35px;'>名称:</p>"+
  98. "<input type='text' id='nameId' style='height: 33px;width: 222px;'>"+
  99. "</div>"+
  100. "<div style='display: flex;padding: 2px;'>"+
  101. "<p style='font-size: 14px;padding: 5px;padding-top: 8px;width: 35px;'>经度:</p>"+
  102. "<input type='text' id='longId' style='height: 33px;width: 86px;'value='"+longLat.x.toFixed(6)+"'>"+
  103. "<p style='font-size: 14px;padding: 5px;padding-top: 8px;width: 35px;'>纬度:</p>"+
  104. "<input type='text' id='latId' style='height: 33px;width: 86px;' value='"+longLat.y.toFixed(6)+"'>"+
  105. "</div>"+
  106. "<div style='display: flex;padding: 2px;'>"+
  107. "<p style='font-size: 14px;padding: 5px;width: 35px;'>备注:</p>"+
  108. "<textarea id='noteId' rows='6' cols='28' style='width: 222px;'>"+
  109. "</textarea>"+
  110. "</div>"+
  111. "</div>"+
  112. "<div style='margin-top:10px;float: right;'>"+
  113. "<button id='cancleBj' type='button' style='margin-right: 20px;width: 50px;' onclick='cancelHandler()'>取消</button>"+
  114. "<button id='saveBj' type='button' style='width: 50px;' onclick='submitHandler("+longLat.x+","+longLat.y+")'>保存</button>"+
  115. "</div>"+
  116. "</div>";
  117. if(strHtml){
  118. content.innerHTML = strHtml;
  119. overlay.setPosition([x,y]);
  120. _self.mapObject.addOverlay(overlay);
  121. if(document.getElementById('cancleBj')){
  122. document.getElementById("cancleBj").onclick = cancelHandler;
  123. }
  124. if(document.getElementById('saveBj')){
  125. document.getElementById("saveBj").onclick = submitHandler;
  126. }
  127. if(document.getElementById('popupbj')){
  128. document.getElementById('popupbj').style.display = 'block'
  129. }
  130. }
  131. }
  132. function cancelHandler(){
  133. _self.mapObject.getLayers().forEach((val)=>{
  134. if(val){
  135. if(val.getProperties().id == "bjGraphicLayer1"){
  136. val.getSource().clear();
  137. }
  138. }
  139. });
  140. removeLayerById(_self,'bjGraphicLayer1');
  141. if(document.getElementById('popupbj')){
  142. document.getElementById('popupbj').style.display = 'none'
  143. }
  144. }
  145. function submitHandler(){
  146. _self.mapObject.getLayers().forEach((val)=>{
  147. if(val){
  148. if(val.getProperties().id == "bjGraphicLayer1"){
  149. val.getSource().clear();
  150. }
  151. }
  152. });
  153. removeLayerById(_self,'bjGraphicLayer1');
  154. _self.saveBjHandler(bjX,bjY);
  155. // removeLayerById(_self,'biaojiOverlayId');
  156. }