Я нашел много примеров того, как добавлять/удалять Overlays на карту Openlayers с помощью LayerSwitcher. Моя цель - предоставить LayerSwitcher, который позволяет одновременно использовать только одного поставщика услуг карты (например, GoogleMaps и Openstreetmaps). Возможно ли это с классом LayerSwitcher?Openlayers switch map поставщик услуг
Я попробовал следующее, которое показывает переключатель, который я хочу иметь, но только первый слой можно визуализировать!
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.
Заранее благодарен!
Я думаю, что это может иметь какое-то отношение к слою WMS, потому что когда я добавляю Карты Google следующим образом: новый OpenLayers.Layer.Google («Карты Google», {видимость: истина, isBaseLayer: true}), он работает ! – janr