Публикация TAB на Mapserver
Документация Mapserver сообщает, что он может публиковать TAB файлы с ОРИГИНАЛЬНОЙ СТИЛИЗАЦИЕЙ из Mapinfo. Что же посмотрим.
Установка и начальная настройка
Ставить буду на Windows, поэтому качаем MS4W. Распаковываем и запускаем apache-install.bat, В Службах должен появиться Apache. Создаем папку для конфигов \ms4w\apps\example\, где и создаем файл расширения map. Засовываем внутрь простой конфиг:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
MAP
NAME "WMS"
STATUS ON
IMAGETYPE PNG
EXTENT 59.9 56.5 61.0 57.0
SIZE 1000 1000
SHAPEPATH "C:/ms4w/apps/example/shp/"
IMAGECOLOR 255 255 255
CONFIG "MS_ERRORFILE" "D:\dev\Mapserver\ms4w\tmp\ms_error.txt"
OUTPUTFORMAT
NAME "png"
DRIVER AGG/PNG
MIMETYPE "image/png"
IMAGEMODE RGB
EXTENSION "png"
FORMATOPTION "GAMMA=0.75"
END
WEB
IMAGEPATH '/tmp/'
IMAGEURL '/tmp/'
METADATA
ows_title 'Simple map'
ows_onlineresource
'http://localhost:8081/cgi-bin/mapserv.exe?map=D:/dev/Mapserver/ms4w/apps/example/test.map&'
wms_getfeatureinfo
'http://192.168.70.18/cgi-bin/mapserv.exe?map=C:/ms4w/apps/example/test.map&'
wms_featureinfoformat "text/plain"
wms_title "Test WMS"
wms_srs "EPSG:4326 EPSG:3857"
END
TEMPLATE 'fooOnlyForWMSGetFeatureInfo'
END
LAYER
NAME GREEN_POLYGON
TYPE POLYGON
TEMPLATE "dummy"
STATUS DEFAULT
CONNECTIONTYPE OGR
CONNECTION "d:\dev\tabs\GREEN_POLYGON.tab"
STYLEITEM "AUTO"
CLASS
END
END
END
Так же как и в примерах, я добавляю тег STYLEITEM “AUTO” к слою, в надежде увидить искомую оригинальную стилизацию. Результат посмотреть можно поссылке:
Использование своей СК
И увидел я белую картинку, ну и правильно, данные то у меня в мск. Добавляем новую СК в Mapserver. Редактируем файл \ms4w\proj\nad\epsg и добавлем в него строки:
Все теперь можем показывать и ипользовать данные в нестандартной СК. Для этого в блоки MAP и LAYER добавялем:
А еще добавим СК в wms_srs.
Теперь нужен EXTENT. Я поступил просто и открыл файлы в QGIS, прикинув на глаз интересующую территорию. Попутно я узнал, что в табах не записана система координат. Поэтому запишу ее через ogr2ogr.
Стилизация
После проделанных операций у меня наконец-то появилась картинка. Это был просто кусок зеленки с однородной заливкой. Ничего сложного вроде, но нас больше интересует как он справиться с симболазерами Mapinfo. Поэтому покопавшись, я нашел железную дорогу. Вот так это выглядит в Mapinfo:
А вот так опубликовалось на Mapserver:
Как видно мапинфошные симболайзеры не перенеслись. Что можно сделать? Стандартные символы MapInfo, которые имеют имена mapinfo-sym-## описаны в файле в документации. Скачаем его и подключим в секцию MAP:
К сожалению мне это не помогло, потому что посмотреть стиль слоя через ogrinfo, я увидел следующее:
Документации, как это описать я не нашел. Конечно можно взять и писать стили для каждого слоя, но идея-то не в этом. Я то, хотел что бы стили сами подсосались из табов. Поэтому эта часть все еще в работе.
Человеческие ссылки
Хоть меня и постигла неудача, но работу я продолжил. Далее я захотел подключить WMS на свой основной клиент написаный на BruTile. И столкнулся с тем, что у меня все падает при запросе GetMap. Все дело в том, что стандартная url на wms уже содержит в себе параметры, библиотека же к такому не готова. Тут нам поможет Apache, на котором и крутится Mapserver. Пишем короткий конфиг:
И сохраняем в \ms4w\httpd.d_. Открываем _\ms4w\Apache\conf\httpd.conf, находим строку
И удаляем маску файла, так что бы подсасывались все conf файлы из этой папки. Основная идея подхода, в том что бы для каждого map файла
написать по конфигу и у все будет своя url без параметров.
Изначально хотел работать через теги _
После этого урла до wms стала http://localhost:8081/wmsmap, что уже по человечески.
Заключение
Ну что сказать, толи я дурак, толи лыжи не едут. Но получить, что я хотел не получилось. Мечты о картинке выглядещей так же как в Mapinfo не осуществились. На этом я продолжил публиковать табы, и пока не оставляю надежды найти способ описания симболайзеров из Mapinfo.