Использование SVG + Java для гибкого отображения информации, это жизнеспособно? - PullRequest
3 голосов
/ 01 октября 2010

У меня есть требование создать «имитирующий» дисплей сложной электрической системы.У меня есть доступ к информации о состоянии в реальном времени и системным блок-схемам в Visio.

Это жизнеспособный подход:

  1. Создание чертежа SVG из блок-схемы системы

  2. Пометить элементы SVG наинтерес к атрибутам SVG

  3. загрузить SVG DOM в java

  4. найти теговые элементы и изменить их в соответствии с информацией о состоянии системы (сделать элементКРАСНЫЙ, если его «в тревоге», например)

  5. рендеринг SVG в PNG для отображения с использованием BATIK (используйте компонент колебания: JSVGCanvas)

Ключевым требованием является гибкая возможность изменять SVG после развертывания приложения.Приложение способно гибко извлекать различные «точки данных» на основе тегов в SVG.

У кого-нибудь есть успех при использовании подобной стратегии?Какие подводные камни следует ожидать?Что есть в инструментах редактирования SVG?

Ответы [ 2 ]

2 голосов
/ 01 октября 2010

Я сделал нечто подобное для отображения состояния здоровья. Я фактически аннотировал объекты данных и заставлял их переносить свое состояние в тупой SVG-файл, но механизм должен быть примерно таким же, только наоборот.

Преимущества:

  • Делает сложные, динамические диаграммы безумно простыми для рендеринга.
  • Ведение диаграмм проще простого, чем все, что я когда-либо использовал.
  • Возможность нацеливаться на веб-приложение либо напрямую через SVG, либо опосредованно через визуализированные сервером изображения, доставляемые клиенту.

Ловушки:

  • Привязка данных может быть болезненной в зависимости от того, насколько сложной должна быть ваша визуализация. Если вы хотите аннотировать SVG для извлечения данных в себя, это, вероятно, в конечном итоге станет сложной частью.
  • Вам понадобится хорошее понимание XPath, чтобы сделать что-нибудь даже немного хитрое. Это никогда не сложно, но часто утомительно отлаживать выражения XPath.

Редакторы: Inkscape . Есть несколько других редакторов векторной графики, которые могут делать SVG напрямую или в качестве цели экспорта, но ни один из тех, что я видел, не подходит близко к Inkscape. Он не поддерживает все функции в текущей спецификации SVG, но, похоже, этого будет достаточно для большинства, если не для всего, что вы хотите. Также очень хорошо, если вы не выполняете ручное редактирование файлов SVG, когда вам нужно что-то, что оно не поддерживает.

0 голосов
/ 13 октября 2010

Вы также должны взглянуть на SVG Salamander , я не использовал его сам, но некоторые из функций:

  • "Индекс всех именованных фигур вSVG-график легко доступен. "
  • " Прямой доступ к дереву графа сцены. Вы можете использовать команды Java для непосредственного управления им. "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...