私は一日中これにいて、正直なところ私は考えがありません。現在のズームレベルに応じて表示/非表示にしたいWMSレイヤーがいくつかあります。はい、私はAPIドキュメントを調べましたが、それらは日として明確であるように見えますが、提案されたすべてに従い、望ましい結果が得られません:(
これは私が見たソースの1つでした:http://trac.osgeo.org/openlayers/wiki/SettingZoomLevels
さらに悪いことに、ロード時にOpen Street Mapベースレイヤーが表示されている場合、これをロードベースレイヤーとして使用したいので、マップのnumZoomLevelsの制御が制限されているように見えることがわかりました。 ..。。
だから私の質問は:
私は何が間違っているのですか?ロード時にOpenStreetMapベースレイヤーを使用する場合、ズームレベルの制御に実際に回避策がないというのは本当ですか?それとも私が知らないことがありますか?
私のコードの試みのいくつかを次に示します。テイク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のズームレベルのみが表示されますが、Open Street Map Layerによって強制されるように19が表示され、機能しません。
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}
);
あなたの提案のすべては心から感謝されます!
エルシェ