MS+OL: Проблемы с extent'ом?

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Rex
Интересующийся
Сообщения: 19
Зарегистрирован: 16 фев 2009, 15:43
Репутация: 0

MS+OL: Проблемы с extent'ом?

Сообщение Rex »

Недавно начал изучение вопроса, есть проблемы.

На локальном сервере стоит MapServer, на нем крутится заготовка карты (сначала решил движок настроить, потом дорисовать). На клиенте используется OpenLayers.

Проблема: При просмотре с использованием OpenLayers слои карты не отображаются. То есть, похоже, что отображается, но как-то не так (то ли с маштабом что-то, то ли с границами) - просто белый экран и все. При этом вроде как работает масштабирование (что-то подгружается с сервера) и перетаскивание (судя по курсору).

А при просмотре напрямую с использованием MapServer'a все нормально (правда при первом открытии страницы тоже белое поле вместо карты, но после любого действия с ней карта появляется).

Кусок map-файла:

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

MAP
  NAME		"ugo"
  IMAGETYPE      GIF
  EXTENT	800.002504 -2001.252087 2001.002505 -1000.752921
  SIZE           600 500
  SHAPEPATH      "shp/"
  IMAGECOLOR     255 255 255
  fontset	"./fonts/fonts.list"


  WEB
    TEMPLATE  './templates/template5.html'
    IMAGEPATH '/var/www/ugo.su/map/'
    IMAGEURL  '/map/'
    
    METADATA
        wms_title "GIS-LAB Demo"
        wms_abstract "This is the WMS demo from GIS-Lab"
        wms_onlineresource "http://192.168.1.3/cgi-bin/mapserv?"
    END					

  END
	      
  PROJECTION
    "init=epsg:4326"
  END


  LAYER 
    NAME         sq
    DATA         squares
    STATUS       ON
    TYPE         POLYGON
    
    CLASS
      NAME       "sq"
      STYLE
        COLOR        200 210 230
        OUTLINECOLOR 32 32 32
      END
    END
    
    METADATA
        wms_title         "sq"
        wms_abstract      "squares"
        wms_srs           "EPSG:4326"
        wms_include_items "all"
    END
					
    
  PROJECTION
    "init=epsg:4326"
  END

  END
EXTENET взят из того, что появляется в строке браузера при просмотре карты без использования OpenLayers. Подозреваю, что именно в этом проблема)

Клиентский скрипт:

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

    <script
    src="http://openlayers.org/api/OpenLayers.js"></script>
    </head>
    <body>
      <div style="width:100%; height:100%" id="map"></div>
      <script defer="defer" type="text/javascript">
	var bounds = new OpenLayers.Bounds(799, -2000, 2000, -1000);
        var map = new OpenLayers.Map('map');
        var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://192.168.1.3/cgi-bin/mapserv?map=map/ugo.map&", {'map':'/usr/lib/cgi-bin/map/ugo.map','layers':'sq'} );
        map.addLayer(wms);
	map.zoomToExtent();
      </script>
UPD Попробовал подключить WMS-слой в QGIS. В итоге подключилось со второй попытки. В первый раз было пусто, второй раз все слои отобразились. При этом я изменил строку в map-файле:

wms_onlineresource "http://192.168.1.3/cgi-bin/mapserv?"
изменил на
wms_onlineresource "http://192.168.1.3/cgi-bin/mapserv?map=map/ugo.map&"

Однако через OpenLayers не заработало.
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: MS+OL: Проблемы с extent'ом?

Сообщение Максим Дубинин »

прежде чем мучать OL, нужно окончательно разобраться с WMS, чтобы все показывалось как надо
Да, похоже, что проблемы с EXTENT, он явно не согласуется с заявленной системой координат: "init=epsg:4326"
Как известно ее полный EXTENT -180 -90 180 90. Чтобы нормально определить EXTENT, сделайте со своим слоем следующее:

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

ogrinfo shapefile.shp -so -al | grep Extent
ну или без grep
пристегивайтесь, турбулентность прямо по курсу
Rex
Интересующийся
Сообщения: 19
Зарегистрирован: 16 фев 2009, 15:43
Репутация: 0

Re: MS+OL: Проблемы с extent'ом?

Сообщение Rex »

ogrinfo выдал это:

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

INFO: Open of `squares.shp'
      using driver `ESRI Shapefile' successful.

