2009-06-13 4 views
0

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

Необходимо будет основываться на базе базы данных БД по сравнению с подходом «читает XML-файл» некоторых приложений Flash.

ответ

2

JFreeChart - это бесплатное и масштабируемое решение.

http://www.jfree.org/jfreechart/

+0

JFreeChart не может быть лучшим выбором для данных в реальном времени, как FAQ утверждает, что она действительно не поддерживает в режиме реального времени графиков. – Mark

+0

Да, около реального времени является ключевым требованием. – 2009-06-20 15:29:45

+0

FYI: мы используем JFreechart для отображения в реальном времени каждый день. –

0

Поскольку диаграммы будут доступны для просмотра в браузере, вы можете использовать что-то вроде Gnuplot для создания графических файлов данных и отображать их. Gnuplot действительно гибкий, вы можете создавать практически все, и это довольно быстро. Но вам придется читать данные и кормить их в gnuplot самостоятельно. В gnuplot есть некоторые интерфейсы Java, если вы хотите придерживаться Java. Установите заголовок обновления, чтобы получить разумную сумму и посмотреть обновление данных.

Смотрите здесь о Gnuplot: http://www.gnuplot.info

Смотрите здесь о яве интерфейсах: http://www.gnuplot.info/links.html

+0

Похож на создание только серийно-статического изображения. – 2009-06-20 15:42:59

0

Однажды мне пришлось показывать Гант схему 150 машин и 100.000 задач. Я написал собственный Java-апплет с пользовательским рендерингом, и передача данных обрабатывалась с помощью http + java serialization api. Я обнаружил, что любое другое решение (SVG, VML, Flash, теги изображений) было слишком медленным и трудным в работе.

Обновление: Here - изображение, как это выглядит. К сожалению для сообщества, это был промышленный проект, поэтому исходный код не является общедоступным. Я могу только поделиться некоторыми понятиями об этом.

Область диаграмм состоит из нескольких отдельных компонентов: горизонтальной и вертикальной полос прокрутки, площади диаграммы, метки времени и двух таблиц с каждой стороны. Эти компоненты связаны между собой посредством обработчиков событий. Если кто-то прокручивает/меняет, он влияет на остальных. Диаграмма Ганта состоит из заполненных прямоугольников, где цвет используется для указания статуса задачи. Отрисовка выполняется в методе paint() путем прокрутки каждой видимой строки и между отображаемыми датами начала начала. В рендеринге используется агрессивное обрезание вместо того, чтобы полагаться на функцию отсечения Graphics2D. Пользователи имеют возможность панорамирования и масштабирования вида.

Данные хранятся в сериализуемой структуре данных. Код Java на стороне сервера содержит кеш для всей структуры данных. Эта структура обновляется каждые 30 секунд, но только различия извлекаются из базы данных поддержки. Затем данные запрашиваются апплетом, составленным в модель gantt, сериализованным и возвращенным на клиентскую сторону. Обновление данных на стороне клиента/апплета не является автоматическим: пользователям нужно нажать кнопку обновления - это позволяет им оценивать изображение без неожиданных изменений.

Оказание диаграммы Гантта не требует, чтобы многие фантазии - fillRect, AlphaComposite, drawLine. Если вам нужны более сложные изображения, вам нужно будет сделать больше кода с моим подходом.

+0

Это интересный подход, более подробная информация? – 2009-06-20 15:45:01

1
  1. Передача данных в браузер с помощью JSON - как вам, вероятно, необходимо - для обновления информации на стороне клиента;
  2. Изобразите данные с помощью Raphaël

Это должно дать вам гораздо более высокую пропускную способность, так как графики регенерируют на стороне клиента, а также в качестве платформы сделаны для рисования.

Вот несколько образцов того, что вы можете достичь:

chart http://img140.imageshack.us/img140/5143/rapahelchart.png graph http://img269.imageshack.us/img269/6679/raphaelgraph.png

+0

Позволяет ли «прокручивать» временную шкалу, масштабирование и другую «интерактивность»? – 2009-06-20 15:35:55

Смежные вопросы