У меня есть проект, использующий OpenLayers, который отображает данные радара на карте. Сами данные радара - это просто набор полигонов, каждый из которых заполнен одним из 6 возможных цветов. Цель состоит в том, чтобы оживить радар на карте. Каждый файл содержит радиолокационные данные за определенное время, а файлы разделены примерно на 5 минут, поэтому мой текущий подход заключается в циклическом просмотре всех файлов и загрузке их один за другим в новые отдельные слои. Как только каждый слой создан, его видимость установлена на false и он добавляется на карту. Затем я анимирую слои, используя таймер, который включает видимость одного слоя и отключает видимость предыдущего слоя. В настоящее время все слои представляют собой векторные слои, и данные загружаются из файлов KML, хотя файлы данных могут быть практически любого формата, который лучше всего подойдет для этого проекта.
Проблема с этим подходом состоит в том, что когда я получаю достаточно большой промежуток времени (около 3 часов или около того) данных (примерно 36 слоев), потребление памяти становится довольно высоким (около 250 МБ). Предполагается, что конечный продукт сможет обрабатывать до 18 часов данных в одном цикле, что на основе указанного числа потребует более 1 ГБ памяти только для анимации и, вероятно, приведет к краху браузера или, по крайней мере, сделает его очень вялым.
Я попытался сделать то же самое, используя слои WMS для каждого слоя, но перерисовка была слишком медленной (анимация меняет слои каждые 100 мс), и потребление памяти было не намного лучше, чем у векторной версии.
Я обыскивал сеть, пытаясь найти какой-то пример того, как это сделать, но до сих пор подхожу с пустыми руками. У кого-нибудь есть какие-либо предложения о том, как это сделать? Я возьму любые идеи, которые у вас есть на данный момент, так как я застрял на этом в течение нескольких недель без ответа в поле зрения.
источник
Рассматривали ли вы упрощение векторных слоев, чтобы уменьшить их размер. Если многоугольники содержат больше вершин, чем необходимо для целей отображения, упрощение (сглаживание) их приведет к уменьшению размера файла за счет уменьшения детализации. Я не уверен, какое программное обеспечение у вас есть, но несколько настольных приложений ГИС содержат функцию геообработки для упрощения функций.
источник
Помимо упрощения данных (даже немного может сэкономить много места), вы пробовали MapServer или какой-то другой способ превращения ваших данных в плитки с прозрачностью и создания слоя карты, чтобы положить поверх фонового слоя. Я видел этот подход с картами с хороплетом, в которых есть сотни или сотни тысяч полигонов (или маркеров), но я еще не смог попробовать его сам (из-за требований на стороне сервера).
источник