Вопрос

Я ищу библиотеку Java для отображения данных карты из различных источников, включая шейп-файл, WMS, WFS, Google Maps, возможно, ArcIMS и т. д.Кажется, что OpenLayers — это самое близкое к тому, что мне нужно, за исключением того, что это библиотека JavaScript, и я пишу приложение Swing.

GDAL выглядит многообещающе, но, насколько я могу судить, привязок к Java не будет до «когда-нибудь» в будущем.

Чтобы внести ясность: я ищу единый API Java, который я могу использовать для отображения карт с нескольких картографических серверов/источников.

Кто-нибудь знает, существует ли что-нибудь подобное, и если нет, то куда идти дальше?Должен ли я создавать этот API поверх GeoTools?Или...

Это было полезно?

Решение

GeoTools — хороший выбор для этого.Карты Google Условия использования запретите доступ к плиткам Google Maps, кроме как через API Google Maps (JavaScript), поэтому маловероятно, что вы найдете свободно доступную кодовую базу для доступа к ним в приложении Java.Подобные ограничения, вероятно, применимы и к другим коммерческим слоям.

Другие советы

Это тот случай, когда у вас есть большой выбор.GeoTools действительно является библиотекой низкого уровня и отличным выбором для практической работы.Недавно мы начали использовать Swing в качестве примера кода для создания учебных пособий. более наглядный.Тем не менее, они представляют собой только учебный код и не представляют собой многопоточную систему, такую ​​​​как uDig.

Если вы ищете приложения Swing для начала, есть семейство Jump (к сожалению, разбросанное по закрытому процессу разработки — OpenJump представляет собой набор различных вилок), gvSig, имеющее отличную финансовую поддержку в Span, и так далее.

Вы также можете взглянуть на библиотечную часть проекта Degree (который, насколько я помню, также создал настольное приложение?).

Я также рекомендую взглянуть на некоторые программы просмотра мозаичных карт, созданные на основе наборов данных Nasa World Wind и Open Street Map.Они будут больше похожи на опыт OpenLayers.

Отказ от ответственности Я вхожу в руководящий комитет GeoTools и uDig.

uDig, вероятно, отлично удовлетворит ваши потребности, если вы сможете работать в рамках RCP.У меня нет опыта работы с uDig или NASA World Wind, но если вам нужно поместить функции карты в существующее приложение, Java SDK НАСА World Wind это еще один вариант.Он расширяем и поддерживает отраслевые стандарты для геопространственных данных.У них есть информативная вики здесь.Я впервые увидел NASA World Wind на JavaOne 2007, и не похоже, что Java SDK действительно стал популярным, и не похоже, что версия .Net видит много новых выпусков, но она может удовлетворить ваши потребности, если они являются базовыми. .

OpenMap якобы неплохо.

Предупреждение:«открытая» лицензия, которую они используют, обдуманный несвободный от Fedora и GNU.

я использовал MapXtreme для Java, он был довольно хорош и поддерживал несколько форматов.Это недешево, но доставляет.

Он ориентирован на рендеринг векторных форматов данных.

Вы можете использовать его как на стороне сервера, так и на стороне клиента.

Попробуйте Mapscript для Java www.mapserver.org

КУ

Посмотрите на UDig

http://udig.refactions.net/

Он основан на eclipse RCP, работает с Geotools и может отображать большинство типов пространственных данных.

это открытый исходный код и, похоже, в нем довольно много активности.

ArcGIS Engine Java сделаю то, что вам нужно.Он интегрируется в полностью интегрированную ГИС-платформу.Существуют инструменты для создания карт картографического качества, их публикации, размещения на хостинге или создания пользовательских приложений.

Он не поддерживает все упомянутые вами форматы, но мне удалось отобразить веб-карты с помощью скромные карты для Обработка (Найди это здесь).Обрабатывающий PApplet может быть встроен в графический интерфейс Swing, как описано. здесь.

Вы можете использовать GoogleMaps, если можете встроить веб-браузер в свое приложение Java Swing, попробуйте JDIC или DJ Project.Также см Есть ли способ встроить браузер в Java? Я работал с таким решением на С# - встраивал IE.Однако вам необходимо встроить хороший веб-браузер, обычно какой-либо собственный веб-браузер, и это ограничивает ваше такое решение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top