Тепловая карта (карта плотности) на GWT

Я хочу создать тепловую карту (карту плотности) на изображениях. Примеры, подобные приведенному в http://www.heatmapapi.com/Sample_Google.aspx, хорошие примеры того, что я пытаюсь сделать.

Есть ли способ GWT для достижения этого? Или любое хорошее (flash или js) решение, которое вы можете предложить (кроме упомянутых Heatmap Tools For Web Apps) ?


person Robert Childan    schedule 06.12.2009    source источник


Ответы (3)


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

Я написал собственный веб-сервер Java, принимающий координаты ограничительной рамки в строке запроса для создания полупрозрачного изображения PNG, которое чем-то напоминало тепловую карту, но это ни в коем случае не был правильным статистически корректным алгоритмом. В то время я не смог найти никаких алгоритмов для создания тепловой карты, и многие из алгоритмов, найденных в Интернете или в журналах, на самом деле были для кластерных тепловых карт/карт дерева, а не для тепловых карт плотности.

Я создал 2D-массив для данных, используя функцию для сопоставления каждой координаты со значением. Добавление к массиву увеличило значения, поэтому массив необходимо нормализовать до значения от 0 до 255, которое затем можно легко раскрасить и вывести на холст. Боюсь, я не могу найти исходный код для этого, и алгоритм был очень приблизительным.

Год или около того назад, когда просочился список членов BNP (расистской британской политической партии), я наткнулся на другое (более простое, но, возможно, даже менее точное) решение, которое размещало точку нагрева PNG в каждой точке контакта, создавая эффект Тепловая карта. Здесь есть снимок экрана, хотя я не могу найти исходную карту http://www.labourlist.org/revealed_the_bnps_social_media_strategy_mark_hanson

person Alex Marshall    schedule 07.12.2009
comment
В настоящее время я разработал что-то подобное, но это не совсем тот результат, которого я хочу, но спасибо за понимание - person Robert Childan; 08.12.2009
comment
Я реализовал решение с помощью imagemagick на героку, оно есть на Heatmap.me, спасибо за понимание - person Robert Childan; 22.11.2010

Насколько я знаю, в GWT нет ничего, предназначенного для создания тепловых карт, по крайней мере, в официальном SDK. Я бы сказал, что самым быстрым для вас было бы интегрировать существующее решение JS в качестве нативной функции и использовать его из вашего текущего кода GWT.

person Iker Jimenez    schedule 07.12.2009
comment
Есть ли какое-нибудь js-решение, которое вы предлагаете? (или использовалось ранее) - person Robert Childan; 07.12.2009
comment
Извините, но мне никогда раньше не приходилось реализовывать тепловую карту. Выберите любую JS-библиотеку, которую вы можете использовать, заставьте ее работать на фиктивной HTML-странице раньше, а затем оберните все методы, которые вам нужно использовать, в методы GWT JSNI. - person Iker Jimenez; 07.12.2009
comment
Документацию по JSNI можно найти здесь code.google.com/webtoolkit/doc /1.6/ - person Iker Jimenez; 07.12.2009

Есть два пути по существу. Один из них — «хакерский» и не очень элегантный способ непосредственно из GWT, другой использует API визуализации Google.

Хакерский способ включает в себя создание таблицы и размещение в ней ваших данных. Кроме того, вам нужно решить, как «сгруппировать» ваши значения данных в диапазоны, а затем назначить цвета для ячеек (которые вы указываете в своем файле CSS). Впоследствии вы прикрепляете соответствующий CSS к ячейке таблицы, используя средство форматирования столбца/строки. Я на самом деле сделал тепловые карты таким образом в GWT, и это работает....

Нехитрый способ — перейти к API визуализаций Google и обернуть тепловая карта, которая уже есть в GWT с использованием JSNI.

person Nico Adams    schedule 22.11.2010