OpenLayers WMS 图层不会加载
OpenLayers WMS layer doesn't load
我使用以下JavaScript块来尝试显示WMS层。我正在使用OpenLayers 2.8。
地图的基础图层(Openstreetmap)显示正确,它缩放到正确的区域,"金字塔"图层显示在图层切换器中,但从未向其WMS服务发出请求(因此URL,样式和参数是假人的事实无关紧要 - 它甚至从未尝试获取它们)。
OpenLayers 确实会在我平移或缩放足够远时尝试获取 WMS 图层,以便可以看到几内亚湾(但我的所有数据都在荷兰)。这表明存在投影问题(WGS84的(0,0)点在那里),但我不明白为什么OpenLayers甚至不尝试在其他地方获取地图图层。我的数据位于 EPSG:3857(Web 墨卡托)投影中。
/*global $, OpenLayers */
(function () {
"use strict";
$(function () {
$(".map").each(function () {
var div = $(this);
var data_bounds = div.attr("data-bounds");
console.log("data_bounds: " + data_bounds);
if (data_bounds !== "") {
var map = new OpenLayers.Map(div.attr("id"), {
projection: "EPSG:3857"});
var extent = JSON.parse(data_bounds);
var bounds = new OpenLayers.Bounds(
extent.minx, extent.miny,
extent.maxx, extent.maxy);
map.addLayer(
new OpenLayers.Layer.OSM(
"OpenStreetMap NL",
"http://tile.openstreetmap.nl/tiles/${z}/${x}/${y}.png",
{buffer: 0}));
map.addLayer(
new OpenLayers.Layer.WMS(
"pyramid", "http://rasterserver.local:5000/wms", {
layers: "test",
styles: "test"
}, {
singleTile: true,
isBaseLayer: false,
displayInLayerSwitcher: true,
units: 'm'
}));
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToExtent(bounds);
}
});
});
})();
编辑:"data_bounds"控制台打印打印(添加了一些格式):
data_bounds: {
"minx": 582918.5701295201,
"miny": 6923595.841021758,
"maxx": 821926.9006116659,
"maxy": 7079960.166533174
}
它缩放到荷兰北部的正确区域,所以我认为问题不在那里。
自从发布以来,我发现如果我不使用OSM层,而是使用WMS层作为基础层,它就可以工作。因此,也许与OSM基础层和添加到其中的WMS层有些不兼容?但是我不明白它似乎确实在 WGS84 (0, 0) 附近做了一些事情。
我最终设法通过给地图一个明确的maxExtent
来解决这个问题:
var extent = JSON.parse(data_bounds);
var bounds = new OpenLayers.Bounds(
extent.minx, extent.miny,
extent.maxx, extent.maxy);
var map = new OpenLayers.Map(div.attr("id"), {
projection: "EPSG:3857",
maxExtent: bounds
});
奇怪的是,这并没有限制用户在世界各地平移和缩放的能力,但它确实使覆盖层起作用......
相关文章:
- 添加支持异步重新加载的 Web 图层
- 从数据库加载标记作为可切换的图层
- 如何重新加载谷歌地图图层
- 如何设置加载 JSON 图层的最小缩放比例
- 在页面加载期间使用传单预加载图层
- 动态更改已加载的 WMS 图层的样式
- 无法在谷歌地图上加载 KML 图层
- 通过 loadURL 函数加载标记图层时更改地图框中的标记颜色
- 切片图层加载开始和结束时的传单火灾事件
- ArcGIS 图层的切片根本不加载
- 在谷歌地图上添加加载叠加层
- 当我重新打开图层时,我的谷歌地图会重新加载(并重新集中)
- 传单贴图并不总是加载在同一个WMS图层的中心
- 在Jquery中加载一个图层
- 加载矢量层在OL3与不ajax
- 如何延迟标记加载开放层地图与mapabstraction
- Javascript加载图片源保持页面闪烁
- 使用geokml3在谷歌地图上加载KML层
- 如何在d3中隐藏加载图后的加载图像
- OpenLayers WMS 图层不会加载