MapServer+PostGIS+WMS

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
Silentium
Активный участник
Сообщения: 114
Зарегистрирован: 20 апр 2010, 17:33
Репутация: 0

MapServer+PostGIS+WMS

Сообщение Silentium » 08 дек 2010, 19:03

Приветствую всех!
Пытаюсь посмотреть через WMS в Mapserver слой, данные которого помещены в PostGIS\PostGreSQL. Открываю в браузере страницу с ссылкой на MAP-файл типа: http://localhost/cgi-bin/mapserv.exe?MA ... L&MODE=map, но ничего не выводится.
(MAP-файл прилагаю)
ПРобовал подключать базу через QGIS добавлением слоя PostGis карта появляется.
Что я делаю не так? И можно ли как-нибудь проверить соединение с бд PostGreSQL через MAP файл?
Вложения
osm-bing.map
(84.94 КБ) 686 скачиваний

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+PostGIS+WMS

Сообщение Mavka » 08 дек 2010, 19:22

1. Попробуйте без WMS:
2. Уровень отладки максимальный - 5, укажите файл для лога:

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

CONFIG "MS_ERRORFILE" "C:/OSGeo4W/apps/israel/dbg.log"
DEBUG 5
3. Вам не кажется, что если оставить только один слой в map-файле, то искать ошибку будет проще? Если разговор идет о слое 'landuse_layer1', то его данные в epsg:900913. В описании слоя раздел PROJECTION отсутствует, а проекция карты отличается от "Google mercator".
лангольеры под окном жрали время ом-ном-ном

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: MapServer+PostGIS+WMS

Сообщение Denis Rykov » 09 дек 2010, 05:44

Вот, если вдруг не читали.
Spatial is now, more than ever, just another column- The Geometry Column.

Silentium
Активный участник
Сообщения: 114
Зарегистрирован: 20 апр 2010, 17:33
Репутация: 0

Re: MapServer+PostGIS+WMS

Сообщение Silentium » 09 дек 2010, 13:47

Попробовал как Вы сказали на примере одного слоя:
выдается следующая ошибка

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

[Thu Dec 09 13:29:04 2010].945000 CGI Request 1 on process 3064
[Thu Dec 09 13:29:05 2010].8000 msDrawMap(): Layer 1 (places), 0.063s
[Thu Dec 09 13:29:05 2010].8000 msDrawLabelCache(): labelcache_map_edge_buffer = -10
[Thu Dec 09 13:29:05 2010].8000 msDrawMap(): Drawing Label Cache, 0.000s
[Thu Dec 09 13:29:05 2010].8000 msDrawMap() total time: 0.063s
[Thu Dec 09 13:29:05 2010].8000 msSaveImage() total time: 0.000s
[Thu Dec 09 13:29:05 2010].8000 mapserv request processing time (loadmap not incl.): 0.063s
[Thu Dec 09 13:29:05 2010].8000 msFreeMap(): freeing map at 013457C8.
Map файл прилагаю
Вложения
osm-bing.map
(2.71 КБ) 731 скачивание

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+PostGIS+WMS

Сообщение Mavka » 09 дек 2010, 13:59

В логах нормальное поведение, MapServer считает что карту он нарисовал за 63 мс.
У слоя projection указан epsg:4326, а в базе запрашивается "using srid=900913".
Уберите scaledenom, оставьте только один стиль и без EXPRESSION.

P.S. Почему в файле настроек такое ужасное оформление? Вы его через какой то автомат получаете?
Можно не прикреплять файл, а вставить его в текст, заключив в тэги: [/code]
лангольеры под окном жрали время ом-ном-ном

Silentium
Активный участник
Сообщения: 114
Зарегистрирован: 20 апр 2010, 17:33
Репутация: 0

Re: MapServer+PostGIS+WMS

Сообщение Silentium » 09 дек 2010, 14:41

1)
Убрал, логи выдаются теже.
MAp файл:

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

MAP
OUTPUTFORMAT
    NAME "Israel"
    DRIVER 'GD/PNG'
    MIMETYPE 'image/png'
    IMAGEMODE RGBA
    EXTENSION 'png'
END
FONTSET "fonts.lst"
IMAGEQUALITY 90
IMAGETYPE png
MAXSIZE 4000
SIZE 800 800
#EXTENT -20037508.3428 -15496570.7397 20037508.3428 18764656.2314
EXTENT 377005 3463832 4196975 4055751

UNITS meters
  WEB
    IMAGEPATH '/tmp/'
    IMAGEURL '/tmp/'
    METADATA
      'ows_title' 'world'
      'ows_srs' 'EPSG:3395'
      'labelcache_map_edge_buffer' "-10"
    END
