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

Обсуждение материалов сайта: вопросы, замечания, предложения
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8906
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 644
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

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

Сообщение Максим Дубинин » 01 фев 2008, 06:28

Обсуждение статьи "OpenLayers: начало работы"

http://gis-lab.info/qa/openlayers-begin.html
пристегивайтесь, турбулентность прямо по курсу

bazin_r
Новоприбывший
Сообщения: 1
Зарегистрирован: 14 дек 2009, 12:55
Репутация: 0

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

Сообщение bazin_r » 14 дек 2009, 13:20

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

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

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

Сообщение Mavka » 14 дек 2009, 13:54

просто - singleTile.
сложно - кэш-сервер типа GeoWebCache
лангольеры под окном жрали время ом-ном-ном

geodata
Новоприбывший
Сообщения: 10
Зарегистрирован: 08 янв 2010, 04:29
Репутация: 1
Контактная информация:

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

Сообщение geodata » 18 янв 2010, 00:33

2й пример неработает http://gis-lab.info/qa/openlayers-example2.html непрогружается растр :(

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

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

Сообщение Максим Дубинин » 18 янв 2010, 00:59

WMS, который использовался в примере, упал
изменил пример на использование нашего домашнего, вроде работает
пристегивайтесь, турбулентность прямо по курсу

Petr
Интересующийся
Сообщения: 36
Зарегистрирован: 05 янв 2010, 17:21
Репутация: 0
Контактная информация:

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

Сообщение Petr » 14 мар 2010, 14:35

У меня не получается подключить 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 сервисом работает нормально, т.е. сам мап файл составлен правильно.

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

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

Сообщение Mavka » 15 мар 2010, 10:10

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

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

map = new OpenLayers.Map('map', {
    projection: new OpenLayers.Projection('EPSG:900913'),
 
лангольеры под окном жрали время ом-ном-ном

Petr
Интересующийся
Сообщения: 36
Зарегистрирован: 05 янв 2010, 17:21
Репутация: 0
Контактная информация:

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

Сообщение Petr » 17 мар 2010, 09:29

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|?

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

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

Сообщение Mavka » 17 мар 2010, 10:26

АрГис при подключение к WMS сервису работает и получает шейпы полностью нормально
Вот и славненько. А вообще то, в предыдущем посте я давал ссылку. Прочитайте статью полностью.
Не видя код инициализации карты и слоя никто не станет гадать почему карта не работает.
лангольеры под окном жрали время ом-ном-ном

Petr
Интересующийся
Сообщения: 36
Зарегистрирован: 05 янв 2010, 17:21
Репутация: 0
Контактная информация:

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

Сообщение Petr » 18 мар 2010, 22:22

Апач пишет следующий лог:

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

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>

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

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

Сообщение Mavka » 23 мар 2010, 14:25

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);
лангольеры под окном жрали время ом-ном-ном

Petr
Интересующийся
Сообщения: 36
Зарегистрирован: 05 янв 2010, 17:21
Репутация: 0
Контактная информация:

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

Сообщение Petr » 24 мар 2010, 11:15

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."

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

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

Сообщение Mavka » 24 мар 2010, 12:30

Проверяйте все что связано с системой координат в map-файле, скорее всего где то здесь:

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

WEB
    METADATA
        wms_onlineresource    "http://wms-server/cgi-bin/mapserv.exe?map=/ms4w/apps/kurs/&"
        wms_srs               "epsg:4326"
    END
END 
лангольеры под окном жрали время ом-ном-ном

Petr
Интересующийся
Сообщения: 36
Зарегистрирован: 05 янв 2010, 17:21
Репутация: 0
Контактная информация:

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

Сообщение Petr » 24 мар 2010, 13:45

У меня еще вопрос, почему в следуюшем коде из примера статьи путь до папки, а не файла?

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

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

Petr
Интересующийся
Сообщения: 36
Зарегистрирован: 05 янв 2010, 17:21
Репутация: 0
Контактная информация:

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

Сообщение Petr » 24 мар 2010, 13:57

Вроде с проекцией все верно.
вот код:

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

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 # Конец определения карты

Ответить

Вернуться в «Материалы сайта»