gpt4 book ai didi

javascript - 在 Openlayers 3 中,为什么 TMS y 坐标为负值?

转载 作者:行者123 更新时间:2023-11-27 22:41:16 27 4
gpt4 key购买 nike

我一直在使用 openlayers 3、3.17.1 来绘制一些自定义图 block ,我注意到传递给我的 ol.source.UrlTile 子类的 getTile 方法的 y 坐标是负值。为什么?

编辑:这是查看我所看到的内容的方法

var MyVectorTile = function (options) { 
ol.source.VectorTile.call(this, options);
this.customOption_ = options.customOption;
};
ol.inherits(MyVectorTile, ol.source.VectorTile);
MyVectorTile.prototype.getTile = function (z, x, y, pixelRatio, proj) {
console.log(z, x, y);
return ol.source.VectorTile.prototype.getTile.call(this, z, x, y, pixelRatio, proj);
}

这是查看它的另一种方法 - 将此图层添加到您的 map

new ol.layer.Tile({
visible: true,
preload: 16,
source: new ol.source.TileDebug({
projection: "EPSG:3857",
tileGrid: new ol.tilegrid.createXYZ({
maxZoom: 22
}),
color: 'rgba(255,204,0,1)'
}),
title: 'Ol3 Tile Debug'
});

最佳答案

在使用 JavaScript 调试器检查 ol3 后,我最好的猜测是,这些是内部坐标,ol.source.TileDebug 将显示它们不变。

在函数ol.TileUrlFunction.createFromTemplate中有this part

var y = -tileCoord[2] - 1;

据我所知,这会将负 y 坐标更改为正坐标,并将其插入图 block URL 中的 {y} 占位符中(它们通过以下方式调用 URL):占位符"template"),我尝试使用 OpenStreetMap 图 block 并且输入和输出匹配。

但是

ol.source.TileDebug 不会执行此函数(没有"template"URL,即使您指定一个该函数也不会被调用),并且只会打印这些内部坐标在屏幕上。

关于javascript - 在 Openlayers 3 中,为什么 TMS y 坐标为负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38730404/

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