Заставить MapServer работать в роли WMS сервера

Если кто-нибудь занимался подобными вещами, дайте, пожалуйста, рекомендации.
Суть такова:
есть карта с привязками (формат geotif)
создали map-файл этой карты, т. е. MapServer теперь отображает карту в браузере
как теперь можно подложить эту карту в josm (по аналогии с Yahoo Sat)?

кто правообладатель ваших карт? :slight_smile: Читали ли Вы тему http://forum.openstreetmap.org/viewtopic.php?id=5257
(сейчас на немодный вопрос меня опять помидорами закидают).

А вообще кто-то грозился наваять фак по WMS для гугеля :slight_smile:

http://gis-lab.info/qa/mapserver-wms.html
пример подключения WMS Mapserver в JOSM (в др. способах подключения)
http://gis-lab.info/projects/osm-errors.html

Спасибо за участие. Будем шаманить! :slight_smile:

Сообщение QGIS при попытке добавить wms-слой:

Ошибка обработки ответа. Сообщение источника wms:
Не удалось получить возможности WMS в ожидаемом формате (DTD): WMS_Capabilities или WMT_MS_Capabilities не найдены
Вероятнее всего, адрес WMS-сервера неверен.
Используемый URL: http://127.0.0.1/cgi-bin/mapserv?map=/home/st/documents/qgis/glubokoe/&SERVICE=WMS&REQUEST=GetCapabilities

Если это действительно неверный адрес, то каким он вообще должен быть.
И расскажите подробнее о тегах wms_onlineresource и wms_getfeatureinfo (насколько я понимаю проблема в этом)

Так-с, с этим тоже разобрались!
Занятный монолог получается :slight_smile:
Теперь появился такой вопрос: как в josm правильно прописать ссылку на wms?
моя - “http://127.0.0.1/cgi-bin/mapserv?map=/home/sts/documents/qgis/glubokoe/glubokoewms.map&request=GetMap&version=1.1.1&layers=glubokoe_ref&styles=&srs=EPSG:4326&format=image/png&” - просто заливает область белым цветом.

Я долго бился с mapserver, но у меня по всей видимости выкусывался очень маленький кусочек картинки однотонного зелёного-синего цвета (один пиксель растянутый?), и как я ни бился - не смог написать правильное описание с координатами углов.

Подправим немного определения:
заливка былым - результат неправильно заданных координат, правильно? т. е. имеется в виду тег EXTENT map-файла?
откуда вообще надо вытягивать этот EXTENT?
Пробовал в QGis: экспортировал файл geotif в MapServer - в результате готовый мап-файл с extent
Пробовал командой gdalinfo /glubokoe_ref.tif и брал координаты Lower Left 3047642.914, 7340296.993 Upper Right 3056305.894 7346983.180
Результат один и тот же

вот так - работает, попробуйте плясать от этого

http://gis-lab.info/cgi-bin/mapserv?map=/usr/local/www/gis-lab/data/projects/osmrus/errors-wms/wms.map&bbox=83.6495350,53.3413572,83.6581649,53.3499871&srs=EPSG:4326&width=499&height=499&request=getmap&format=image/png&version=1.1.1&service=WMS&layers=osm-errors&

Судя по вашим координатам, у вас никак не EPSG:4326, но если в MAP файле все прописано как надо, то это не должно быть проблемой с запросом.

MAP
NAME “wms”
SIZE 1800 900
STATUS on
UNITS dd
EXTENT 3047642.914 7340296.993 3056305.894 7346983.180
IMAGECOLOR 255 255 255
IMAGETYPE png

WEB
TEMPLATE “/var/www/template.html”
IMAGEPATH “/tmp/”
IMAGEURL “/tmp/”

METADATA
wms_title “glubokoewms”
wms_abstract “demo”
wms_onlineresource “http://127.0.0.1/cgi-bin/mapserv?map=/home/sts/documents/qgis/glubokoe/glubokoewms.map&
wms_srs “EPSG:4326”
wms_getfeatureinfo “http://127.0.0.1/cgi-bin/mapserv?map=/home/sts/documents/qgis/glubokoe/glubokoewms.map&
wms_featureinfoformat “text/plain”
END
END

PROJECTION
“proj=latlong”
“ellps=WGS84”
“datum=WGS84”
END

LAYER
NAME glubokoe_ref
TYPE RASTER
TEMPLATE “dummy”
DATA “/home/sts/documents/qgis/glubokoe/glubokoe_ref.tif”
STATUS ON
METADATA
wms_title “glubokoe_ref”
wms_abstract “glubokoe_ref_test”
wms_src “EPSG:4326”
wms_include_items “all”
END
PROJECTION
“proj=latlong”
“ellps=WGS84”
“datum=WGS84”
END
END

END

