我想以不同于默认情况下 Leaflet 提供的方式呈现 GeoJSON。不幸的是,更改style()
函数是不够的,因为我需要更好地控制正在创建的矢量图形。
这样做的惯用方式是什么?我认为我可以重用在src/layers/vector/SVG.js
. 但是,我只想将它替换为一个 GeoJSON 层/一个 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)
}
}
然后在初始化 Leaflet 时将其设置为渲染器,但这失败了TypeError: max2 is undefined
(这是一个未处理的承诺拒绝,源于我使用react-leaflet
)。
我错过了什么?