Я собираю приложение, в котором мне нужно создать векторную сетку, которая будет использоваться для хранения и отображения тепловой карты. Он имеет следующие требования:
- Может покрыть всю планету.
- Подавляющее большинство квадратов сетки не будет иметь значений.
- Я не хочу хранить саму сетку; Я хотел бы рассчитать это на лету.
- Масштаб данных, используемых с сеткой, может сильно различаться.
- Я ожидаю, что мне понадобятся квадраты сетки от 1 км до 100 км в поперечнике. (Я знаю, сколько это будет (~ 510 миллионов за 1 км, ~ 51 000 за 100 км)).
- Значения будут накапливаться / агрегироваться для каждого квадрата сетки.
- В идеале я мог бы легко использовать меньшие ячейки сетки для вычисления значений для больших, а не сохранять большие значения ячейки сетки.
- Я буду использовать OpenLayers для драпировки поверх OpenStreetMap.
- Я буду хранить его в SpatiaLite или SQLite, поэтому желательно, чтобы они поддерживались изначально (т.е. для SpatiaLite = поддерживаемый CRS или для SQLite = система, основанная на чистых числах).
Итак, мой вопрос: какую проекцию я должен использовать для этой сетки?
Кроме того - есть ли хороший способ для разработки этого? Кто-нибудь знает о хорошем потенциальном решении этой проблемы или решал подобное раньше? Или можете указать мне полезное направление.
Изменить вариант использования - в основном я собираю ограничивающие рамки различных форм и размеров. Они могут быть размером от нескольких гектаров до тысяч квадратных километров. Они также могут быть в разных проекциях.
Ниже приведена сделанная на заказ версия того, чего я хочу достичь в более широком масштабе.
Большое спасибо.
источник
Ответы:
Стандартные плитки OSM находятся в Spherical Mercator (SRID = 3857), поэтому, вероятно, будет проще построить вашу сетку, используя ту же проекцию.
Если вы используете SM, вы можете хранить данные на самом высоком уровне масштабирования, поддерживаемом OSM, или на самом высоком уровне масштабирования, который вы позволите пользователям увеличивать. Если охват недостаточен, используйте структуру данных в соответствии с
XIndex, YIndex, Count
где индексы - это индексы в сетке плиток с желаемым уровнем масштабирования, count - это число объектов, которые пересекают эту плитку, и не включают записи для точек, где count равно нулю. Затем вы можете просто выбрать счетчик по индексу или при более низких уровнях масштабирования выбрать сумму отсчета по диапазону индекса, зная, что если запрос ничего не возвращает, счетчик будет нулевым для данной области.
Это, конечно, абстракция, я предполагаю уровень программного обеспечения между этим и вашим рендером тепловых карт. Более подробное описание того, как вы будете отображать тепловую карту, поможет мне дать лучший совет.
источник
Значение, хранящееся в ячейке из тепловой карты, часто нормализуется по ее площади. В этом случае я бы предпочел проекцию равной площади, чтобы вы могли легко агрегировать в более крупном масштабе
источник
Это ответ на то, как вы могли бы разработать тепловую карту. Я предлагаю вам взглянуть на систему клеток четверти градуса сетки . QDGC представляет собой способ создания (почти) равных площадей площади, покрывающих определенную область, для представления определенных качеств покрытой области. Сами квадраты основаны на градусах, покрывающих землю. Вокруг экватора у нас 360 линий продольных линий, а с севера на южный полюс - 180 широтных линий. Вместе это дает нам 64800 сегментов или плиток, покрывающих землю. Форма квадратов становится более прямоугольной, чем дольше мы идем на север. На полюсах они совсем не квадратные и даже не прямоугольные, а заканчиваются вытянутыми треугольниками.
Ячейки сетки можно разделить на четыре, а полученные ячейки сетки снова разделить на четыре. Система предоставляет пользователю предсказуемое соглашение об именах. Вычисляя площади для разных ячеек сетки, они должны подходить для презентаций, зависящих от площади.
Более подробная информация и ссылки на некоторые другие системы также доступны в статье, которую я опубликовал несколько лет назад. Стандарт используется в нескольких африканских атласах для получения экологической информации.
Шейп-файлы для разных континентов и стран доступны для скачивания на моем блог-сайте.
Я поиграл с мыслью о расширении стандарта, чтобы ячейки сетки выше или ниже определенной широты могли быть разделены на две части, что обеспечило более привлекательный продукт карты при использовании.
источник