openlayers - 打开图层要素点击事件
问题描述
如何使用 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');
});
解决方案
功能没有点击事件,您需要监听地图上的点击并检查它是否在您的标记上
map.on('click', function(evt) {
if (map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature === marker;
})
) {
alert('click');
}
});
推荐阅读
- sql - 在 SQL 中转换的 Excel 5 位日期时间提前 2 天
- swift - 如何通过 id Swift 获取数据
- mysql - 使用 bash 的 mysql 数据库复制脚本
- sql - 基于 IS_MEMBER 函数的行级安全性
- c# - 使用 DownloadUrl 在 C# 中下载文件
- python - 如何在 python 中包含 KNN 的混淆矩阵?
- arrays - 简单的 Spinner 数组未显示
- python - 如何从较大列表中的较小列表中删除项目?
- wordpress - WooCommerce 删除了除 1 个变量产品之外的所有产品文件
- python - 气流错误 - 得到一个意外的关键字参数“min”