Я реализовал нечто подобное для моего последнего университетского проекта. Я использовал тот же подход, что и API-интерфейс HeatMap, накладывая сгенерированное изображение на карту при его изменении.
Я написал собственный веб-сервер Java, принимающий координаты ограничительной рамки в строке запроса для создания полупрозрачного изображения PNG, которое было похоже на тепловую карту, но это ни в коем случае не был правильный статистически правильный алгоритм. В то время я не смог найти никаких алгоритмов для создания тепловой карты, и многие из алгоритмов, найденных в Интернете или в журналах, были фактически для кластерных тепловых карт / древовидных карт, а не для тепловых карт плотности.
Я сгенерировал двумерный массив для данных, используя функцию для сопоставления каждой координаты со значением. Добавление в массив увеличило значения, поэтому массив необходимо было нормализовать до значения в диапазоне от 0 до 255, который затем можно было легко раскрасить и вывести на холст. Боюсь, я не могу найти исходный код для этого, и алгоритм был очень приблизительным.
Примерно год назад, когда список членов BNP (расистской британской политической партии) просочился, я наткнулся на другое (более простое, но, возможно, даже менее точное) решение, которое помещало точку нагрева PNG в каждую точку, создавая эффект тепловой карты. Здесь есть скриншот этого, хотя я не могу найти оригинальную карту http://www.labourlist.org/revealed_the_bnps_social_media_strategy_mark_hanson