Ich möchte GeoJSON anders als von Leaflet standardmäßig zur Verfügung gestellt werden. Leider wird das Ändern der style()
-Funktion nicht ausreichen, da ich eine größere Kontrolle über die erstellten Vektorgrafiken benötige.Benutzerdefinierte Leaflet-Renderer für GeoJSON
Was ist der idiomatische Weg, dies zu tun? Ich denke, ich kann viele Teile des Standard-SVG-Renderers wiederverwenden, der in src/layers/vector/SVG.js
gefunden wird. Ich möchte es jedoch nur für eine GeoJSON-Schicht/eine FeatureGroup ersetzen. Da keiner von diesen von Path
erbt, scheint dies nicht möglich.
Ich habe versucht, die SVG-Klasse in einer sehr einfachen Art und Weise erstrecken:
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)
}
}
und setzen Sie ihn dann als Renderer während Leaflet Initialisierung, aber dies nicht mit einem TypeError: max2 is undefined
(es ist ein nicht behandelter Versprechen Ablehnung, die von den Stämmen Ich benutze react-leaflet
).
Was fehlt mir?
Welche Art von "größere Kontrolle über die Vektorgrafik" benötigen Sie? – IvanSanchez