You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core5中OpenLayers6添加Translate功能及defaultInteractions报错解决

OpenLayers全局引入下defaultInteractions调用报错解决

defaultInteractions 对应的全局命名空间路径为 ol.interaction.defaults,直接替换原有调用即可,正确写法:

interactions: ol.interaction.defaults().extend([select, translate])

报错原因说明

  • IDE中按Ctrl点击可跳转到对应源文件,仅为编辑器静态代码识别的匹配结果,不代表该变量在运行时的全局作用域可直接访问。
  • Node环境下可直接调用defaultInteractions(),是因为你通过ES模块导入语句将该方法单独引入到了当前文件作用域(通常写法为import { defaults as defaultInteractions } from 'ol/interaction')。
  • ASP.NET Core 环境下你采用的是全局挂载ol对象的引用方式,所有OpenLayers API都需要从ol根对象开始,按照命名空间层级逐层调用,不能直接使用模块内部导出的未挂载到全局的变量名。

修正后的完整初始化代码参考

const map = new ol.Map({
    interactions: ol.interaction.defaults().extend([select, translate]),
    layers: [
        new ol.layer.Image({
            source: new ol.source.ImageStatic({
                url: 'https://imgs.xkcd.com/comics/online_communities.png',
                projection: projection,
                imageExtent: extent,
            }),
        }),
        rasterLayer, vectorLayer
    ],
    target: 'map',
    view: new ol.View({
        projection: projection,
        center: ol.extent.getCenter(extent),
        zoom: 2,
        maxZoom: 8,
    }),
});

内容的提问来源于stack exchange,提问作者görkem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 04:12:15