我正在尝试了解 openlayers (6.3.1) 上的一些矢量切片逻辑和实现。我有 2 层根本不重叠,导致下面的屏幕截图。我研究了多个示例,但它们只会增加我的技术疑虑,而系统则令人困惑:
- 矢量切片服务器
Tegola 服务器 ( ) ,使用默认选项(以像素为单位gospatial/tegola:v0.10.4
的瓦片?大小源数据和 SQL )256
srid=4326
SQL:FROM XXX.XXX WHERE geom && !BBOX!
服务器层描述在这里:http://tiles.isric.org/capabilities/wosis.json
- 仓库管理服务
仓库管理服务:http://maps.isric.org/mapserv?map=/map/soc.map
- 运行示例
jsfiddle 中的完整代码示例:https ://jsfiddle.net/jorgejesus/vt6qndrw/1/
- 代码部分:
所以对于 tegola 服务器,我有这样的东西:
var tegola_layer = new ol.layer.VectorTile({
source: new ol.source.VectorTile({
format: new ol.format.MVT(),
projection: 'EPSG:4326',
url: 'https://tiles.isric.org/maps/wosis/{z}/{x}/{y}.pbf?debug=true',
tileGrid: new ol.tilegrid.WMTS({
tileSize: [256,256],
resolutions:resolutions, //from above check jsfiddle
origin: [-180,90.0],
})
})
})
对于 WMS:
var wms_layer = new ol.layer.Tile({
source: new ol.source.TileWMS({
projection: 'EPSG:4326',
url: 'http://maps.isric.org/mapserv?map=/map/soc.map',
params: {
'LAYERS':'soc_0-5cm_mean',
crossOrigin: 'anonymous',
'TILED': true
},
})
})
最后是 OL 6 视图:
var map = new ol.Map({
layers: [
tegola_layer,
wms_layer
],
target: 'map',
view: new ol.View({
center: [-76.275329586789, 22.153492567373],
extent: ol.proj.get("EPSG:4326").getExtent(),
zoom: 5,
projection: "EPSG:4326"
})
});
我有下面的图像作为最终的代码结果,西欧享受墨西哥高尔夫的温暖水域会很愉快,但这不是我的目标。
请寻求提示并了解问题所在,我发现矢量切片文档非常分散,我可能对网格有一些误解。