GIS-LAB

Географические информационные системы и дистанционное зондирование

Наиболее распространенные ошибки

Mavka, 17.12.2009

Поскольку на форуме в последние дни прошла лавина однотипных сообщений о проблемах с веб-приложениями, то решил осветить вопрос разработки и отладки веб-карт.

Разговор пойдет про: MapServer, OpenLayers, PostGIS и “вообще” (с).

Примечание: программ с названием “MapServer” я знаю четыре. ?з них наиболее часто встречающиеся – UMN MapServer и SUAS MapServer. Указывайте с чем конкретно вы работаете.

Первое и самое главное.

?сходные данные. Карты без координат не бывают. Непривязанные растры, вектор в местной СК – это не материал и к Г?С он никаким боком не относится. Как минимум – возьмите из Google Earth 4-6 точек и привяжите свои карты к ним. Система координат должна быть общепринятой и входить в список EPSG.

?так. ?сходный материал это: вектор – в формате ESRI Shapefile, растр – GeoTIFF. Если у вас он в другом формате (Mapinfo, Autocad, Adobe Illustrator), то вы должны себе четко представлять и быть уверены на 100% что сможете, при необходимости, привести его в указанные.

Для совсем начинающих – оформление и данные всегда идут раздельно. Если вы нарисовали красивую карту в Mapinfo или Illustratore, то при преобразовании форматов придется все делать заново. Толщина, цвет, заливка, условные знаки не передаются. Не устраивает – растеризуйте.

Ссылки:

  1. Географическая привязка растровых данных в ImageWarp (Arcview);
  2. Привязка векторных данных находящихся в неизвестной или файловой системе координат (Arcview, ArcGIS);
  3. Географическая привязка данных с помощью QGIS
    и другие статьи в разделе “Пространственная привязка“.

Примечание: если вы стоите перед дилеммой “растр или вектор” – выбирайте растр. Если потом решите переделать свой приложение на вектор, то затраты будут незначительными.

Второе.

Привыкайте все проверять. Залить данные в PostGIS, настроить MapServer, подключить OpenLayers и утверждать что последний рисует совсем не то что было вначале – бесперспективно.

Начали.

Все делается по порядку и рекурсивно проверяется. Взяли исходные данные, загрузили их в Quantum GIS (программа на ваш вкус). Убедились что видим то, что ожидали. Все слои прекрасно совмещаются. Проекция – та что требовалась. Координаты из Google ложатся туда где и должны быть (хотя бы +/- 100 м).

Загрузили данные в PostGIS. Опять все проверили: слои из базы данных сходятся с теми что были на первом этапе и система координат не сбилась при загрузке.

Начинаем настраивать UMN MapServer. Заполнили слои, прописали системы координат и экстенты. Проверяем средствами самой программы. Открываем в интернет браузере страницу с адресом вида:

http://localhost/cgi-bin/mapserv.exe?map=/work/wms/web.map&layer=geology_drillhole&mode=map

вы получите карту размером SIZE и охватом в EXTENT, как указывали в файле настроек (web.map). Кстати, основные проблемы на этом этапе – неправильно заданный экстент.

Теперь, добавляем в map-файл информацию о WMS. Переходим в QuantumGIS, подключаем новый wms-сервис и тщательно тестируем. Если ничего не отображается, то смотрим логи веб-сервера Apache – файл access.log. Для OSGeo4W он лежит по адресу:

\OSGeo4W\apache\logs\access.log

В нем смотрим в конце запросы вида (одной строкой):

/cgi-bin/mapserv.exe?map=/work/wms/web.map?
SERVICE=WMS&VERSION=1.1.0&
REQUEST=GetMap&LAYERS=geology_drillhole&
EXCEPTIONS=application/vnd.ogc.se_xml&
STYLES=&TRANSPARENT=FALSE&
FORMAT=image/png&
WIDTH=768&HEIGHT=768&
SRS=EPSG:…&
BBOX=…

Все параметры интуитивно понятны и беглого взгляда должно быть достаточно, чтобы выявить грубые ошибки. Если к этой строке добавить в начале адрес сервера (http://localhost) и открыть ее в браузере, то вы получите картинку. ?ли сообщение об ошибке – тогда исправляйте map-файл.

OpenLayers. Добавляем слой WMS, а вместо него – розовые квадраты. Щелкаем правой кнопкой и копируем адрес тайла. Открываем его в новом окне – wms-сервер покажет ошибку. Не забываем смотреть в логах Apache какие запросы поступают на сервер.

Если вместо UMN MapServer вы используете GeoServer, то удобнее использовать Firebug для Firefox. Открываем в меню ?нструменты > Дополнения > Поиск дополнений. ?щем “firebug” и устанавливаем. Запускаем отладку (Ctrl+F12 или ?нструменты > Firebug) и на вкладке “Сеть” видим все обращения к серверу.

На вкладке “Сценарий” можно проводить собственно отладку кода вашего приложения, определять точки останова и смотреть содержимое переменных.

Закончили.

? вот только теперь, если у вас до сих пор остались нерешенные проблемы, отправляемся на форум и просим подсказки. Для UMN MapServer приводим содержимое map-файла, а для OpenLayers – хотя бы инициализацию карты (OpenLayers.Map) и слоя (OpenLayers.Layer.WMS).

Комментарии (1) к статье “Наиболее распространенные ошибки”

  1. VV says:

    не получается поднять на локальной машине на UMN MapServer WMS.
    map файл вроде правильный, при подстановке в браузер картинка нормальная.
    а Qgis не может подключиться к локальному wms server.

Оставьте комментарий


(Геокруг)

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter