Sebbene abbia usato Leaflet nella mia applicazione webGIS, OpenLayers ha molti più vantaggi rispetto a Leaflet. Ad esempio, se si desidera utilizzare l'applicazione in dispositivi mobili, OpenLayers è un must per il momento.
Esistono molte risorse correlate a OpenLayers, tuttavia penso che lo sviluppo di applicazioni con Leaflet sia più semplice di OpenLayers (è più facile leggere un codice e comprenderne la struttura). Se hai un limite di tempo e hai poca esperienza con Javascript, usare Leaflet potrebbe essere una soluzione migliore per farlo più velocemente. O se vuoi sviluppare un'applicazione molto semplice, Leaflet può essere molto più semplice da adattare all'inizio.
Ma dopo aver sviluppato un'applicazione con Leaflet, ora dico che avrei voluto utilizzare OpenLayers all'inizio. Perché quando la tua applicazione diventa complessa (come chiamare livelli complessi da un database, sviluppare una robusta applicazione mobile, ecc.), Leaflet inizia a limitare le tue capacità. Quindi, penso che alla fine ne varrà la pena spendere un po 'più di tempo per capire e apprendere la struttura di OpenLayers in fase di apprendimento.
Come i dettagli del progetto considerati;
Utilizza l'interfaccia della mappa per recuperare le informazioni sulle funzioni:
Sia Leaflet che OpenLayer possono farlo perfettamente. Il punto qui è quello di ottenere le coordinate dell'evento click e inviare la richiesta al server. Il collegamento della richiesta sarà lo stesso per entrambe le applicazioni.
Crea uno strumento personalizzato che porta lat / lon dall'utente in merito a dove fa clic sulla mappa e quindi recupera i dati climatici dal raster (che è gestito da uno script PY sul server):
L'ho realizzato anch'io in Leaflet (a proposito, stavo anche chiamando i dati climatici). Non stavo recuperando i dati raster da un server, ma il punto qui è creare un collegamento di richiesta, che è facile per entrambe le applicazioni. Tuttavia, se si desidera selezionare un poligono in questa fase, è difficile ottenere Leaflet.
Consente all'utente di caricare Excel, che viene inviato allo script PY, che restituisce un GeoJSON, che crea funzionalità vettoriali sulla mappa:
Approssimativamente la stessa linea di lavoro sia per Leaflet che per OpenLayer. Non posso dire quale sia la migliore.
Consenti all'utente di creare poligoni vettoriali, che recupereranno le Funzionalità che interseca dal Livello WFS:
Non ho idea delle capacità di modifica di OpenLayers ma Leaflet ha un plugin chiamato Leaflet Draw, che è facile da usare e manipolare i disegni (sul lato javascript) dopo che il disegno è completato. Inoltre Leaflet ha un supporto WFS-T se si desidera manipolare i dati spaziali sul server WFS. OpenLayers potrebbe essere migliore di così, non lo so.
Recupera livello dal datastore PostGIS su GeoServer e visualizza i livelli sulla mappa:
Sicuramente OpenLayers è meglio per questo lavoro in quanto è più facile connettere il server PostGIS.
A proposito, esiste una suite di applicazioni chiamata OpenGeo Suite che include OpenLayers, GeoServer e PostGIS; che risolverà tutti i problemi che ha uno sviluppatore di applicazioni GIS basato sul web.