1

typescript で 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 が表示されるはずです。実際、地図上には何もありません。

4

1 に答える 1