单击外部链接即可显示和隐藏所有图层弹出窗口-openlayrs3

萨加尔

从下面的函数中,onOff: function ()我从外部链接获取弹出窗口,但只有一个弹出窗口。需要显示来自vecorlayer源的所有弹出窗口。

onOff: function () {
  var abc = ConnectWebMap;
       var vectorSource = new ol.source.Vector({
            projection : 'EPSG:4326',
            format: new ol.format.GeoJSON(),
          url: 'resources/multipoint.geojson'
          });
  featureCount = [];     
       // Get the array of features
var featureCount = vector.getSource().getFeatures();

// Go through this array and get coordinates of their geometry.
featureCount.forEach(function(feature) {
   console.log('get all features' + feature.getGeometry().getCoordinates());
   allpopup = [];
   var allpopup = feature.getGeometry().getCoordinates();
   if (feature) {
      popup.setPosition(allpopup);
    content.innerHTML = feature.get('name');
  }
});

我通过geojson添加标记,并在它们上显示它们,map.on('click', function(evt)但我想显示和隐藏所有带有按钮单击标记的弹出窗口,只有可见的弹出窗口才会显示和隐藏。

从锚标记需要切换所有弹出窗口

<a id="toggle">Show/Hide</a>

以下是我的json代码

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
          "name": "Missing Person",
          "ref":" Ref 5684"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-0.12755, 51.507222]
      }
    },
    {
      "type": "Feature",
      "properties": {
          "name": "Wanted",
           "ref":" Ref 56124"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-0.12755, 52.507222]
      }
    },
    {
      "type": "Feature",
      "properties": {
          "name": "Missing 1",
           "ref":" Ref 1684"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-1.12755, 52.507222]
      }
    },
    {
      "type": "Feature",
      "properties": {
          "name": "Wanted 3",
           "ref":" Ref 562484"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-2.12755, 53.507222]
      }
    },
    {
      "type": "Feature",
      "properties": {
          "name": "Wanted 7",
           "ref":" Ref 522684"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-0.1287, 53.507222]
      }
    },
    {
      "type": "Feature",
      "properties": {
          "name": "Wanted 9",
           "ref":" Ref 5685884"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-3.12755, 50.907222]
      }
    },
    {
      "type": "Feature",
      "properties": {
          "name": "Missing 8",
           "ref":" Ref 5643484"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-3.12755, 51.907222]
      }
    }
  ]
} 

矢量层

vector = new ol.layer.Vector({
  source: new ol.source.Vector({
   projection : 'EPSG:4326',
   format: new ol.format.GeoJSON(),
   url: 'resources/multipoint.geojson'
 }),
  style: styleFunction1
});

弹出功能

            var element = document.getElementById('popup');
            var content = document.getElementById('popup-content');
            var closer = document.getElementById('popup-closer');



            var popup = new ol.Overlay({
              element: element,
              positioning: 'bottom-center',
              stopEvent: false
            });
            map.addOverlay(popup);

// display popup on click
map.on('click', function(evt) {
  var feature = map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {
    return feature;
  }, null, function(layer) {
    return layer != circleLayer;
  });

  if (feature) {
    popup.setPosition(evt.coordinate);
    content.innerHTML = feature.get('name');

  } else {

  }
});

closer.onclick = function() {
  popup.setPosition(undefined);
  closer.blur();
  return false;
};
萨加尔

显示所有弹出窗口

