如何在openlayers v4.6.5上创建带向量的弹出窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在openlayers v4.6.5上创建带向量的弹出窗口相关的知识,希望对你有一定的参考价值。

我正在使用openlayers,我创建了许多矢量图层,但我想将click事件放在一次矢量图层上。

function add_map_point(lat, lng) {
    var vectorLayer = new ol.layer.Vector({
        source:new ol.source.Vector({
            features: [new ol.Feature({
                geometry: new ol.geom.Point(ol.proj.transform([parseFloat(lng), parseFloat(lat)], 'EPSG:4326', 'EPSG:3857')),
            })]
        }),
        style: new ol.style.Style({
            image: new ol.style.Icon({
                anchor: [0.5, 0.5],
                anchorXUnits: "fraction",
                anchorYUnits: "fraction",
                src: "{{asset('marker.png')}}",
            }),
        })
    });
    map.addLayer(vectorLayer);
}

function map_points(){
    @foreach($data as $c)
        add_map_point({{$c->latitude}}, {{$c->longitude}}); 
    @endforeach    
}
答案

请尝试添加到您的功能:

vectorLayer.set("name", "myLayer");
map.on("click", function(evt) {
   var feature = map.forEachFeatureAtPixel(evt.pixel,
       function(feature, layer) {
          if (feature) {
             console.log(layer.get("name") + " was clicked.");
        }
     });
  });

以上是关于如何在openlayers v4.6.5上创建带向量的弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iphone sdk 中使用 openlayers

OpenLayers 4获得西南坐标

如何在 tiki-wiki 12+ 上通过 OpenLayers 显示 Google 地图

如何在 openlayers 的地图上显示全球 UTM 网格?

在节点上显示 OpenLayers 地图

如何从业力测试触发 openLayers 3 'singleClick'