Передача динамических параметров из openlayers на mapsever с помощью тайла кеша
Я создаю картографическое приложение, где формы и цвета идут по этому пути:
PostGIS> Mapserver> TileChache> OpenLayers
Все работает нормально, когда все параметры жестко заданы. Но мне нужно, чтобы пользователи могли изменять параметры, например, выбирать объекты с населением, превышающим "X", и область под "Y".
Я предполагаю, что параметры могут быть переданы в Mapserver как запрос, прикрепленный к mapfile, например:
.../mapfile.map?area=123&population=456
Но я не могу найти способ передать это через TileCache. На данный момент - единственный обходной путь, который я вижу, - это определить отдельный слой для любой возможной комбинации X и Y в файле tilechache.cfg, что, кажется, не является хорошим способом. И должно быть некоторое ограничение на количество слоев, определенных в tilechache.cfg
Какие-либо решения?
1 ответ
Вам, вероятно, нужно переосмыслить то, что вы делаете здесь. Tilecache для статических плиток. Если вы рендерили тайл и поместили его в тайл кеш, и вы изменили аргумент url, что вы ожидаете? Что если два пользователя запрашивают одну и ту же плитку с разными параметрами URL?
Если у вас есть небольшое количество допустимых параметров и вы хотите сгенерировать несколько копий своего кэша по одной для каждого возможного уникального набора комбинаций параметров, которые может выбрать пользователь, тогда вы можете настроить tilecache с атрибутами.
Скорее всего, вы захотите сделать что-то вроде создания тайла кеша для статической базовой карты, а затем с использованием дополнительных слоев OpenLayers визуализировать накладываемые наложения по требованию, передавая их непосредственно на mapserver и передавая тайлкэш.