OpenLAYERS, переключающий карту поставщика услуг - PullRequest
0 голосов
/ 27 марта 2012

Я нашел много примеров того, как добавить / удалить оверлеи на карту Openlayers с помощью LayerSwitcher.Моя цель - предоставить LayerSwitcher , который позволяет одновременно работать только одному поставщику картографических услуг (например, GoogleMaps и Openstreetmaps).Возможно ли это с классом LayerSwitcher?

Я попробовал следующее, которое показывает нужный мне переключатель, но можно визуализировать только первый слой!

var osmLayer = new OpenLayers.Layer.OSM("Open Street Maps",
                                        ["http://a.tile.openstreetmap.org/${z}/${x}/${y}.png",
                                         "http://b.tile.openstreetmap.org/${z}/${x}/${y}.png",
                                         "http://c.tile.openstreetmap.org/${z}/${x}/${y}.png"
                                        ],
                                        {visibility: true, isBaseLayer: true});
var wmsLayer = new OpenLayers.Layer.WMS("OpenLayers WMS",
                                        "http://vmap0.tiles.osgeo.org/wms/vmap0",
                                        {layers: 'basic'},
                                        {visibility: true, isBaseLayer: true});

this.map = new OpenLayers.Map({
                         div: divname,
                         allOverlays: false,
                         theme: null,
                         controls: [
                            new OpenLayers.Control.LayerSwitcher(),
                         ]
});
this.map.addLayers([osmLayer, wmsLayer]);
this.map.setCenter(
    new OpenLayers.LonLat(8.56, 50).transform(
          new OpenLayers.Projection("EPSG:4326"), 
          this.map.getProjectionObject()
    ), 10
);

Если я выберу второйзапись ничего не отображается на карте, и при выборе первого действительно снова отображается карта OSM.

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

1 Ответ

0 голосов
/ 27 марта 2012

Мне кажется, проблема в том, что вы пытаетесь использовать проекцию Metacartas WMS i EPSG: 900913 (ту, которую использует OpenStreetMaps и Google)

Хотя в GetCapabilities говорится, что он должен поддерживать 900913, похоже, что нет. Если вы попытаетесь использовать один слой WMS (в EPSG4326), вы увидите, что он работает просто отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...