on: function () {
  var abc = ConnectWebMap;
  $('#popupGroup').html('');
  var vectorSource = new ol.source.Vector({
    projection : 'EPSG:4326',
    format: new ol.format.GeoJSON(),
    url: 'resources/multipoint.geojson'
  });
  featureCount = [];     
       // Get the array of features
       var featureCount = vector.getSource().getFeatures();

        multiPopup = 0;
// Go through this array and get coordinates of their geometry.
featureCount.forEach(function(feature) {
 // console.log('get all features' + feature.getGeometry().getCoordinates());
 // multiPopup = feature.get('id');
 allpopup = [];
 var allpopup = feature.getGeometry().getCoordinates();
 if (feature) {
   var popupTemplate = '<div id="popup' + multiPopup +'" class="ol-popup">'+
   '<a href="#" id="popup-closer' + multiPopup +'" class="ol-popup-closer"></a>'+
   '<div id="popup-content' + multiPopup +'"></div></div>';
   $('#popupGroup').append(popupTemplate);

   var element = document.getElementById('popup' + multiPopup);
   var content = document.getElementById('popup-content' + multiPopup);
   var closer = document.getElementById('popup-closer' + multiPopup);

   closer.onclick = function() {
    popup.setPosition(undefined);
    closer.blur();
    return false;
  };

隐藏所有弹出窗口

off: function () {
  var abc = ConnectWebMap;
  console.log('multiPopup' + multiPopup);
  for(var i = 0; i<multiPopup; i++){
        $('#popup-closer' + i).click();
  };
    $('#popupGroup').html('');
}

};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

显示/隐藏所有评论,但每个部分显示3条最新评论

来自分类Dev

在d3中设置一个单击事件以隐藏所有其他元素

来自分类Dev

仅显示单击链接中的内容,并隐藏所有同级

来自分类Dev

如何隐藏所有窗口并快速显示桌面?

来自分类Dev

在D3中单击鼠标即可显示/隐藏元素

来自分类Dev

弹出图像并隐藏所有索引

来自分类Dev

在d3.js中的鼠标悬停时在弹出窗口中显示所有堆积的区域数据

来自分类Dev

显示1格,并使用Javascript单击隐藏所有其他格

来自分类Dev

显示一个div,单击隐藏所有其他

来自分类Dev

GIMP图层仅在我隐藏所有其他图层时可见

来自分类Dev

OpenLayers3 如何使用不同的 Geojson 源显示来自不同矢量图层的弹出窗口

来自分类Dev

单击时隐藏所有打开的同级元素

来自分类Dev

如何从表中隐藏所有tr,但单击除外

来自分类Dev

d3.js显示一个弹出窗口,其中包含单击图像的形式

来自分类Dev

崇高文字:隐藏所有代码并仅显示注释

来自分类Dev

隐藏所有行并显示所选内容

来自分类Dev

如何隐藏所有未突出显示的行?

来自分类Dev

显示内容并隐藏所有其他相关对象

来自分类Dev

隐藏除当前弹出窗口之外的所有弹出窗口?

来自分类Dev

MacOS statusbar应用程序显示菜单和运行功能,单击后即可快速运行3

来自分类Dev

在外部单击时隐藏Angular UI Bootstrap弹出窗口

来自分类Dev

javaScript div弹出窗口不隐藏在外部单击

来自分类Dev

通过css单击外部时隐藏弹出窗口

来自分类Dev

即使单击具有stopPropagation的元素,也可以隐藏所有单击事件的元素

来自分类Dev

溢出隐藏隐藏所有内容

来自分类Dev

单击显示弹出窗口

来自分类Dev

只想在地址栏中显示域名,并隐藏所有页面名称和查询字符串

来自分类Dev

通过在弹出窗口外部单击来隐藏弹出窗口(Philip Waltons 解决方案的问题)

来自分类Dev

单击相应的菜单项时如何显示/隐藏内容的一部分,同时隐藏所有其他内容?

Related 相关文章

  1. 1

    显示/隐藏所有评论,但每个部分显示3条最新评论

  2. 2

    在d3中设置一个单击事件以隐藏所有其他元素

  3. 3

    仅显示单击链接中的内容,并隐藏所有同级

  4. 4

    如何隐藏所有窗口并快速显示桌面?

  5. 5

    在D3中单击鼠标即可显示/隐藏元素

  6. 6

    弹出图像并隐藏所有索引

  7. 7

    在d3.js中的鼠标悬停时在弹出窗口中显示所有堆积的区域数据

  8. 8

    显示1格,并使用Javascript单击隐藏所有其他格

  9. 9

    显示一个div,单击隐藏所有其他

  10. 10

    GIMP图层仅在我隐藏所有其他图层时可见

  11. 11

    OpenLayers3 如何使用不同的 Geojson 源显示来自不同矢量图层的弹出窗口

  12. 12

    单击时隐藏所有打开的同级元素

  13. 13

    如何从表中隐藏所有tr,但单击除外

  14. 14

    d3.js显示一个弹出窗口,其中包含单击图像的形式

  15. 15

    崇高文字:隐藏所有代码并仅显示注释

  16. 16

    隐藏所有行并显示所选内容

  17. 17

    如何隐藏所有未突出显示的行?

  18. 18

    显示内容并隐藏所有其他相关对象

  19. 19

    隐藏除当前弹出窗口之外的所有弹出窗口?

  20. 20

    MacOS statusbar应用程序显示菜单和运行功能,单击后即可快速运行3

  21. 21

    在外部单击时隐藏Angular UI Bootstrap弹出窗口

  22. 22

    javaScript div弹出窗口不隐藏在外部单击

  23. 23

    通过css单击外部时隐藏弹出窗口

  24. 24

    即使单击具有stopPropagation的元素,也可以隐藏所有单击事件的元素

  25. 25

    溢出隐藏隐藏所有内容

  26. 26

    单击显示弹出窗口

  27. 27

    只想在地址栏中显示域名,并隐藏所有页面名称和查询字符串

  28. 28

    通过在弹出窗口外部单击来隐藏弹出窗口(Philip Waltons 解决方案的问题)

  29. 29

    单击相应的菜单项时如何显示/隐藏内容的一部分,同时隐藏所有其他内容?

热门标签

归档