2009-05-21 9 views
9

Sto cercando una libreria Java per visualizzare i dati delle mappe da varie fonti, tra cui shapefile, WMS, WFS, Google Maps, eventualmente ArcIMS, ecc. Sembra che OpenLayers sia la cosa più vicina a ciò che voglio, tranne che è una libreria JavaScript e sto scrivendo un'applicazione Swing.Java equivalente di OpenLayers

GDAL sembra promettente, ma per quanto posso dire non ci saranno binding Java fino a "qualche volta" in futuro.

Giusto per essere chiari, sto cercando una singola API Java che possa essere utilizzata per visualizzare le mappe da numerosi server/sorgenti di mappe.

Qualcuno sa se esiste qualcosa del genere, e se no, dove andare da qui? Dovrei costruire questa API su GeoTools? Oppure ...

+0

Forse ho accettato questa risposta troppo presto, poiché questa era la mia prima domanda su SO? Sembra che abbia ottenuto più visualizzazioni ma non più input. – dave4351

risposta

3

GeoTools è una buona scommessa per questo. Google Maps Terms of Service proibisce l'accesso ai riquadri di Google Maps ad eccezione dell'API di Google Maps (JavaScript), quindi non è probabile che troverai una base di codici liberamente disponibile per accedervi in ​​un'applicazione Java. Restrizioni simili probabilmente si applicano ad altri livelli commerciali.

+0

Speravo in qualcosa di più alto livello di astrazione rispetto a Geotools, ma dovrò solo costruire ciò di cui ho bisogno su questa base. – dave4351

0

Ho usato MapXtreme for Java, era abbastanza buono e supportava diversi formati. Non è economico ma offre.

È orientato verso il rendering di formati di dati vettoriali.

È possibile utilizzarlo lato server o client.

0

Prova MapScript per Java www.mapserver.org

CU

0

Dai un'occhiata alla uDig

http://udig.refractions.net/

Si basa sulla Eclipse RCP funziona con GeoTools e in grado di visualizzare la maggior parte tipi di dati spaziali.

è open source e sembra avere un po 'di attività

3

uDig probabilmente soddisfare le vostre esigenze più che bene se si può lavorare nel quadro RCP. Non ho esperienza con uDig o NASA World Wind, ma se hai bisogno di mettere le funzionalità della mappa in un'applicazione esistente, NASA's World Wind Java SDK è un'altra opzione. È estensibile e supporta gli standard di settore per i dati geospaziali. Hanno un wiki informativo here. Ho visto per la prima volta NASA World Wind su JavaOne 2007 e non sembra che l'SDK Java sia davvero decollato, né sembra che la versione .Net stia vedendo molte nuove versioni, ma potrebbe soddisfare le tue esigenze se sono di base .

0

ArcGIS Engine Java farà quello che ti serve. Si integra in una piattaforma GIS completamente integrata. Esistono strumenti per creare mappe di qualità cartografica, pubblicarle, ospitarle o creare app personalizzate.

4

Questo è un caso in cui si ha molta scelta. GeoTools è davvero una libreria di basso livello e una scelta eccellente per alcune mani sul lavoro. Di recente abbiamo iniziato a utilizzare Swing per il nostro codice di esempio al fine di creare tutorial more visual. Detto questo sono solo codice tutorial e non rappresentano un sistema multi thread come uDig.

Se stai cercando le applicazioni Swing per avviare la forma, c'è la famiglia Jump (tristemente dispersa attraverso un processo di sviluppo chiuso - OpenJump rappresenta una raccolta delle varie forcelle), gvSig che ha un eccellente supporto finanziario in Span, e così via .

Si potrebbe anche voler considerare il lato biblioteca del progetto deegree (che sembra richiamare anche un'applicazione desktop?).

Mi raccomando anche di guardare alcuni dei visualizzatori di mappe affiancate prodotti attorno ai dataset Nasa World Wind e Open Street Map. Questi saranno più simili all'esperienza OpenLayers.

Disclaimer Sono al comitato direttivo di GeoTools e uDig.

1

OpenMap è apparentemente piuttosto buono.

Attenzione: la licenza "aperta" che utilizzano è considerednon-free di Fedora e GNU.

0

Non gestisce tutti i formati menzionati ma ho avuto successo visualizzando le mappe Web utilizzando modestmaps per Processing (trova here). Un PApplet di elaborazione può essere incorporato in una GUI swing come spiegato here.

0

È possibile utilizzare GoogleMaps se è possibile incorporare un browser Web nell'applicazione swing Java, provare JDIC o DJ Project. Vedi anche Is there a way to embed a browser in Java? Ho lavorato con tale soluzione in C# - incorporando IE. Tuttavia, è necessario incorporare un buon browser Web, in genere un browser Web nativo e ciò limita la soluzione.