GeoServer WMS не загружается с OpenLayers

Я знаю, что в Интернете есть множество сообщений об этом, но я не могу загрузить свой WMS-слой в GeoServer в OpenLayers. OpenLayers добавляет слой в «переключатель слоев», но его нигде не видно. Я не уверен, имеет ли это значение (я не понимаю, как это могло бы быть), но мой слой хранится в базе данных PostGIS, и я могу просмотреть его в предварительном просмотре слоя GeoServer. Слой находится в EPSG 4326, который, как я знаю, используется в OpenLayers по умолчанию, и я добавляю его в базовую карту OSM. Это мой полный URL-адрес, как в URL-адресе предварительного просмотра слоя GeoServer:

http://localhost:8080/geoserver/envision/wms?service=WMS&version=1.1.0&request=GetMap&layers=envision:basecamp_property&styles=&bbox=115.753479003906,-32.2068328857422,116.16431427002,-31.9231204986572&width=512&height=353&srs=EPSG:4326&format=application/openlayers

И это мой код для OpenLayers для доступа и добавления слоя:

var wms = new OpenLayers.Layer.WMS('Rezoning Scenario',
                          'http://localhost:8080/geoserver/envision/wms',
                          {'layers': 'envision:basecamp_property'},
                          {isBaseLayer: false}
                      );
    map.addLayer(wms);

Есть идеи, почему он может не работать?

Заранее спасибо.

Ro


person user2642365    schedule 08.11.2013    source источник


Ответы (2)


Наконец-то! Помимо перепроецирования с 4325 на 900913 в GeoServer, мне также пришлось объявить проекцию как 900913 в свойствах слоя, например:

var wms = new OpenLayers.Layer.WMS('Rezoning Scenario',
                          'http://localhost:8080/geoserver/envision/wms',
                          {'layers': 'envision:basecamp_property'},
                          {isBaseLayer: false,
                           projection: 'EPSG:900913'} //This part was required!
                      );
    map.addLayer(wms);

По какой-то причине не так много примеров, которые я нашел, должны были делать это, но я сделал, чтобы это работало.

R

person user2642365    schedule 11.11.2013

Это может быть связано с тем, что уровень OSM фактически находится в проекции EPSG:900913, тогда как уровень WMS находится в EPSG:4326. Поскольку вы являетесь администратором своего WMS, вам, вероятно, проще всего будет выполнить преобразование там, то есть запросить WMS в EPSG:900913 с вашего геосервера.

посмотрите эти ссылки для получения дополнительной информации:

http://blog.sumbera.com/2010/02/17/overlay-wms-on-google-in-openlayers/

http://osgeo-org.1560.x6.nabble.com/WMS-reprojection-td3912439.html

person olly_uk    schedule 08.11.2013
comment
Эй, спасибо за информацию. Я смотрел перепроектирование в GeoServer. Я вошел в свойства слоя и попытался установить «объявленный» SRS на 900913 (я тоже пробовал 3857), а затем выбрал «перепроектировать родной на объявленный» (я тоже пробовал опцию «объявить принудительно»), но я все еще не получить карту. Я проверил множество форумов с людьми, у которых возникла и решалась одна и та же проблема, но, похоже, ничего не работает. Я также пробовал объявить SRS в объекте OpenLayers WMS. Не уверен, что теперь попробовать ... - person user2642365; 09.11.2013