METADATA
wms_title "WMS demo" 
wms_abstract "This is the WMS demo from AMC" 
wms_extent "377005 3463832 4196975 4055751" 
wms_onlineresource "http://localhost/cgi-bin/mapserv.exe?MAP=C:/OSGeo4W/apps/israel/osm-bing.map&SERVICE=WMS&" 
wms_srs "EPSG:4326"
wms_getfeatureinfo "http://localhost/cgi-bin/mapserv.exe?MAP=C:/OSGeo4W/apps/israel/osm-bing.map&SERVICE=WMS&" 
labelcache_map_edge_buffer "-10"

 END

  END
DEBUG 5
CONFIG "MS_ERRORFILE" "C:/OSGeo4W/apps/israel/dbg.log"

PROJECTION
    'proj=merc'
    'lon_0=0'
    'k=1'
    'x_0=0'
    'y_0=0'
    'ellps=WGS84'
    'datum=WGS84'
    'units=m'
    'no_defs'
END

LAYER
    STATUS ON GROUP "default" PROJECTION "init=epsg:4326" END CONNECTIONTYPE postgis CONNECTION "dbname='postgis' host=localhost port=5432 user='postgres' password='Admin12' sslmode=disable" PROCESSING "CLOSE_CONNECTION=DEFER"  minscaledenom 10000010
    TYPE ANNOTATION
    NAME "places"
    DATA "way from (select way,osm_id ,place , capital, name from planet_osm_point where capital='yes' or place='country') as foo using unique osm_id using srid=900913"
    LABELITEM 'name'
    CLASSITEM 'place'
      CLASS
    
        LABEL
            FONT scb
            TYPE TRUETYPE
            SIZE 8
            COLOR "#777777"
            WRAP ' '
# MAXLENGTH 8
# ALIGN CENTER
            PRIORITY 9
            BUFFER 1
            PARTIALS FALSE
            POSITION auto
        END
    END
END

END
2)using srid=900913" означает что берется строка 900913 из таблицы spatial_ref_sys в которой прописано
чтото типа
900913
==============
spatialreferencing.org
====================

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

PROJCS["Popular Visualisation CRS / Mercator (deprecated)",GEOGCS["Popular Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4055"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3785"],AXIS["X",EAST],AXIS["Y",NORTH]]

======================================
+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +units=m +k=1.0 +nadgrids=@null +no_defs

3)Я использую как раз mapserver utils: http://code.google.com/p/mapserver-utils/updates/list

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+PostGIS+WMS

Сообщение Mavka » 09 дек 2010, 17:38

Если "using srid=900913", то в слое проекция должная быть такая же:

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

LAYER
    ...
    CONNECTIONTYPE postgis
    CONNECTION "dbname=postgis host=localhost user=postgres password=***"
    DATA "way from ... using srid=900913"
    PROJECTION "init=epsg:900913" END
    ...
END
Последний раз редактировалось Mavka 10 дек 2010, 14:21, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном

Silentium
Активный участник
Сообщения: 114
Зарегистрирован: 20 апр 2010, 17:33
Репутация: 0

Re: MapServer+PostGIS+WMS

Сообщение Silentium » 10 дек 2010, 14:08

Как раз после того как убрал PROJECTION "init=epsg:900913" END
чтото появилось
А не подскажете , как EXTENT точный задать, открываю в QGIS и беру оттудова координаты, но отображается немного не то что хочу увидеть

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+PostGIS+WMS

Сообщение Mavka » 10 дек 2010, 14:25

Вы же планировали использовать WMS, тогда зачем точно настраивать? Главное что нужная область попадает в экстент.

Правило такое:
1. Задается проекция PROJECTION.
2. Экстент дается в той же проекции и единицах измерения.

Можете взять WGS84:

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

PROJECTION
    "init=epsg:4326"
END
EXTENT -180 -90 180 90
Экстент посмотрите в Google или любом другом месте.

P.S. Аналог mapserver-utils - OSM-in-a-Box (GeoServer).
лангольеры под окном жрали время ом-ном-ном

Silentium
Активный участник
Сообщения: 114
Зарегистрирован: 20 апр 2010, 17:33
Репутация: 0

Re: MapServer+PostGIS+WMS

Сообщение Silentium » 10 дек 2010, 16:37

Спасибо за помощь!
Скажите, не существует ли уже готовых openstreetmap map-файлов? Чтоб как раз миновать процесс сборки через утилиты.

Ответить

Вернуться в «Общие вопросы»

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

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