Автоматическая стилизация TAB файлов на Mapserver. Заливки.
Ранее я повторил опыт из документации Mapserver, и опубликовал tab файлы в надежде, что Mapserver их сам автоматически стилизует. Этого, конечно, не произошло и результат был не очень. Mapserver справился с простой стилизацией, т.е. обычными заливками, простыми линиями. Но все остальное либо не стилизовалось, либо стилизовалось в нечно невнятное. Но все можно исправить(нет). Посмотрим, что можно сделать с заливками.
Установка и начальная настройка
Подключим слой в конфиг
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
LAYER
NAME GIDROGRAFI_POLYGON
TYPE POLYGON
TEMPLATE "dummy"
STATUS DEFAULT
CONNECTIONTYPE OGR
CONNECTION "c:\MapServer\Belokamenii500\projected\GIDROGRAFI.TAB"
DATA "SELECT * FROM GIDROGRAFI WHERE OGR_GEOMETRY='POLYGON' OR OGR_GEOMETRY='MULTIPOLYGON'"
STYLEITEM "AUTO"
CLASS
END
PROJECTION
"init=epsg:100000"
END
END # Layer
Так как в map файле намешаны различные типы геометрий, то я отфильтровал только полигоны. В дальнейшем можно подключить этот же файл в конфиг, оставив другой тип геометрии и стилизовать его по-своему. И увидел я ничего. Я знал, что у меня в слое есть болота нарисованыне штриховой заливкой, с ней-то и не справился Mapserver. Ну чтож поможем ему.
Сначала нужно узнать имя заливки. Для этого воспользуемся ogrinfo:
1
ogrinfo C:\tabs\RASTITELJNOSTJ_I_GRUNTI.TAB RASTITELJNOSTJ_I_GRUNTI -sql "SELECT * FROM RASTITELJNOSTJ_I_GRUNTI WHERE OGR_GEOMETRY='POLYGON'" > C:\tabs\out.txt
В выводе получаем что-нибудь такое:
В данном случае нас интересует мапинфошная заливка с именем mapinfo-brush-3. Далее открываем tab файл в Mapinfo и ищем объект по id смотрим как он нарисован и рисуем в графическом редакторе такую же картинку размером 32*32 и сохраняем в png.
Теперь научим Mapserver понимать как использовать эту картинку. В прошлый раз в описании конфига мы подключали файл ms4w\apps\etc\mapinfo_symbols.txt, который по-идее хранит описание стилей, которые использует автостилизатор. Добавим в файл следующее:
Тут всего-то и указывается путь к файлу заливки(у меня они все лежат в одной директории с файлом стилей) и указывается какому стилю этот файл заливки соответствует.
На это собственно настройка закончена. И открыв карту я таки увидел свои болота.
Заключение
Стилизация заликов оказалась условно автоматической, но она работает. Конечно приходится проводить изрядное количество подготовительных работ, вроде рисования картинок и поиска имен этих заликов.