2009-06-28 16 views
17

Dovrei creare un'applicazione GIS per il mio MSc e mi chiedevo quali sono le migliori tecnologie gratuite e (preferibilmente) open source per lo sviluppo? Quale linguaggio di programmazione utilizzare per lo sviluppo di tale applicazione?Linee guida per lo sviluppo di applicazioni GIS

scelte conosciuti sono: Database: PostgreSQL (PostGIS) (suggerire altre)

linguaggio di programmazione: PHP, Python, Java, ... (suggerire altre)

Frameworks: GeoDjango (se Python o Jython viene utilizzato), (suggerire altro)

interfaccia utente client: JavaScript (OpenLayers), Flex, (suggerire altre)

Server: Mapserver, GeoServer, MapFish, (suggerire altre)

Altre considerazioni: Hibernate Spatial, supporto per GIS mobile, (suggerire altro)

+0

per completezza vedi anche http://stackoverflow.com/questions/3180793/gis-for-the-web/3202994#3202994;) – Redlab

+1

Puoi postare questa domanda qui: http://gis.stackexchange.com/ – Beachwalker

risposta

2

È possibile incorporare Google Maps in un'applicazione Web? Questa sarebbe la soluzione più semplice ...

Per GIS open source, vedere Wikipedia's list of open source GIS, è abbastanza completo.

incolla da Wikipedia:

Lo sviluppo di software GIS fonte aperta ha - in termini di storia del software - una lunga tradizione con la comparsa di un primo sistema nel 1978. Numerosi sono i sistemi oggi disponibili che coprono tutti i settori della gestione dei dati geospaziali.

i seguenti progetti di GIS Open Desktop fonte sono rivisti in Steiniger e Bocher (2008/9):

gvSIG 1,0

GRASS GIS - Originariamente sviluppato da US Army Corps of Engineers, open source: un GIS completo

SAGA GIS - Sistema per analisi geoscientifiche automatizzate - un software GIS ibrido. SAGA ha un'interfaccia API (Application Programming Interface) e una serie di metodi geoscientifc in rapida crescita, raggruppati in librerie di moduli intercambiabili.

Quantum GIS - QGIS è un GIS Open Source di facile utilizzo che gira su Linux, Unix, Mac OS X e Windows.

MapWindow GIS - Applicazione desktop GIS libera e open source e componente di programmazione.

ILWIS - ILWIS (Sistema integrato di informazione su terra e acqua) integra immagini, vettori e dati tematici.

uDig

gvSIG - Open source GIS scritto in Java.

