Quale framework di web mapping python usare? [chiuso]


19

Sono interessato a sviluppare un'applicazione di web mapping. Conosco relativamente Python e quindi sto cercando un framework Python. Quali sono le mie opzioni? quali sono i pro e i contro di ogni opzione?

Sto cercando un'opzione semplice, quella che visualizza le informazioni geografiche sulla mappa e consente all'utente di utilizzare le "informazioni" per ottenere maggiori dettagli. A questo punto non ho bisogno di domande o funzionalità dinamiche. Preferirei un'opzione ben documentata.


4
Devi fornire maggiori informazioni. Quali caratteristiche stai guardando? Che tipo di mappatura web vuoi fare?
Devdatta Tengshe,

Risposte:


15

Prova Folium , è davvero semplice iniziare: crei il tuo progetto usando Python e apri la mappa risultante.

Se vuoi approfondire, puoi ordinare in base al livello di semplicità decrescente:

  • GeoDjango con aggiunte come Django-Leaflet . Doc davvero migliore qui
  • FeatureServer Più orientato al lato server ma una demo OpenLayers ( ultimo aggiornamento 2015 )
  • MapFish da solo. Basato su piloni ormai obsoleti ( ultimo aggiornamento 2011 )
  • Papyrus , l'integrazione di Mapfish in Pyramid, un noto framework Python ( ultimo aggiornamento 2017 )

Come si confronta Folium con GeoDjango in termini di capacità che hanno?
multigoodverse,

2
Folium = principalmente per l'anteprima dei dati in una mappa web e generare una mappa web statica. Nessuna capacità di modifica qui. Dall'altro lato, GeoDjango = per gestire i dati in un sito web dinamico. Sarà necessario codificare di più, ma è possibile creare un sito Web completo poiché GeoDjango è solo ed estensione al framework Web Django (per creare un sito Web completo). È anche possibile modificare le capacità, gestire utenti e gruppi.
ThomasG77,

8

Potresti provare GeoDjango .

Potrebbe essere eccessivo per quello che vuoi fare ma sembra soddisfare i criteri che stai cercando. È un framework web basato su Python che incorpora molti grandi progetti GIS come, gdal / ogr, OpenLayers e supporta l'uso di geodatabase incluso postgis / postgres.

Lo sto sperimentando da diversi mesi e mi piace finora. C'è sicuramente una curva di apprendimento, ma la documentazione è abbastanza buona e c'è una forte comunità di utenti.

Trovo che sia una piattaforma davvero flessibile e più matura di quanto mi aspettassi. Dai un'occhiata se non l'hai già fatto.


8

Se vuoi un servizio web di base in Python, ci sono due modi:

  • geodjango, questa è un'estensione ufficiale integrata in django. Funziona benissimo ma è centrato sul django. Se ti piace il django è perfetto
  • pallone (o un altro webframework) + geoalchemy2 (estensione di sqlalchemy) + ben fatto (lirairy per manipolare Geo-object), forse è più difficile di geodjango ma è la mia soluzione preferita. Preferisco jinja2 e sqlalchemy piuttosto che il modello e l'orm di django.

Quindi collegalo agli openlayer o al volantino.

Ma guarda le soluzioni standard server WMS o WFS, può essere utile.


0

Che ne dici di MapFish, che secondo se stesso lo è

un framework flessibile e completo per la creazione di ricche applicazioni di web mapping ... basato sul framework Web Pylon di Pylons.

Non posso pretendere di averlo usato ma è preinstallato sulla mia macchina OSGeo Live - OpenLayers e TileMill sono stati i miei "framework" di mappatura web (qualunque cosa ciò significhi), ma nessuno dei due usa molto Python. Sulla base del loro sito Web e della loro affiliazione con OSGeo , non esiterei a raccomandare di testare la loro tecnologia, anche se come dice il commento sopra, la tua scelta dovrebbe dipendere dall'applicazione, non solo dalla lingua in cui è scritta.

La loro demo online sembra funzionare in modo efficiente e sembra un progetto con slancio: perché non provare il loro tutorial di "avvio rapido" e vedere quanto soddisfa le tue esigenze?


2
Mapfish non è più attivo.
Raffaello,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.