Ich fange an, react-letlet zu benutzen und bin auf eine Frage gestoßen: In meiner Anwendung füllt der Benutzer ein Formular aus, das dann einen Ruhe-Service anfordert, der ein GeoJSON zurückgibt, das dann als neue Ebene auf meiner Karte hinzugefügt wird . Meine Frage: Wie implementiere ich das dynamische Hinzufügen von Layern in react-letlets?
Danke.
Der beste Ansatz besteht darin, einen GeoJSON-Layer-Wrapper für das Reaktionsblatt zu erstellen. Es gibt eine ähnliche Implementierung der GeoJSON-Schicht mit Clustering, die im Plugins-Abschnitt von reactive-leaflet verfügbar ist >. Dann sollten Sie diese Ebene zu Ihrer Kartenkomponente hinzufügen und bei Bedarf die Daten ändern. Es ist also nicht notwendig, die Ebene dynamisch hinzuzufügen, sondern die Daten dafür dynamisch zu ändern. Überprüfen Sie das GeoJSON-Beispiel des Flyers, um die Idee Ссылка zu erhalten.
Der Ansatz funktioniert, wenn Sie eine Schicht mit sich ändernden Daten haben. Wenn Sie jedoch unterschiedliche Datensätze haben, müssen Sie für jede eine GeoJSON-Ebene hinzufügen.
%Vor%Ich habe ein ähnliches Problem. Ich möchte Marker-Layer dynamisch löschen und erstellen. Ich denke, dass Sie es tun können, indem Sie Bezug auf die tatsächliche Kartenansicht nehmen.
<Map ref={Map => this.map = Map}>
später können Sie dann this.map
mit normalen Leaflet-Funktionen verwenden. Eine andere Möglichkeit könnte sein, dass Sie Ebenen in JSX auf die gleiche Weise erstellen, wie ich Markierungen erzeuge:
{this.props.markers.map((i,index) => {
return (
<Marker key={i} position={i}>
<Popup>
<span>Great marker!</span>
</Popup>
</Marker>);
})}
Tags und Links react-leaflet