Визуализировать векторную графику на Java, какая библиотека?

Мне нужно визуализировать большую векторную графику. Это карта дорог, дороги — это просто линии. Есть ли библиотека для этого? Было бы неплохо, если бы в этой библиотеке была поддержка увеличения/уменьшения масштаба и ее было бы легко расширять. Например. для реализации выбора дорог или некоторых приятных эффектов при наведении курсора мыши. Лицензия должна разрешать использование в коммерческом проекте.

Спасибо, Филип

Редактировать: есть ли причина не использовать Graphics2D или SWT Graphics? (Проект находится на SWT и не использует SVG.)


person Philip    schedule 02.02.2011    source источник


Ответы (2)


Взгляните на Apache Batik.

Batik — это набор инструментов на основе Java для приложений или апплетов, которые хотят использовать изображения в формате масштабируемой векторной графики (SVG) для различных целей, таких как отображение, создание или обработка. Другая возможность — использовать модули Batik для преобразования SVG в различные форматы, такие как растровые изображения (JPEG, PNG или TIFF) или другие векторные форматы (EPS или PDF, последние два из-за транскодеров, предоставляемых Apache FOP). Последняя версия Batik, выпуск 1.7, представляет собой совместимую статическую реализацию SVG и поддерживает функции интерактивности, связывания и сценариев спецификации SVG.

Другими хорошими альтернативами являются FreeHEP и Векторная графика2D

person Lev Khomich    schedule 02.02.2011
comment
Насколько я понимаю, батик не вариант, должна быть возможность реализовать выделение объектов. Для этого мне пришлось бы реализовать некоторое сопоставление между SVG и источником данных, я думаю, что это было бы излишним. FreeHEP — это Graphics2D->SVG-Exporter, VectorGraphics2D, кажется, не имеет хорошей графики. :С - person Philip; 02.02.2011
comment
Вы можете использовать AsSvg() из SpatiaLite или генератор SVG из дистрибутива Batik в качестве альтернативы over-kill. - person Lev Khomich; 02.02.2011

Если вы говорите о SVG-подобной графике, я думаю, что Batik — это то, что вам нужно.

person Riduidel    schedule 02.02.2011
comment
Да, я тоже наткнулся на батик, но я не использую SVG в этом проекте. - person Philip; 02.02.2011
comment
SQLite/SpatiaLite, SHP или внутренний двоичный формат. (Хотя данные могут обрабатываться библиотекой JTS.) Конечно, существует существующее программное обеспечение ГИС, но оно излишне, и возникают проблемы с лицензией. - person Philip; 02.02.2011
comment
@Philip, я предлагаю вам задать вопрос StackOverflow, поскольку вы отображаете не простую векторную графику, а фактические картографические данные, что является совсем другой проблемой. - person Riduidel; 02.02.2011