Страница 1 из 6

OpenLayers: начало работы

Добавлено: 01 фев 2008, 06:28
Максим Дубинин
Обсуждение статьи "OpenLayers: начало работы"

http://gis-lab.info/qa/openlayers-begin.html

Re: OpenLayers: начало работы

Добавлено: 14 дек 2009, 13:20
bazin_r
Здравствуйте. Спасибо, замечательная статья. Все получилось, все отлично. Только вот возник вопрос, у меня на слоях присутствуют надписи (например название районов, субъектов) и при таком отображении надписи повторяются. Возможно ли решение этой проблемы и какое?

Re: OpenLayers: начало работы

Добавлено: 14 дек 2009, 13:54
Mavka
просто - singleTile.
сложно - кэш-сервер типа GeoWebCache

Re: OpenLayers: начало работы

Добавлено: 18 янв 2010, 00:33
geodata
2й пример неработает http://gis-lab.info/qa/openlayers-example2.html непрогружается растр :(

Re: OpenLayers: начало работы

Добавлено: 18 янв 2010, 00:59
Максим Дубинин
WMS, который использовался в примере, упал
изменил пример на использование нашего домашнего, вроде работает

Re: OpenLayers: начало работы

Добавлено: 14 мар 2010, 14:35
Petr
У меня не получается подключить WMS слой. Сервер выдает следующую ошибку:
"msWMSLoadGetMapParams(): WMS server error. Invalis SRS given: SRS must be valid or all reqested layers."

На сколько я понимаю ошибка в этой строчке:
var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://localhost/cgi-bin/mapserv.exe?ma ... rsWMS2.map", {layers: 'mest'} );

ArcGIS с WMS сервисом работает нормально, т.е. сам мап файл составлен правильно.

Re: OpenLayers: начало работы

Добавлено: 15 мар 2010, 10:10
Mavka
1. Если ему не нравится система координат, то посмотрите какие запросы уходят на сервер. Это можно узнать в логах Apache, или в Firefox - Firebug и WMS Inspector.
2. Ну и проверить какую глобальную СК вы задали при создании объекта map:

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