JUMP GIS/OpenJUMP - (Open) Java Unified piattaforma di mappatura (l'OpenJUMP del desktop GIS, SkyJump, deeJUMP e Kosmo emerso da JUMP, vedi [3])

altro:

Capaware rc1 0,1

SAGA-GIS v. 2.0.3

Kalypso (software) - Kalypso è un GIS open source (Java, GML3) e si concentra principalmente su simulazioni numeriche nella gestione dell'acqua.

TerraView - desktop GIS che gestisce vettoriali e raster dati memorizzati in un database relazionale o geo-relazionale, vale a dire un frontend per TerraLib.

Capaware - Capaware è anche un GIS Open Source, un quadro di GIS incredibile veloce C++ 3D con un'architettura a plugin multipla per l'analisi grafica geografica e la visualizzazione.

+1

Anche se la domanda non lo dichiarava esplicitamente, penso che caro sconosciuto qui voglia costruire un'applicazione web GIS, che le alternative che citi non coprono. –

2

I, alcuni anni (circa 6) fa, ha funzionato quasi esclusivamente con MapServer (in particolare PHP MapScript) e PostGIS, ottenendo risultati abbastanza buoni, in particolare sul reparto flessibilità. Ho creato app di produzione (geolocalizzazione con analisi) e ho persino fatto la mia tesi di laurea basata su quel lavoro. Mi aspetto che questi due, data la loro maturità, siano ancora una buona scelta.

All'epoca non c'erano molte alternative per la creazione di applicazioni GIS Internet basate sul Web, al giorno d'oggi ce ne sono alcune (soprattutto da quando Google Maps è stato pubblicato).

Da allora ho ricevuto alcuni concerti relativi a GIS, in cui uno utilizzava Cartoweb per la visualizzazione, ovvero un framework Web basato su PHP-Mapscript che è estensibile e funziona principalmente.

La scelta migliore dipende in ultima analisi da cosa si intende costruire. Se si desidera una piena flessibilità sulla visualizzazione dell'analisi, visualizzazione mappe, routing e modifica geografica, è necessario ottenere un map server programmabile. So che Mapserver funziona, ma è molto probabile che GeoServer e MapBuilder e persino Mapnik funzionino, a seconda delle specifiche.

BTW, a proposito di alternative, MySQL ha anche Spatial Extensions.

9

afaik: la scelta migliore per le applicazioni web è quello di preparare i vostri dati con gvSIG (http://www.gvsig.org), ospiterà i dati in PostgreSQL/PostGIS (http://www.postgresql.org, http://postgis.refractions.net), pubblicare un servizio WMS/WFS (s) con MapServer (http://mapserver.org/) e quindi mostrare i dati utilizzando gli openlayer (http://openlayers.org). Questa soluzione funziona perfettamente per le mie esperienze. Un buon approccio è usare MapFish (http://trac.mapfish.org/trac/mapfish/wiki) un framework webgis che usa internamente extjs e openlayer ma semplifica lo sviluppo.

+1

un altro buon approccio per lo sviluppo .net (ma sembra che non sia obbligatorio per te), è quello di usare sharpmap (http://www.codeplex.com/SharpMap) per costruire un'applicazione asp.net gis e per pubblicare i tuoi dati con MsSqlServerSpatial (http://www.codeplex.com/MsSqlSpatial) –

+1

+1 per MapServer + WMS + OpenLayers. Se vuoi che sia veloce, usa anche TileCache. Inoltre, quasi tutti i database ora supportano tipi spaziali e MapServer supporta la maggior parte dei database, quindi scegli quello che conosci (o che vuoi sapere) migliore. – geographika

2

Per qualcosa che sembra più una "applicazione" di una pagina Web con una mappa, controlla http://geoext.org/, che combina OpenLayers con ExtJS.

0

È difficile rispondere alla domanda per gli strumenti "migliori" perché questo dipende dalle vostre esigenze. Specifica le tue esigenze e troveremo una risposta più precisa (come ho visto, mi hai chiesto qualche tempo fa e spero che tu abbia già ottenuto il tuo Master) ...tuttavia, ci potrebbero essere altri ancora interessati a questa domanda.

Database:

per piccole applicazioni desktop Dimensione Sqlite con SpatiaLite potrebbe essere un'opzione, invece di una completa PostgreSQL/PostGIS Server come back-end. PostgreSQL è una buona scelta per le applicazioni più grandi o usarlo insieme a un WFS (-T) -Server come GeoServer o UMN MapServer.

Forse il semplice formato Shapefile vecchio soddisfa i requisiti e non è necessario un back-end del database.

linguaggio di programmazione:

suggerisco di usare la lingua sei già familiarità con. Ci sono molti collegamenti a diverse lingue disponibili e scommetto che anche la tua lingua sia supportata. Se si inizia da zero a eroe, suggerirei Java, perché è facile da imparare e ci sono molti progetti open source ben mantenuti disponibili.

Frameworks:

io non posso suggerire un quadro unico, perché hanno tutti capabilties speciali e vantaggi in campi specifici ... perché dovrei suggerire un kit di strumenti di visualizzazione se avete solo bisogno di qualcosa per la conversione formati di file o coordinate senza visualizzarli. Ho già detto che in cima alla mia risposta. MapWindow6 e DotSpatial potrebbero essere interessanti se si utilizza C#.

ClientUI:

Desktop e/o browser? OS? Le possibili tecnologie dipendono dai tuoi requisiti e dall'ambiente. Se si è bloccati a utilizzare un browser (che può visualizzare WebGL) e si desidera mostrare uno stato dell'arte fx Cesium potrebbe essere interessante.

Server:

È già menzionato i più noti server open source, il mio preferito è il GeoServer.

Altri suggerimenti

Se siete alla ricerca di una tecnologia speciale pila la OGC Website è il primo punto a visitare. Hanno definito molti (per non dire tutti) standard noti nel campo GIS e forniscono un elenco di implementations per ogni standard.

0

Volevo solo menzionare CartoDB pure. L'ho usato da un po 'di tempo e penso sia fantastico. Hanno un sito web online con limitazioni per gli account gratuiti, ma è open source e puoi installare la tua istanza. È davvero flessibile È possibile archiviare i dati nel proprio DB PostGIS cloud o localmente ospitato, quindi utilizzare librerie JS come CartoJS o Leaflet per connettersi al DB e tracciare i dati. Puoi creare visualizzazioni e incorporarle nel codice HTML.

This è il loro sito online. E this is their repo con collegamenti alle istruzioni su come impostare la propria istanza CartoDB, se si preferisce.

Problemi correlati