Question

Je cherche une bibliothèque Java pour afficher les données cartographiques provenant de diverses sources, y compris shapefile, WMS, WFS, Google Maps, peut-être ArcIMS, etc. Il semble que OpenLayers est la chose la plus proche de ce que je veux, sauf que c'est un JavaScript bibliothèque, et je vous écris une application Swing.

GDAL semble prometteur, mais pour autant que je peux dire qu'il n'y aura pas des liaisons Java jusqu'à ce que « quelque temps » dans l'avenir.

Juste pour être clair, je suis à la recherche d'une seule API Java que je peux utiliser pour afficher des cartes à partir d'un certain nombre de serveurs / sources cartographiques.

Est-ce que quelqu'un sait si quelque chose comme cela existe, et sinon, où aller d'ici? Dois-je construire cette API au-dessus de GeoTools? Ou ...

Était-ce utile?

La solution

GeoTools est un bon pari pour cela. Google Maps Conditions d'utilisation interdisent l'accès à des tuiles Google Maps que par la (JavaScript ) API Google Maps, il est donc peu probable que vous trouverez une base de code disponible gratuitement pour y accéder dans une application Java. Des restrictions similaires sont applicables sans doute à d'autres couches commerciales.

Autres conseils

Ceci est un cas où vous avez beaucoup de choix. GeoTools est en effet une bibliothèque de bas niveau et un excellent choix pour quelques mains sur le travail. Nous avons récemment commencé à utiliser Swing for notre code exemple pour faire des tutoriels plus visuels . Cela dit seulement et ils sont le code tutoriel ne représentent pas un système multithread tels que uDig.

Si vous êtes à la recherche pour les applications Swing pour commencer la forme il y a la famille de saut (malheureusement dispersés à travers un processus de développement fermé - OpenJUMP représente une collection des différentes fourchettes), GVSIG qui a un excellent soutien financier Span, et ainsi de suite.

Vous pouvez également regarder le côté bibliothèque du projet deegree (dont je me souviens produit une application de bureau aussi bien?).

Je recommande également regarder certains des téléspectateurs de carte carrelés produites autour des jeux de données Nasa World Wind et Open Street Map. Ceux-ci seront similaires à l'expérience OpenLayers.

Disclaimer Je suis membre du comité de direction pour GeoTools et uDig.

uDig serait probablement répondre à vos besoins très bien si vous pouvez travailler dans le cadre RCP. Je n'ai aucune expérience avec uDig ou NASA World Wind, mais si vous avez besoin de mettre les caractéristiques de la carte dans une application existante, NASA World Wind Java SDK est une autre option. Il est extensible et prend en charge les normes de l'industrie pour les données géospatiales. Ils ont un wiki informatif . J'ai d'abord vu la NASA World Wind à JavaOne 2007 et il ne ressemble pas le SDK Java a vraiment décollé, ni que ça ressemble la version .Net est de voir beaucoup de nouvelles versions, mais il pourrait répondre à vos besoins si elles sont basiques .

OpenMap est censé être assez bon.

Attention: licence Considéré comme le "open" ils utilisent non-free par Fedora et GNU.

Je l'ai utilisé MapXtreme pour Java , il était assez bon et a soutenu plusieurs formats. Il est pas pas cher mais il offre.

Il est orienté vers les formats de rendu de données vectorielles.

Vous pouvez l'utiliser serveur ou côté client.

Essayez mapscript Java www.mapserver.org

CU

Jetez un oeil à UDig

http://udig.refractions.net/

Il est basé sur l'Eclipse RCP fonctionne avec Geotools et peut afficher la plupart des types de données spatiales.

il est open source et semble avoir un peu d'activité

ArcGIS Engine Java va faire ce que vous avez besoin. Il intègre une plate-forme SIG entièrement intégrée. Il existe des outils pour créer des cartes de qualité, les publier, les accueillir sur ou pour créer des applications personnalisées.

Il ne gère pas tous les formats dont vous parlez, mais j'ai réussi l'affichage des cartes Web en utilisant modestmaps traitement (trouvent ici ). Un PApplet de traitement peut être intégré dans une interface graphique d'oscillation comme expliqué ici .

Vous pouvez utiliser GoogleMaps si vous pouvez intégrer un navigateur Web dans votre application Java Swing, essayez JDIC ou DJ Project. Voir aussi Est-il possible d'intégrer un navigateur Java Je travaille avec une telle solution en C # - intégration IE. Cependant, vous devez intégrer un bon navigateur Web, généralement un navigateur web natif, ce qui limite votre telle solution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top