首页 > 解决方案 > 你可以扩展开放层层类吗?

问题描述

我正在尝试在打字稿中使用 es6 语法扩展 OpenLayers 类。

我开玩笑地运行了一些测试来验证我的新类是 VectorLayer 实例。我已经能够使用 setSource 之类的方法,它们似乎可以在测试中使用。但是,当我将我的课程添加到地图时,它似乎不起作用(地图上没有预期的功能)。我从类的上下文中删除了这些特性,并以正常方式将它们添加到矢量图层,并且这些特性可以正常工作。


  export class GridLayer extends VectorLayer {
  constructor () {
    super()

    const axisX = new LineString([[0, 1000], [1000, 1000]])
    const axisY = new LineString([[1000, 0], [1000, 1000]])
    const featureX = new Feature({ geometry: axisX })
    const featureY = new Feature({ geometry: axisY })

    this.setSource(new VectorSource({
      features: [
        featureX,
        featureY
      ],
    }))
  }
}

预期,应该在地图上看到一些 LineString。实际上,地图上什么都没有。

标签: openlayersopenlayers-5angular-openlayers

解决方案


将类导入到地图所在的文件时,我在导入中犯了一个错误。Typescript 出于某种原因没有选择它。

不过这是可能的。很酷!


推荐阅读