Используя Java и любые внешние библиотеки, как я могу нарисовать точки широты / долготы на графическом изображении Земли? - PullRequest
6 голосов
/ 10 июля 2009

В настоящее время я использую Java Map Projection Library (Мне удалось получить код, использованный для апплета, у автора и изменить его для использования в настольном приложении - не уверен, что он связан с что на его сайте еще нет) нарисовать карту Земли в приложении. Однако я хочу сделать еще один шаг вперед. У меня есть набор точек широты / долготы, которые я хочу построить на этой карте - мне просто нужно нарисовать круг в каждой точке и, возможно, некоторые линии, соединяющие круги (точки) на карте. Однако, поскольку пользователь использует встроенные возможности панорамирования и масштабирования, точки должны быть перерисованы в правильном положении. Лучшее, чего мне удалось добиться, - это сохранение точек при масштабировании, и даже тогда точки увеличиваются при увеличении масштаба.

Я полностью открыт для переключения библиотек, однако я действительно не нашел библиотеку, которая могла бы позаботиться о рисовании карты мира, особенно на компоненте Swing (она не должна быть настолько точной, просто покажите различные участки земли, а также нанесение дополнительных точек поверх этой карты и их привязку к различным координатам широты и долготы.

Я посмотрел на Google Планета Земля и NASA WorldWind, однако они очень тяжелы для моих целей (мне не нужно ничего подробного или точного), и не так просто разрешить автономное использование и интегрировать мир просмотр изображения в существующем приложении.

Предложения или мысли?

Ответы [ 5 ]

1 голос
/ 24 июля 2009

Вы можете взглянуть на другие компоненты стека Java www.osgeo.org. Один из них - геотрусы: http://geotools.codehaus.org/

они также разрабатывают графический интерфейс: http://geotools.codehaus.org/GUI+Architecture

0 голосов
/ 10 ноября 2009

Некоторое время назад я использовал OpenMap для небольшого приложения - это взлом, но показывает, как это сделать. Приложение показывает треки ураганов разных лет, используя данные из NOAA. Вы можете скачать его здесь:

http://github.com/DonBranson/SnarfNOAA

0 голосов
/ 10 ноября 2009

Вы должны посмотреть на OpenMap .

Мы использовали OpenMap для отображения треков GPS в настольных приложениях в течение нескольких лет. Очень легко добавить свои собственные слои для точек трека, истории, аннотаций и ваших собственных источников данных. Вам не нужно иметь никаких внешних подключений, если вы не хотите, чтобы они были.

Я быстро посмотрел на GeoTools, но казалось, что начать работу, по крайней мере, год или два назад, было сложнее, чем то, что мы уже сделали с OpenMap. Недавно мы изучали WorldWind , но это определенно намного больше, чем нам было нужно. OpenMap требует немного мощности по сравнению с WorldWind, которому нужна довольно приличная видеокарта.

0 голосов
/ 28 июля 2009

Работа с геопространственными данными может стать ОЧЕНЬ сложной задачей. Какой подход выбрать, во многом зависит от того, насколько точно вы должны быть при отображении данных. ГИС для веб-разработчиков - отличная книга, в которой освещаются вопросы, связанные с геопространственными данными, и способы их передачи из источника данных на дисплей. Он предназначен для веб-дисплеев, но концепции те же.

Если вам не нужна высокая степень точности, простой подход - найти непроецированную базовую карту. С базовой картой легко отображать точки широты / долготы с помощью простых декартовых координат.

Если вам нужен точный дисплей, то действительно нет способа избежать довольно сложных библиотек. Существует много математических методов, необходимых для преобразования геопространственных данных с различными датумами и проекциями во что-то, что может быть отображено для пользователей.

0 голосов
/ 10 июля 2009

Хотя я не использовал его, проект SwingLabs SwingX-WS имеет «компонент просмотра карт с расширенными возможностями». На странице Java.net есть руководство по началу работы с компонентом карты.

...