你能扩展 open layers layer class 吗?

Can you extend open layers layer class?

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

我有 运行 几个开玩笑的测试来验证我的新 class 是一个 VectorLayer 实例。我已经能够使用像 setSource 这样的方法,它们似乎在测试中有效。但是,当我将 class 添加到地图时,它似乎不起作用(地图上没有预期的要素)。我从 class 的上下文中删除了这些特征,并以正常方式将它们添加到矢量图层,这些特征就起作用了。


  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。实际,地图上没有。

在将 class 导入到地图所在的文件时,我在导入时犯了一个错误。由于某种原因,打字稿没有接受它。

虽然这是可能的。很酷!