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