У меня есть база данных, которая отслеживает большое количество объектов. У каждого объекта есть «зона покрытия» или «зона охвата» - радиус в милях от указанного почтового индекса Великобритании, например
Leyton office 4.3m E11 4LL
Stratford office 5.2m E15 6ZZ
East Ham office 2.1m E4 8QQ
Я хочу превратить это в географическую карту интенсивности - карту региона, которая затенена или окрашена, чтобы указать количество объектов, которые покрывают каждую точку на карте. Сегментация на небольшие регионы также приемлема.
Это, вероятно, разовый проект, поэтому вряд ли моя организация предоставит деньги на покупку программного обеспечения. Это означает, что предпочтительны нулевые или, по крайней мере, недорогие решения.
free-software
heat-map
Джимми Брек-МакКай
источник
источник
Ответы:
Может быть, эти ссылки помогут вам:
Как построить эффективные тепловые карты?
с QGIS: http://alexsciuto.com/blog/2010/11/how-to-make-your-own-heat-map-pt-1-gathering-the-materials/
Сценарий Python: http://www.sethoscope.net/heatmap/
http://sk53-osm.blogspot.com/2011/01/heat-maps-from-osm-pois.html
Извините за необработанный ответ ..
источник
Я предполагаю, что вам нужна карта плотности того, насколько «хорошо покрыта» каждая область, то есть, сколько офисов она находится рядом, включая «радиус» этих офисов?
Вы можете сделать все это в PostgreSQL или, по крайней мере, в PostGIS , который является бесплатным расширением. Я предлагаю вам разобраться с этим и прочитать некоторые документы.
Вам, вероятно, потребуется геокодировать ваши почтовые индексы. Простое решение состоит в том, чтобы загрузить набор данных кодовой точки Ordnance Survey ( https://www.ordnancesurvey.co.uk/opendatadownload/products.html ) (это бесплатно) и предоставить вашим точкам базу данных местоположение почтового индекса с помощью PostGIS. функции - вам нужно использовать ST_GeomFromText () и, возможно, прочитать о хорошо известных текстовых координатах.
Таким образом, у вас должна быть пространственная таблица всех ваших точек.
Затем вы можете буферизовать (создать радиус вокруг каждой точки) их в новую пространственную таблицу, используя функцию ST_Buffer.
Затем вам потребуется создать неперекрывающееся наложение полигонов в PostGIS - см. Разделение полигонов на основе пересечения с использованием PostGIS . Это должно сегментировать набор данных на маленькие регионы, как вы сказали выше.
Затем вам нужно узнать, сколько буферов пересекает каждый ваш новый сегментированный регион. Это будет довольно сложный запрос SQL, но это должно быть возможно.
Это довольно сложная процедура, которую вы можете увидеть даже для кого-то, имеющего опыт работы с ГИС, и здесь есть много подводных камней, таких как прогнозы и т. Д., Поэтому я хотел бы рассмотреть вашу потребность в этом, прежде чем начать, однако вполне могут быть более эффективные решения, которые кто-то может предлагает.
Вероятно, гораздо проще было бы взять сетку точек с регулярным разнесением и определить среднее расстояние, скажем, пять ближайших офисов, и цветовое кодирование каждого квадрата сетки по среднему расстоянию. Однако это не будет принимать во внимание «радиус» офисов - не уверен, что это представляет - влияние?
источник
Вы можете сделать это просто онлайн с помощью Mapsdata.co.uk
Приложение считывает данные из .xls или .csv и предварительно запрограммировано для преобразования геоданных, таких как почтовые индексы Великобритании. Вы можете сделать несколько визуальных эффектов: одна может быть пузырьковой картой, использующей площадь водосбора в качестве значения, штифты с непрозрачностью для отображения плотности или тепловая карта. Во всех вариантах вы можете изменить непрозрачность, цвет и т. Д., А затем экспортировать либо в формате PNG, либо в виде HTML-фрейма для использования на других веб-страницах.
Вам нужно привязать размер пузырьков? Это также может быть достигнуто с помощью некоторых настроек.
источник