Генерация плотности/тепла отображается как SpatialKey

SpatialKey генерирует некоторый действительно симпатичный heatmaps, и мы изучаем то, что вовлечено в выполнение этого для внутреннего проекта визуализировать большой объем точек. Я ищу обратную связь на некоторых идеях о том, где начать (и это - просто действительно интересная проблема).

SpatialKey heatmap http://img697.imageshack.us/img697/7964/resolutiondays508x17550.jpg

Мы знаем, что они используют Flash, и от того, что мы можем сказать, heatmaps являются интерактивными вместо того, чтобы быть представленными с сервера мозаики. Наши первые предполагают, как это реализовано, то, что сервер предоставляет их клиенту Flash сетку - каждая ячейка, вычисляя количество сервером. Клиент Flash затем делает некоторую интерполяцию на основе значений ячеек в сетке для создания симпатичного вывода, который Вы видите выше.

На данном этапе я просто интересуюсь тем, как они могли возможно генерировать сетку эффективно серверная сторона (если наше предположение на их реализации даже корректно). Кажется, что это включило бы:

  1. Выполнение запроса для того, что в настоящее время находится в границах карты
  2. Выполнение агрегирования подзапрашивает для каждой ячейки в тех границах (проводящий подсчет, сумму или среднее число как в примере выше).

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

Какие-либо берущие при объяснении альтернативного маршрута? Если это имеет значение, мы приучены здесь к тому, чтобы хранить наши данные в PostgreSQL с PostGIS для пространственного индекса, но я открыт для попытки чего-либо.

7
задан Brent Dillingham 5 February 2010 в 17:34
поделиться

1 ответ

Как только догадываюсь, я могу предположить, что они реализовали библиотеку ГИС во Flash на стороне клиента и используют ее для проецирования координат широты и долготы в пиксельное пространство. Затем они объединяются по пикселям, чтобы определить «высоту» каждого пикселя и визуализировать его так же, как если бы вы визуализировали круг, но с использованием градиентной заливки с прозрачностью, причем начальный и конечный цвета градиентной заливки определяются высотой пиксель. Несколько кругов, наложенных друг на друга, создадут более яркие пиксели.

В качестве альтернативы можно сделать это в оттенках серого, а затем сопоставить значение яркости с цветовой шкалой. Это могло бы быть наиболее эффективным.

Мы продаем более традиционные тепловые карты древовидной структуры для использования в приложениях визуальной аналитики (например, SDK тепловых карт), и теперь у нас есть географические тепловые карты, которые раскрашивают области. Мы читаем стандартные карты ESRI Shapefile и выполняем все проекции и рендеринг на стороне клиента (в Java, а не во Flash, но с той же концепцией). Я думаю, что SpatialKey делает то же самое, поскольку они поддерживают рендеринг с заполнением области, что на самом деле невозможно сделать, если вы используете сервер тайлов, такой как Google Maps.

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

SpatialKey на самом деле написал хороший пост о различиях между тепловыми картами с заполнением областей (например, тематическими картами) и тепловыми картами плотности. Вы можете проверить это на http://blog.spatialkey.com/2010/02/comparing-thematic-maps-with-de density-heatmaps/ .

Если вы найдете хороший способ создания тепловых карт плотности, мне было бы интересно узнать, как вы это сделали, поскольку это было бы ценным дополнением к нашему SDK визуальной аналитики. Удачи.

5
ответ дан 7 December 2019 в 12:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: