Obwohl ich Leaflet in meiner webGIS-Anwendung verwendet habe, hat OpenLayers viel mehr Vorteile gegenüber Leaflet. Wenn Sie beispielsweise Ihre Anwendung auf mobilen Geräten verwenden möchten, ist OpenLayers vorerst ein Muss.
Es gibt viele Ressourcen, die mit OpenLayers zu tun haben. Ich denke jedoch, dass das Entwickeln von Anwendungen mit Leaflet einfacher ist als mit OpenLayers (es ist einfacher, einen Code zu lesen und die Struktur zu verstehen). Wenn Sie zeitlich begrenzt sind und ein wenig Erfahrung mit Javascript haben, ist die Verwendung von Leaflet möglicherweise die bessere Lösung, um dies schneller zu erledigen. Oder wenn Sie eine sehr einfache Anwendung entwickeln möchten, lässt sich Leaflet zunächst viel einfacher anpassen.
Aber nachdem ich eine Anwendung mit Leaflet entwickelt habe, sage ich jetzt, ich wünschte, ich hätte OpenLayers am Anfang verwendet. Denn wenn Ihre Anwendung komplex wird (wie das Aufrufen komplexer Ebenen aus einer Datenbank, die Entwicklung einer robusten mobilen Anwendung usw.), schränkt Leaflet Ihre Fähigkeiten ein. Daher denke ich, dass es sich irgendwann lohnen wird, ein wenig mehr Zeit zu investieren, um die Struktur von OpenLayers in der Lernphase zu verstehen und zu lernen.
Da die Projektdetails berücksichtigt werden;
Verwenden Sie die Kartenschnittstelle, um Feature-Informationen abzurufen:
Sowohl Leaflet als auch OpenLayers können das perfekt. Hier geht es darum, die Koordinaten des Klickereignisses abzurufen und eine Anfrage an den Server zu senden. Der Anforderungslink ist für beide Anwendungen gleich.
Erstellen Sie ein benutzerdefiniertes Tool, das dem Benutzer mitteilt, wo er auf die Karte klickt, und dann die Klimadaten aus dem Raster abruft (das von einem Py-Skript auf dem Server verarbeitet wird):
Das habe ich selbst im Leaflet erreicht (ich habe übrigens auch die Klimadaten genannt). Ich habe die Rasterdaten nicht von einem Server abgerufen, aber hier geht es darum, einen Anforderungslink zu erstellen, der für beide Anwendungen einfach ist. Wenn Sie jedoch zu diesem Zeitpunkt ein Polygon auswählen möchten, ist es etwas schwierig, dieses zu erreichen.
Ermöglicht dem Benutzer das Hochladen von Excel, das an das Py-Skript gesendet wird, das ein GeoJSON zurückgibt, das Vektor-Features auf der Karte erstellt:
Etwa das gleiche Arbeitsgebiet für Leaflet und OpenLayers. Ich kann nicht sagen, welches besser ist.
Ermöglichen Sie dem Benutzer das Erstellen von Vektorpolygonen, mit denen die Features, die sie überschneiden, aus der WFS-Ebene abgerufen werden:
Ich habe keine Ahnung, was OpenLayers-Bearbeitungsmöglichkeiten angeht, aber Leaflet hat ein Plugin namens Leaflet Draw, das einfach zu verwenden ist und die Zeichnungen (auf der Javascript-Seite) bearbeitet, nachdem das Zeichnen abgeschlossen ist. Außerdem bietet Leaflet eine WFS-T-Unterstützung, wenn Sie die räumlichen Daten auf dem WFS-Server bearbeiten möchten. OpenLayers könnte besser sein, ich weiß es nicht.
Ruft die Ebene aus dem PostGIS-Datenspeicher auf GeoServer ab und zeigt die Ebenen auf der Karte an:
OpenLayers ist definitiv besser für diesen Job, da es einfacher ist, einen PostGIS-Server zu verbinden.
Übrigens gibt es eine Anwendungssuite namens OpenGeo Suite , die OpenLayers, GeoServer und PostGIS enthält. Damit werden alle Probleme gelöst, die ein webbasierter GIS-Anwendungsentwickler hat.