Помогите подружить OpenLayers и MapServer.

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

Помогите подружить OpenLayers и MapServer.

Сообщение Naphtizin » 04 окт 2009, 20:21

Здравствуйте! Для диплома делаю интерактивную карту города. Установил MapServer. Экспортировал часть карты из MapInfo в формат *.shp. Создал map файл как написано здесь, вроде всё работает, картинка отрисовалась . Далее скачал OpenLayers. Переделал map файл как написано здесь. Ничего хорошего из этого не получается, просто розовый фон в браузере с панелью перемещения от OpenLayers. Ясное дело где-то допускаю ошибку. Либо в map файле, либо в html, либо и там и там. Содержимое map файла:

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

MAP
  NAME           "WMS"
  STATUS         ON
  IMAGETYPE      PNG
  EXTENT         0.05 0.17 0.15 0.18
  SIZE           400 300
  SHAPEPATH      "/ms4w/Apache/example/shp/"
  UNITS DD
  IMAGECOLOR     255 255 255

  WEB
    TEMPLATE  "template.html"
    IMAGEPATH "/ms4w/Apache/example/shp/tmp/"
    IMAGEURL  "/tmp/"
	METADATA
		wms_title                  "GIS-LAB Demo"
		wms_abstract               "This is the WMS demo from GIS-Lab"
		wms_onlineresource         

"http://localhost/cgi-bin/mapserv.exe?map=/ms4w/Apache/example/nsk.map&"
		wms_srs                    "EPSG:4326"
		wms_getfeatureinfo         

"http://localhost/cgi-bin/mapserv.exe?map=/ms4w/Apache/example/nsk.map&"
		wms_featureinfoformat      "text/plain"
	END
  END

  PROJECTION
   "proj=latlong"
   "ellps=WGS84"
   "datum=WGS84"
  END

  LAYER # States polygon layer begins here
    NAME         map1
    DATA         nsk
    STATUS       ON
    TYPE         POLYGON
	TEMPLATE     "dummy"

    PROJECTION
		"proj=latlong"
		"ellps=WGS84"
		"datum=WGS84"
    END
    CLASS
      NAME "States"
      STYLE
        COLOR      232 232 232
      END
    END

	METADATA
		wms_title         "Countries 1"
		wms_abstract      "Countries 1 test"
		wms_srs           "EPSG:4326"
		wms_include_items "all"
	END
  END

END
содержимое html:

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

<html>
<head>
  <title>OpenLayers Example</title>
    <script
    src="OpenLayers-2.8/OpenLayers.js"></script>
    </head>
    <body>
      <div style="width:100%; height:100%" id="map"></div>
      <script defer="defer" type="text/javascript">
        var map = new OpenLayers.Map('map');
        var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
            "http://localhost/example/nsk", {layers: 'map1'} );
        map.addLayer(wms);
        map.zoomToMaxExtent();
      </script>

</body>
</html>
Файл карты называется nsk.shp , map файл называется nsk.map, находятся в ms4w\Apache\example\shp и ms4w\Apache\example соответственно. Есть подозрение, что неправильно указываю путь в html, либо что-то не дописываю в map'е. Уважаемые гуру, пожалуйста помогите найти и исправить ошибки.

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

Re: Помогите подружить OpenLayers и MapServer.

Сообщение Максим Дубинин » 04 окт 2009, 21:39

сначала проверьте показывается ли сам WMS (без OL) в QGIS или еще где

WMS попробуйте вот так определить

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

var errors = new OpenLayers.Layer.WMS(
	"osm-errors",
	"http://gis-lab.info/cgi-bin/mapserv?map=/usr/local/www/gis-lab/data/projects/osmrus/errors-wms/wms.map",
	{layers: 'osm-errors', transparent: 'true', format: 'image/png'}
	);
пристегивайтесь, турбулентность прямо по курсу

Naphtizin
Интересующийся
Сообщения: 23
Зарегистрирован: 04 окт 2009, 19:22
Репутация: 0

Re: Помогите подружить OpenLayers и MapServer.

Сообщение Naphtizin » 05 окт 2009, 08:57

В QGIS создал WMS слой, вписал туда в качестве URL : http://localhost/cgi-bin/mapserv.exe?ma ... le/nsk.map& - путь к моему map файлу, карта загрузилась. Я так понимаю это значит, что WMS сервис рабртает? А на счет отображения в OpenLayers можно по подробней. Отобразить чужой слой как в примере могу, а свой не получается. А вообще не совсем ясны следующие вещи:
  • Создание WMS-сервиса заключается в правке map файла?
  • wms_onlineresource - это путь к map файлу?
  • в OpenLayers нужно указывать путь к map файлу или mapserv.exe?
Если не трудно приведите пример.

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

Re: Помогите подружить OpenLayers и MapServer.

Сообщение Mavka » 05 окт 2009, 11:20

Судя по экстенту, город находится в районе Гринвичской обсерватории и имеет форму полосы 1 х 10 км.

А если серьезно - щелкните правой кнопкой по розовому квадрату, скопируйте его адрес и откройте этот адрес в браузере. Там все будет написано.

wms_onlineresource "http://localhost/cgi-bin/mapserv.exe?ma ... le/nsk.map&"
лангольеры под окном жрали время ом-ном-ном

Naphtizin
Интересующийся
Сообщения: 23
Зарегистрирован: 04 окт 2009, 19:22
Репутация: 0

Re: Помогите подружить OpenLayers и MapServer.

Сообщение Naphtizin » 05 окт 2009, 11:39

Координаты города ненастоящие. Просто файл экспортирован с неправильными координатами. Насчет адреса розового квадрата я что-то непонял, можно пояснить?

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

Re: Помогите подружить OpenLayers и MapServer.

Сообщение Mavka » 05 окт 2009, 11:45

лангольеры под окном жрали время ом-ном-ном

Naphtizin
Интересующийся
Сообщения: 23
Зарегистрирован: 04 окт 2009, 19:22
Репутация: 0

Re: Помогите подружить OpenLayers и MapServer.

Сообщение Naphtizin » 05 окт 2009, 17:38

Огромное спасибо за ссылку, правда я там уже был, но видать читал плохо! Подключил OpenLayers к MapServer'у следующим кодом:

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

var map = new OpenLayers.Map('map');
           var mappath="/ms4w/Apache/example/nsk.map";
           var mapurl="http://localhost/cgi-bin/mapserv.exe";
           var layer = new OpenLayers.Layer.WMS("GIS-Lab Test WMS",
            mapurl,    {map: mappath, layers: 'map1', format: 'gif'},{'reproject': true});
           map.addLayer(layer);
Всем огромное спасибо за помощь!

Ответить

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

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

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