Вот мап-файл. Будьте добры взгляните, все ли правильно, а то я не знаю, как все-таки должно быть (
А судя по координатам, что должно быть вместо EPSG:4326 (простите, но для меня это все пока теееемный лес!)
Sim, а что надо было сделать с Вашей ссылкой?

так и есть, путаница в системах координат, данные судя по охвату в спроектированной системе, а в Map вы везде упорно указываете что система географическая Wgs84 (4326), разумеется это неправильно, первым делом - выясните в какой же СК у вас исходный растр. После этого отдавать можно будет и в 4326.

Ссылка что я давал - пример рабочей ссылки с использованием Wms сервера, пока не разберетесь с исходной СК растра, она вам никчему.

Sim, а для тех кто в танке, можно или рассказать или ссылки какие-нибудь, где можно почитать про системы координат, а то я затрудняюсь в том, как мне разобраться в какой ск исходный растр.
Вообще, исходный растр - сканированная топокарта (tif)
Затем с помощью QLandarte был сделан растр с привязками (т.е. geotif, правильно?) и вот для этого я уже брал охват с помощью gdalinfo
а в map-файл я без понимания запихнул все, что было в примере на gis-lab. Вот поэтому я и “упорно указываю что система географическая” :slight_smile:

http://gis-lab.info/qa/proj-sk-faq.html

В qlandkarteGT по умолчанию используется epsg:3395 aka “World Mercator / WGS84”, aka “+proj=merc +datum=WGS84”
тогда Ваши координаты где-то в западной Беларуси:


$ cs2cs -f "%.6f" +init=epsg:3395 +to +proj=latlong +datum=WGS84
3047642.914 7340296.993
27.377442       55.069443 0.000000
3056305.894 7346983.180 
27.455263       55.103895 0.000000

Огласите полный результат


gdalinfo file.tif

тогда все станет понятнее.

Вывод команды gdalinfo для исходного растра:

Driver: GTiff/GeoTIFF
Files: /home/sts/documents/qgis/glubokoe/glubokoe.tif
Size is 22512, 27002
Coordinate System is `’
Origin = (27.540134622347651,55.039511972449056)
Pixel Size = (0.000004142398959,-0.000000819000853)
Metadata:
TIFFTAG_XRESOLUTION=0.045000002
TIFFTAG_YRESOLUTION=0.045000002
TIFFTAG_RESOLUTIONUNIT=3 (pixels/cm)
Image Structure Metadata:
COMPRESSION=CCITTRLE
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 27.5401346, 55.0395120)
Lower Left ( 27.5401346, 55.0173973)
Upper Right ( 27.6333883, 55.0395120)
Lower Right ( 27.6333883, 55.0173973)
Center ( 27.5867615, 55.0284546)
Band 1 Block=22512x27002 Type=Byte, ColorInterp=Palette
Overviews: 117x140
Image Structure Metadata:
NBITS=1
Color Table (RGB with 2 entries)
0: 255,255,255,255
1: 0,0,0,255

А это для уже привязанного (не знаю какой Вам нужен):
Driver: GTiff/GeoTIFF
Files: /home/sts/documents/qgis/glubokoe/glubokoe_ref.tif
Size is 37767, 29149
Coordinate System is:
PROJCS[“unnamed”,
GEOGCS[“unnamed ellipse”,
DATUM[“unknown”,
SPHEROID[“unnamed”,6378137,298.2572229328696]],
PRIMEM[“Greenwich”,0],
UNIT[“degree”,0.0174532925199433]],
PROJECTION[“Mercator_1SP”],
PARAMETER[“central_meridian”,0],
PARAMETER[“scale_factor”,1],
PARAMETER[“false_easting”,0],
PARAMETER[“false_northing”,0],
UNIT[“metre”,1,
AUTHORITY[“EPSG”,“9001”]]]
Origin = (3047642.913542068097740,7346983.179553607478738)
Pixel Size = (0.229379633534253,-0.229379633534253)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
COMPRESSION=DEFLATE
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 3047642.914, 7346983.180) ( 27d22’38.79"E, 55d 6’14.02"N)
Lower Left ( 3047642.914, 7340296.993) ( 27d22’38.79"E, 55d 4’9.99"N)
Upper Right ( 3056305.894, 7346983.180) ( 27d27’18.95"E, 55d 6’14.02"N)
Lower Right ( 3056305.894, 7340296.993) ( 27d27’18.95"E, 55d 4’9.99"N)
Center ( 3051974.404, 7343640.086) ( 27d24’58.87"E, 55d 5’12.02"N)
Band 1 Block=256x256 Type=Byte, ColorInterp=Palette
NoData Value=255

Вот еще что нашел: это СК, которая отображается в свойствах слоя в QGis

+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs

что-то мне подсказывает, что совсем лажа какая-то

Никакой особой лажи, замените в mapfile


"proj=latlong"

на


"proj=merc"

И вообще секцию PROJECTION нужно заполнять только в особо тяжелых случаях
(или для файлов без привязки)
Для правильно привязанных файлов GDAL и сам разберется.

“proj = merc” - не помогло

ok. Попробую сам сегодня.

сегодня копался и задумался над следующим
для проверки wms в браузере указываю адрес:
http://127.0.0.1/cgi-bin/mapserv?map=/home/sts/documents/qgis/glubokoe/glubokoewms.map&width=1800&height=900&request=getmap&format=image/png&version=1.1.1&service=WMS&layers=glubokoe_ref&srs=epsg:3395&bbox=3047642.914,7340296.993,3056305.894,7346983.180&
браузер отдает изображение, а раньше был белый фон. изменилось то, что здесь я изменил bbox на значение extent в map-файле

дальше
в josm ссылка на wms: http://127.0.0.1/cgi-bin/mapserv?map=/home/sts/documents/qgis/glubokoe/glubokoewms.map&request=GetMap&version=1.1.1&layers=glubokoe_ref&styles=&srs=EPSG:3395&format=image/png&bbox=3047642.914,7340296.993,3056305.894,7346983.180&
но когда хочешь подложить карту, то к этому адресу добавляется еще один bbox=27.7404185,55.1476924,27.8069423,55.185690, т.е получается следующее:
Grabbing WMS http://127.0.0.1/cgi-bin/mapserv?map=/home/sts/documents/qgis/glubokoe/glubokoewms.map&request=GetMap&version=1.1.1&layers=glubokoe_ref&styles=&srs=EPSG:3395&format=image/png&bbox=3047642.914,7340296.993,3056305.894,7346983.180&bbox=27.7404185,55.1476924,27.8069423,55.1856902&width=499&height=499 - и опять белый фон