Отображение слоя WMS на основе уровня масштабирования

Я занимался этим весь день и, честно говоря, у меня нет идей. У меня есть несколько слоев WMS, которые я хотел бы отображать / не отображать в зависимости от текущего уровня масштабирования. Да, я просмотрел документы API, и они кажутся ясными как день, но я следую всему, что предлагается, и не получаю желаемых результатов: (

Это был один из источников, на которые я смотрел: У меня есть несколько слоев WMS, которые я хотел бы отображать / не отображать в зависимости от текущего уровня масштабирования. Да, я прошел через API ...

Я занимался этим весь день и, честно говоря, у меня нет идей. У меня есть несколько слоев WMS, которые я хотел бы отображать / не отображать в зависимости от текущего уровня масштабирования. Да, я просмотрел документы API, и они кажутся ясными как день, но я следую всему, что предлагается, и не получаю желаемых результатов: (

Это был один из источников, на которые я смотрел: У меня есть несколько слоев WMS, которые я хотел бы отображать / не отображать в зависимости от текущего уровня масштабирования. Да, я прошел через API ...

Я занимался этим весь день и, честно говоря, у меня нет идей. У меня есть несколько слоев WMS, которые я хотел бы отображать / не отображать в зависимости от текущего уровня масштабирования. Да, я просмотрел документы API, и они кажутся ясными как день, но я следую всему, что предлагается, и не получаю желаемых результатов: (

Это был один из источников, на которые я смотрел: http://trac.osgeo.org/openlayers/wiki/SettingZoomLevels

Затем, чтобы еще больше усугубить ситуацию, я обнаружил, что если у вас есть базовый слой Open Street Map, отображаемый при загрузке, это, похоже, ограничивает ваш контроль над numZoomLevels карты , именно то, что мне было нужно, поскольку я ДЕЙСТВИТЕЛЬНО хочу использовать его в качестве базового уровня загрузки ...

Итак, мои вопросы:

Что я делаю не так? Верно ли, что действительно нет обходного пути для управления уровнями масштабирования при использовании базового слоя Open Street Map при загрузке? Или есть что-то, чего я просто не знаю?

Вот некоторые из моих попыток кода: Возьмите 1: слой tib_villages должен отображаться только при уровне масштабирования 8-10, не работает!

var options = {
                                        controls: [new OpenLayers.Control.Navigation()], //Needed to use GeoExt controls such as the zoomslider
            maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
            units: 'm',
            numZoomLevels: null, //setting the map's zoom levels to null
            allOverlays: false
        }

var osm = new OpenLayers.Layer.OSM(); //MY base layer

//MY overlay layer
var tib_villages = new OpenLayers.Layer.WMS(
                    "Villages", "http://localhost:8080/geoserver/wms", {layers: 'cite:tib_villages', transparent: true, numZoomLevels: 10, minZoomLevel: 8}, {isBaseLayer: false, displayInLayerSwitcher: true, visibility: true}
                );

Вариант 2: слой tib_villages должен отображаться только при уровне масштабирования 8-10, карта должна иметь только 10 уровней масштабирования, но вместо этого имеет 19, как это предписано слоем Open Street Map, не работает!

var options = {
                                        controls: [new OpenLayers.Control.Navigation()], //Needed to use GeoExt controls such as the zoomslider
            maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
            units: 'm',
            numZoomLevels: 10, //setting the map's zoom levels to 10 only
            allOverlays: false
        }

var osm = new OpenLayers.Layer.OSM(); //MY base layer

//MY overlay layer
var tib_villages = new OpenLayers.Layer.WMS(
                    "Villages", "http://localhost:8080/geoserver/wms", {layers: 'cite:tib_villages', transparent: true, numZoomLevels: null, minZoomLevel: 8}, {isBaseLayer: false, displayInLayerSwitcher: true, visibility: true}
                )

;

Дубль 3: После удаления базового слоя Open Street Map при загрузке карта имеет только 10 уровней масштабирования, так как указано, но слой tib_villages должен отображаться только при уровне масштабирования 8-10, не работает!

var options = {
                                        controls: [new OpenLayers.Control.Navigation()], //Needed to use GeoExt controls such as the zoomslider
            maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
            units: 'm',
            numZoomLevels: 10, //setting the map's zoom levels to 10
            allOverlays: false
        }

//MY overlay layer
var tib_villages = new OpenLayers.Layer.WMS(
                    "Villages", "http://localhost:8080/geoserver/wms", {layers: 'cite:tib_villages', transparent: true, numZoomLevels: 10, minZoomLevel: 8}, {isBaseLayer: false, displayInLayerSwitcher: true, visibility: true}
                );

Мы искренне признательны за все ваши предложения!

elshae

5
задан elshae 22 October 2010 в 20:32
поделиться