Layer name: squares
Geometry: Polygon
Feature Count: 45
Extent: (734.701600, -2440.652611) - (2053.606094, -1399.450786)
Layer SRS WKT:
GEOGCS["GCS_WGS_1984",
    DATUM["WGS_1984",
        SPHEROID["WGS_1984",6378137,298.257223563]],
    PRIMEM["Greenwich",0],
    UNIT["Degree",0.017453292519943295]]
Number: Integer (10.0)
Прописал в map-файл указанные значения extent, ничего не изменилось.

Я подозревал, когда прописывал свойства WMS, что проекция может быть не та. Но более-менее внятной информации на тему проекций не нашел (может, плохо искал), поэтому использовал из примера. Вообще у меня планируется просто схема небольшого города, поэтому какие-то навороченные проекции не требуются, насколько я понимаю.
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: MS+OL: Проблемы с extent'ом?

Сообщение Максим Дубинин »

хмм, это неравильный какой-то экстент для этой СК, у вас точно данные в географической СК?
пристегивайтесь, турбулентность прямо по курсу
Rex
Интересующийся
Сообщения: 19
Зарегистрирован: 16 фев 2009, 15:43
Репутация: 0

Re: MS+OL: Проблемы с extent'ом?

Сообщение Rex »

Нет. Я просто загрузил в QGIS скан карты города и начал обрисовывать :) Это, можно сказать, пробная карта (небольшой набросок), поэтому единственное, что я там учитывал - размеры объектов в метрах более-менее соответствуют реальным (проверял с помощью встроенной в QGIS линейки). Все параметры, насколько я помню, остались по умолчанию, проекция в том числе.
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: MS+OL: Проблемы с extent'ом?

Сообщение Максим Дубинин »

попробуйте удалить prj файл, он неправильный и удалить блок PROJECTION и wms_srs
последнее может поломать WMS, если это так, то подставьте что-то типа

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

PROJECTION "init=epsg:3349"
и тот же epsg-код в wms_srs

Это будет подмена, но ближе к истине, чем 4326, у которой с вашим конфликтует extent.
пристегивайтесь, турбулентность прямо по курсу
Rex
Интересующийся
Сообщения: 19
Зарегистрирован: 16 фев 2009, 15:43
Репутация: 0

Re: MS+OL: Проблемы с extent'ом?

Сообщение Rex »

Сделал. Стало так же, как было, когда я неверно указывал путь к карте - на экране рамки, обозначающие картинки, которые не удалось найти. Они перетаскиваются и даже масшатбируются (их количество меняется), но изображения-то нет :(
Может стоит попробовать создать карту заново (это все равно займет не больше получаса)? Только подскажите, как это сделать по всем правилам, чтобы не было подобных проблем...

UPD Насчет рамок наврал - это было из-за того, что проверял не из локалки, а адрес карты был указан в виде локального адреса... В общем просто ничего не изменилось.
Rex
Интересующийся
Сообщения: 19
Зарегистрирован: 16 фев 2009, 15:43
Репутация: 0

Re: MS+OL: Проблемы с extent'ом?

Сообщение Rex »

Теперь при запуске без использования OpenLayers в браузере появляется ошибка:
msProcessProjection(): Projection library error. no system list, errno: 2
Пробовал и epsg:4326 и epsg:3349

Нашел в сети страницы с ее описанием, понял, что вроде проблема в том, что proj не может найти соответствие epsg-кода и конкретных данных для этой проекции. Файл с описанием кодов на месте. Подставил из этого файла в map-файл описание проекции вместо кода, напрямую заработало! А через OpenLayers та же картина. Что не так??

PS Сервер крутится на Ubuntu Linux.
Rex
Интересующийся
Сообщения: 19
Зарегистрирован: 16 фев 2009, 15:43
Репутация: 0

Re: MS+OL: Проблемы с extent'ом?

Сообщение Rex »

Проблема решена!

Дело было в том, что я создал проект в QGIS (который по умолчанию имеет систему координат WGS84), вставил скан карты, не привязав его к этой системе координат (я просто не знал об этом). Обрисовал скан, получилась карта, уходящая далеко за пределы экстента. Сейчас создал тестовую карту в нормальных масштабах, и все заработало :)

Благодарю sim за наводку!
Ответить

Вернуться в «Веб-картография»

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

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