Я новичок в использовании mapsever. Я скачал пример из Интернета (http://www.codegeo.com.br/search/label/MapServer). Я протестировал его на своем ПК, в своей среде разработки (версия картографического сервера 6.4.1), и он работает.
Теперь я поместил его в «тестовую среду» (версия 7.0.0 картсервера), но у меня возникла проблема с директивой FILTER в файле карты.
Это код в файле .map:
DATA "the_geom FROM estados USING UNIQUE id USING SRID=4326"
FILTER "sigla ILIKE '%%state%%'"
Когда я запускаю скрипт, я получаю пустой png-файл, но ошибок нет:
$ mapserv -nh "QUERY_STRING=map=/var/www/codegeo/codegeo.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=states&estado=SP&WIDTH=256&HEIGHT=256&CRS=EPSG%3A900913&STYLES=&BBOX=0%2C0%2C2504688.5428486555%2C2504688.5428486555"
Файл журнала, определенный в файле карты, имеет следующую ошибку:
executing query: select "nome","codigo",encode(ST_AsBinary(ST_Force2D("the_geom"),'NDR'),'hex') as geom,"id" from estados where the_geom && ST_GeomFromText('POLYGON((0.0439453124999988 0.0439453081913454,0.0439453124999988 21.9022779666686,22.4560546875 21.9022779666686,22.4560546875 0.0439453081913454,0.0439453124999988 0.0439453081913454))',4326) and ()
[Mon Feb 27 11:39:06 2017].147993 msPostGISLayerWhichShapes(): Query error. Error executing query. Check server logs
[Mon Feb 27 12:05:49 2017].361015 getSymbol(): Symbol definition error. Parsing error near (():(line 123)
[Mon Feb 27 11:39:06 2017].147993 msPostGISLayerWhichShapes(): Query error. Error executing query. Check server logs
[Mon Feb 27 12:05:49 2017].361015 getSymbol(): Symbol definition error. Parsing error near (():(line 123)
Я знаю, что что-то не так с инструкцией фильтра. Если я прокомментирую это, я увижу слой на веб-странице. Я не нашел никакой документации об операторе ILIKE.
Кто-нибудь знает в чем проблема?