Алгоритм для тепловой карты?
У меня есть список значений с широтой и долготой. Я ищу, чтобы создать прозрачный образ тепловой карты для наложения на Google Maps. Я знаю, что уже есть серверные и флеш-решения, но я хочу создать это в javascript, используя тег canvas.
Однако я не могу найти краткое описание алгоритма, используемого для преобразования координат и значений в тепловую карту. Может ли кто-нибудь предоставить ссылку или ссылку на нее?
Спасибо.
Ответы
Ответ 1
Основная идея заключалась бы в создании сетки и проекта для каждой латы, lng координирующей эту сетку. Я бы использовал 2D-массив из целых чисел.
Псевдо-код будет выглядеть следующим образом:
for each coord
cell = coord projected to grid
increment cell value
end
for 0 to # of passes
for each row
for each col
if grid[row,col] > 0 then
grid[row,col] += 1
increment_adjacent_cells(row, col)
end
end
end
end
Итак, идея состоит в том, что чем выше значение int, тем более жаркой эта ячейка. increment_adjacent_cells должен увеличивать значения во всех 8 соседних ячейках.
Ответ 2
Я попытался решить это в javascript, используя элемент canvas, вот мой текущий результат:
http://gist.github.com/346165
Я должен исправить гауссовский фильтр и цветовое сопоставление, потому что он не дает хороших результатов в настоящее время.
Ответ 3
Посмотрите на этот проект, если вы ищете что-то, что больше похоже на 'tv weather maps':
https://github.com/optimisme/javascript-temperatureMap