Maps OpenLayers:可缩放的WMS覆盖?
我对OpenLayers中的WMS覆盖有问题。基本上,我只想将来自WMS服务器的数据添加为覆盖层,而不是基本层。这似乎是一个非常简单的问题,但我无法找到解决方案。如果我将singleTile设置为true,则覆盖显示在整个地图上,但无法放大。如果将其设置为false,则在每个缩放级别仅显示一个平铺。如果我将它设置为基础层,它可以正常工作,但我确实需要覆盖解决方案,这样我就可以使它透明并看到它后面的地图 使用不同的数据集演示问题,但问题相同: 我认为这可能与一些坐标系问题有关,但我不是专家,因此非常感谢您的帮助 非常感谢 以下是代码的相关部分,但该部分没有按预期工作:Maps OpenLayers:可缩放的WMS覆盖?,maps,gis,openlayers,wms,Maps,Gis,Openlayers,Wms,我对OpenLayers中的WMS覆盖有问题。基本上,我只想将来自WMS服务器的数据添加为覆盖层,而不是基本层。这似乎是一个非常简单的问题,但我无法找到解决方案。如果我将singleTile设置为true,则覆盖显示在整个地图上,但无法放大。如果将其设置为false,则在每个缩放级别仅显示一个平铺。如果我将它设置为基础层,它可以正常工作,但我确实需要覆盖解决方案,这样我就可以使它透明并看到它后面的地图 使用不同的数据集演示问题,但问题相同: 我认为这可能与一些坐标系问题有关,但我不是专家,因此
var pop_layer = new OpenLayers.Layer.WMS("Population Density in 2000",
"http://sedac.ciesin.columbia.edu/geoserver/ows", {
layers: 'gpw-v3:gpw-v3-population-density_2000',
transparent: true
}, {
opacity: 0.5,
isBaseLayer: false,
// Setting single tile to true will kind of work but than one
// cannot zoom in any more.
singleTile: false
}
);
我不太清楚这里到底出了什么问题,但我认为这与混乱的参考系有关。以下是一个解决方法: 我将地图投影更改为球形墨卡托投影,现在它似乎对我很好:
var mapOptions = {
div: "map",
projection: new OpenLayers.Projection("EPSG:900913"),
units: "m"
};
map = new OpenLayers.Map('map', mapOptions);
var osm = new OpenLayers.Layer.OSM();
map.addLayer(osm);
var pop_layer = new OpenLayers.Layer.WMS("Population Density in 2000", "http://sedac.ciesin.columbia.edu/geoserver/ows", {
layers: 'gpw-v3:gpw-v3-population-density_2000',
transparent: true
}, {
opacity: 0.5,
isBaseLayer: false
});
map.addLayer(osm);
map.addLayer(pop_layer);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.setCenter(new OpenLayers.LonLat(0, 0), 2);
如果有帮助,请告诉我 我不太清楚这里到底出了什么问题,但我认为这与混乱的参考系有关。以下是一个解决方法: 我将地图投影更改为球形墨卡托投影,现在它似乎对我很好:
var mapOptions = {
div: "map",
projection: new OpenLayers.Projection("EPSG:900913"),
units: "m"
};
map = new OpenLayers.Map('map', mapOptions);
var osm = new OpenLayers.Layer.OSM();
map.addLayer(osm);
var pop_layer = new OpenLayers.Layer.WMS("Population Density in 2000", "http://sedac.ciesin.columbia.edu/geoserver/ows", {
layers: 'gpw-v3:gpw-v3-population-density_2000',
transparent: true
}, {
opacity: 0.5,
isBaseLayer: false
});
map.addLayer(osm);
map.addLayer(pop_layer);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.setCenter(new OpenLayers.LonLat(0, 0), 2);
如果有帮助,请告诉我 非常感谢!它似乎在我测试过的所有情况下都能完美工作。再次感谢!我会对答案投赞成票,但似乎我还没有足够的声誉。非常感谢!它似乎在我测试过的所有情况下都能完美工作。再次感谢!我会对答案投赞成票,但我似乎还没有足够的声誉。