OpenLayers2 WMS 图层和叠加层,连官方样本都坏了?
OpenLayers2 WMS layers and overlay, even official samples are broken?
我正在使用需要 OL2 的库(遗憾的是,我希望我可以使用 OL3,但这不是一个选项)。
我需要的是显示不同的 WMS 基础图层和一些其他 WMS 叠加层。
重点是,我不明白我做错了什么。这个库应该给我一个 ol.wms 层,但它不起作用。我试图了解这个东西是如何工作的,但即使官方网站上的文档和示例也被破坏了。
一些示例:
- http://dev.openlayers.org/examples/wrapDateLine.html
- http://dev.openlayers.org/examples/getfeature-wfs.html
- http://dev.openlayers.org/examples/tilecache.html
- http://dev.openlayers.org/examples/wms-long-url.html
在我看来,这些示例已经过时(我在 firefox 40、chrome 45,甚至 IE11 上试过......)这是可以理解的,因为它是一个已有 2 年历史的库,但我很遗憾地需要它们.
任何人都可以指出更新的示例(如果有)吗?
是的,大多数样本都损坏了,因为它们 link 到 WMS 不可用的资源(至少在撰写本文时)。
示例将使用其他资源。
map = new OpenLayers.Map('map');
var ol_wms = new OpenLayers.Layer.WMS("OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0", {
layers: "basic"
});
var bmTiles = new OpenLayers.Layer.XYZ(
"Geodab Map",
["http://tiles.geodab.eu/geodab-tiles/tile/bluemarble/${z}/${x}/${y}.png"],
{
numZoomLevels: 10
});
map.addLayers([ol_wms, bmTiles]);
var extent = new OpenLayers.Bounds(4, 32, 22, 55);
map.zoomToExtent(extent, true);
我正在使用需要 OL2 的库(遗憾的是,我希望我可以使用 OL3,但这不是一个选项)。
我需要的是显示不同的 WMS 基础图层和一些其他 WMS 叠加层。
重点是,我不明白我做错了什么。这个库应该给我一个 ol.wms 层,但它不起作用。我试图了解这个东西是如何工作的,但即使官方网站上的文档和示例也被破坏了。
一些示例:
- http://dev.openlayers.org/examples/wrapDateLine.html
- http://dev.openlayers.org/examples/getfeature-wfs.html
- http://dev.openlayers.org/examples/tilecache.html
- http://dev.openlayers.org/examples/wms-long-url.html
在我看来,这些示例已经过时(我在 firefox 40、chrome 45,甚至 IE11 上试过......)这是可以理解的,因为它是一个已有 2 年历史的库,但我很遗憾地需要它们.
任何人都可以指出更新的示例(如果有)吗?
是的,大多数样本都损坏了,因为它们 link 到 WMS 不可用的资源(至少在撰写本文时)。
示例将使用其他资源。
map = new OpenLayers.Map('map');
var ol_wms = new OpenLayers.Layer.WMS("OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0", {
layers: "basic"
});
var bmTiles = new OpenLayers.Layer.XYZ(
"Geodab Map",
["http://tiles.geodab.eu/geodab-tiles/tile/bluemarble/${z}/${x}/${y}.png"],
{
numZoomLevels: 10
});
map.addLayers([ol_wms, bmTiles]);
var extent = new OpenLayers.Bounds(4, 32, 22, 55);
map.zoomToExtent(extent, true);