130dfc23cd9737e081a40197baffb7d7aafe53de.svn-base 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. export function locationHandler(self,item,type,layerId){
  2. var _self = self;
  3. var strHtml;
  4. var coordinate;
  5. var ol = _self.$ol;
  6. if(layerId == "ls_bjGraphicLayer"){//标记
  7. coordinate = [Number(item.lgtd),Number(item.lttd)];
  8. if(!coordinate){
  9. _self.$message({
  10. message: '无法获取空间信息!',
  11. type: 'warning'
  12. });
  13. return;
  14. }
  15. if(document.getElementById('popupbj')){
  16. document.getElementById('popupbj').style.display = 'block'
  17. }
  18. var container = document.getElementById('popupbj');
  19. if(!container){
  20. return;
  21. }
  22. var content = document.getElementById('popup-contentbj');
  23. var closer = document.getElementById('popup-closerbj');
  24. closer.onclick = function() {
  25. overlay.setPosition(undefined);
  26. closer.blur();
  27. return false;
  28. };
  29. var overlay = new ol.Overlay({
  30. id:'bjOverlayId',
  31. element: container,
  32. autoPan: true,
  33. autoPanAnimation: {
  34. duration: 250
  35. }
  36. });
  37. strHtml = "<div>"+
  38. "<div>"+
  39. "<div style='display: flex;padding: 5px;'>"+
  40. "<p style='font-size: 14px;padding: 5px;width: 35px;'>名称:</p>"+
  41. "<input type='text' id='nameId' style='height: 33px;width: 216px;' value="+item.inteName+">"+
  42. "</div>"+
  43. "<div style='display: flex;padding: 5px;'>"+
  44. "<p style='font-size: 14px;padding: 5px;width: 35px;'>备注:</p>"+
  45. "<textarea id='noteId' rows='6' cols='28' style='width: 216px;'value="+item.des+">"+item.des+
  46. "</textarea>"+
  47. "</div>"+
  48. "</div>"+
  49. "</div>";
  50. }else{
  51. if(layerId == "personGraphicLayer" || layerId == "personGraphicLayer0" || layerId == "personGraphicLayer1"){//人员
  52. coordinate = [Number(item.lgtd),Number(item.lttd)];
  53. strHtml = '<p>'+item.persName+'</p>'
  54. }else{
  55. coordinate = [Number(item.gdX),Number(item.gdY)];
  56. strHtml = '<p>'+item.name+'</p>'
  57. }
  58. if(!coordinate || coordinate[0] == 0){
  59. _self.$message({
  60. message: '无法获取空间信息!',
  61. type: 'warning'
  62. });
  63. return;
  64. }
  65. if(document.getElementById('popup')){
  66. document.getElementById('popup').style.display = 'block'
  67. }
  68. var container = document.getElementById('popup');
  69. if(!container){
  70. return;
  71. }
  72. var content = document.getElementById('popup-content');
  73. var overlay = new ol.Overlay({
  74. id:'ls_pointerMoveOverlayId',
  75. element: container,
  76. autoPan: true,
  77. autoPanAnimation: {
  78. duration: 250
  79. }
  80. });
  81. }
  82. if(strHtml && coordinate){
  83. content.innerHTML = strHtml;
  84. overlay.setPosition(ol.proj.transform(coordinate, "EPSG:4326", "EPSG:3857"));
  85. _self.mapObject.addOverlay(overlay);
  86. _self.mapObject.setView(
  87. new ol.View({
  88. center:ol.proj.transform(coordinate, "EPSG:4326", "EPSG:3857"),
  89. zoom:10
  90. })
  91. )
  92. }
  93. }