デフォルトで Leaflet が提供するものとは異なる方法で GeoJSON をレンダリングしたいと考えています。残念ながら、style()
作成中のベクター グラフィックスをより詳細に制御する必要があるため、関数を変更するだけでは不十分です。
これを行う慣用的な方法は何ですか?にあるデフォルトの SVG レンダラーの多くの部分を再利用できると思いますsrc/layers/vector/SVG.js
。ただし、1 つの GeoJSON レイヤー / 1 つの FeatureGroup に対してのみ置き換えたいと思います。これらはいずれも から継承されPath
ていないため、これは不可能と思われます。
SVG クラスを非常に基本的な方法で拡張してみました。
import {SVG} from 'leaflet/src/layer/vector/SVG'
export default class CustomSVG extends SVG {
_updatePoly (layer, closed) {
console.log('Custom renderer in action')
super._updatePoly(layer, closed)
}
}
リーフレットの初期化中にレンダラーとして設定しますが、これは a で失敗しますTypeError: max2 is undefined
(これは、私が を使用したことに起因する未処理のプロミス拒否ですreact-leaflet
)。
私が見逃しているのは何ですか?