gpt4 book ai didi

javascript - wmts 作为 openlayers 3 中的 basemap (basemap.at)

转载 作者:行者123 更新时间:2023-11-28 04:54:25 24 4
gpt4 key购买 nike

我想在开放图层中使用 wmts map 服务。

wmts层应该是基础层,它应该只显示wmts层,没有别的!

开放层的问题是我只能看到 osm 层而根本看不到 wmts 层。

还是应该使用 getCapabilities?

Wmts-Service

It should look like this

<!DOCTYPE html>
<html>
<head>
<title>openlayers3</title>
<link rel="stylesheet" href="https://openlayers.org/en/v3.19.1/css/ol.css" type="text/css">
<script src="https://openlayers.org/en/v3.19.1/build/ol.js"></script>
</head>
<body>
<div id="map" class="map"></div>
<script>
var projection = ol.proj.get('EPSG:3857');
var projectionExtent = projection.getExtent();
var size = ol.extent.getWidth(projectionExtent) / 256;
var resolutions = new Array(14);
var matrixIds = new Array(14);
for (var z = 0; z < 14; ++z) {
// generate resolutions and matrixIds arrays for this WMTS
resolutions[z] = size / Math.pow(2, z);
matrixIds[z] = z;
}

var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM(),
opacity: 0.7
}),
new ol.layer.Tile({
source: new ol.source.WMTS({
attributions: '&copy; <a href="http://basemap.at" target="_blank">Basemap.at</a>',
url: "https://maps.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
layer: "geolandbasemap",
matrixSet: 'google3857',
format: 'image/png',
projection: projection,
tileGrid: new ol.tilegrid.WMTS({
origin: ol.extent.getTopLeft(projectionExtent),
resolutions: resolutions,
matrixIds: matrixIds
}),
encoding: "REST",
style: 'normal',
wrapX: true,
visibile: true
})
})
],
target: 'map',
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
view: new ol.View({
center: [1799448, 6124949],
zoom: 4
})
}); </script>
</body>
</html>

最佳答案

您可以从 WMTS 功能创建 basemap.at 图层,如 official example 中所示,或者您选择更实用的方法并使用 ol.source.XYZ:

  new ol.layer.Tile({
// extent taken from the Capabilities XML
extent: ol.proj.transformExtent([8.782379, 46.358770, 17.189532, 49.037872], 'EPSG:4326', 'EPSG:3857'),
source: new ol.source.XYZ({
maxZoom: 19,
attributions: [new ol.Attribution({
html: 'Datenquelle: <a href="http://www.basemap.at">basemap.at</a> &copy; <a href="http://creativecommons.org/licenses/by/3.0/at/">CC BY 3.0 AT</a>'
})],
crossOrigin: 'anonymous',
url: '//maps{1-4}.wien.gv.at/basemap/geolandbasemap/normal/google3857/{z}/{y}/{x}.png'
})
})

关于javascript - wmts 作为 openlayers 3 中的 basemap (basemap.at),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40498522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com