UMN MapServer - SQL limit

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

UMN MapServer - SQL limit

Сообщение Mavka »

Таблицы PostGIS с объектами multiline. Их порядка 200 тыс.
Слой UMN MapServer рисует их пунктирными линиями со стрелками.
На крупных масштабах все нормально, но на мелком-обзорном сервер не справляется с количеством линий.
Нужно их кол-во как то ограничить, пусть не все но хоть что то.
Имею:

Код: Выделить всё

DATA "the_geom from mytable using unique gid using srid=4326"
FILTER (%sql_filter%) 
Хочу добавить в sql-запрос LIMIT, но во-первых - он должен идти в самом конце после WHERE, во-вторых - UMN на него ругается и просто не работает.

В документации приводится такой вариант с под-запросом:

Код: Выделить всё

DATA "the_geom from (select g.* from mytable g limit 30000) as subquery using unique gid using srid=4326" 
Это работает. Но сначала обрезается вся таблица по лимиту, а уже потом применяется фильтр. Что, естественно, нужно делать наоборот.
лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: UMN MapServer - SQL limit

Сообщение Mavka »

Пробовал

Код: Выделить всё

FILTER "(%sql_filter%) LIMIT 100" 
и

Код: Выделить всё

DATA "the_geom from mytable using unique gid using srid=4326 limit 100" 
просто не реагирует, как будто ничего не изменилось.
лангольеры под окном жрали время ом-ном-ном
gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: UMN MapServer - SQL limit

Сообщение gamm »

Mavka писал(а):Пробовал

Код: Выделить всё

FILTER "(%sql_filter%) LIMIT 100" 
и

Код: Выделить всё

DATA "the_geom from mytable using unique gid using srid=4326 limit 100" 
просто не реагирует, как будто ничего не изменилось.
предлагаю рабоче-крестьянское решение: добавляете поле ScaleSelect, в которые случайным образом вставляете 1,2,3, ... в (кумулятивных) пропорциях, соотвествующих масштабу. В запросе добавляете and (ScaleSelect <= CurScale), где CurScale - переменная, соотвествующая текущему масштабу. Получаете нагрузку карты (шт/м2), соотвествующую масштабу.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: UMN MapServer - SQL limit

Сообщение Mavka »

О как! Интересный вариант... очень оригинально. Пасибо.
лангольеры под окном жрали время ом-ном-ном
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя