首页 > 解决方案 > 打开图层要素点击事件

问题描述

如何使用 Feature on 方法在 OpenLayers Feature 上添加事件?它对我不起作用。

import { Map, View, Feature } from 'ol';
import {getVectorContext} from 'ol/render';
import TileLayer from 'ol/layer/Tile';
import * as layer from 'ol/layer';
import VectorImage from 'ol/layer/VectorImage';
import * as source from 'ol/source';
import * as proj from 'ol/proj';
import * as geom from 'ol/geom';
import * as style from 'ol/style';
import EventType from 'ol/events/EventType';

const marker = new Feature({
        geometry: new geom.Point(
          proj.fromLonLat(lonLat)
        )
     });
// marker.setStyle(this.getIconStyle()); 
marker.on(EventType.CLICK, function() {
   alert('click');
});

标签: openlayersopenlayers-5

解决方案


功能没有点击事件,您需要监听地图上的点击并检查它是否在您的标记上

map.on('click', function(evt) {
  if (map.forEachFeatureAtPixel(evt.pixel,
    function(feature) {
      return feature === marker;
    })
  ) {
    alert('click');
  }
});

推荐阅读