map = new OpenLayers.Map('map', {
    projection: new OpenLayers.Projection('EPSG:900913'),
 

Re: OpenLayers: начало работы

Добавлено: 17 мар 2010, 09:29
Petr
Mavka писал(а):1. Если ему не нравится система координат, то посмотрите какие запросы уходят на сервер. Это можно узнать в логах Apache, или в Firefox - Firebug и WMS Inspector.
2. Ну и проверить какую глобальную СК вы задали при создании объекта map:

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

map = new OpenLayers.Map('map', {
    projection: new OpenLayers.Projection('EPSG:900913'),
 
Правильно ли я указываю систему координат в самом МАП файле. Шейпы у меня в Пулкова 42 года/ проекция Гауса Крюгера 11 зона. http://spatialreference.org/ref/epsg/28411/

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

MAP
 ....
  PROJECTION
   "init=EPSG:28411"
  END
 .....
В общем то АрГис при подключение к WMS сервису работает и получает шейпы полностью нормально.
На сколько я понял надо указать систему координат в html файле на OpenLayers|?

Re: OpenLayers: начало работы

Добавлено: 17 мар 2010, 10:26
Mavka
АрГис при подключение к WMS сервису работает и получает шейпы полностью нормально
Вот и славненько. А вообще то, в предыдущем посте я давал ссылку. Прочитайте статью полностью.
Не видя код инициализации карты и слоя никто не станет гадать почему карта не работает.

Re: OpenLayers: начало работы

Добавлено: 18 мар 2010, 22:22
Petr
Апач пишет следующий лог:

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

127.0.0.1 - - [18/Mar/2010:23:56:25 +0500] "GET /cgi-bin/mapserv.exe?map=/ms4w/apps/kurs/kursWMS2.map&LAYERS=mest&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&FORMAT=image%2Fjpeg&SRS=EPSG%3A4326&BBOX=-180,0,-90,90&WIDTH=256&HEIGHT=256 HTTP/1.1" 200 5424
Вроде все в порядке, единственное смущает EPSG%3A4326, МапСервер кодирует чило...? как уже писал я задавал EPSG:28411

Если открывать мап-файл через браузер (не использую OpenLeyers), то все нормально.
Поэтому я думаю ошибка в работе с OpenLeyers, хотя может быть я ошибся при добавлении параметров WMS сервиса в мап-файл, но АрГИС все прекрасно понимает...

Поэтому привожу текст только текст с OpenLeyers.

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

<html>
<head>
  <title>My VKR</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/cgi-bin/mapserv.exe?map=/ms4w/apps/kurs/kursWMS2.map", {layers: 'mest'} );
        map.addLayer(wms);
        map.zoomToMaxExtent();
      </script>
</body>
</html>

Re: OpenLayers: начало работы

Добавлено: 23 мар 2010, 14:25
Mavka
1. Откройте в браузере ссылку
http://wms-server
/cgi-bin/mapserv.exe?map=/ms4w/apps/kurs/kursWMS2.map&LAYERS=mest&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&FORMAT=image%2Fjpeg&SRS=EPSG%3A4326&BBOX=-180,0,-90,90&WIDTH=256&HEIGHT=256
2. Замените map.zoomToMaxExtent() на map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);

Re: OpenLayers: начало работы

Добавлено: 24 мар 2010, 11:15
Petr
Mavka писал(а):1. Откройте в браузере ссылку
http://wms-server
/cgi-bin/mapserv.exe?map=/ms4w/apps/kurs/kursWMS2.map&LAYERS=mest&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&FORMAT=image%2Fjpeg&SRS=EPSG%3A4326&BBOX=-180,0,-90,90&WIDTH=256&HEIGHT=256
2. Замените map.zoomToMaxExtent() на map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);

Сделал и то и другое. Результат тот же: "msWMSLoadGetMapParams(): WMS server error. Invalis SRS given: SRS must be valid or all reqested layers."

Re: OpenLayers: начало работы

Добавлено: 24 мар 2010, 12:30
Mavka
Проверяйте все что связано с системой координат в map-файле, скорее всего где то здесь:

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

WEB
    METADATA
        wms_onlineresource    "http://wms-server/cgi-bin/mapserv.exe?map=/ms4w/apps/kurs/&"
        wms_srs               "epsg:4326"
    END
END 

Re: OpenLayers: начало работы

Добавлено: 24 мар 2010, 13:45
Petr
У меня еще вопрос, почему в следуюшем коде из примера статьи путь до папки, а не файла?

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

  var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );

Re: OpenLayers: начало работы

Добавлено: 24 мар 2010, 13:57
Petr
Вроде с проекцией все верно.
вот код:

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

MAP
  ....
    WEB
 
	METADATA
               ...
    		wms_onlineresource     "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/kurs/kursWMS2.map&"
		wms_srs "EPSG:28411"    
	END
END

  PROJECTION
    "init=EPSG:28411"
  END
...
# слой КВАРЦ++++++++++++++++++++++++++++++++++++++++++++++++
  LAYER 
    NAME         mest
    DATA         mastoroj
    STATUS       ON
    TYPE         POINT
	TEMPLATE     "dummy"
	LABELITEM    "ClassName" 
	
   PROJECTION
      "init=EPSG:28411"
    END
	
    TOLERANCE 5  # точность "попадания" - 5 пикселей
    HEADER '/ms4w/apps/kurs/templates/templ_head.html'    # местонахождение
    FOOTER '/ms4w/apps/kurs//templates/templ_footer.html'  # шаблонов для генерации
    TEMPLATE '/ms4w/apps/kurs/templates/templ_query.html' # ответов на запрос


    CLASS
       NAME      "Месторождения кварца"
	   STYLE
          COLOR  255 0 2
		  SYMBOL   'circle2'
		  OUTLINECOLOR 32 32 32
       END
	  
     LABEL
        COLOR                 32 31 31
        SHADOWCOLOR    240 240 240
        SHADOWSIZE        1 1
        TYPE                     TRUETYPE
        FONT                    arial
        SIZE                      10
        ANTIALIAS             TRUE
        POSITION              CL
        PARTIALS              FALSE
        MINDISTANCE        100
        BUFFER                 3
        ENCODING             CP1251
      END
     END
	METADATA
      wms_title                   "Kvarz"
      wms_abstract             "Kvarz test"
      wms_srs                     "EPSG:28411"
      wms_include_items     "all"
    END
  END
# конец слоя КВАРЦ-------------------------------------------------

END # Конец определения карты