我正在将一些遗留代码从Leaflet 0.7.7移到Leaflet 1.2.0。有一个自定义的TileLayer可以覆盖getTileUrl()。在1.2.0中,坐标缩放到0.7.7的一半。这对使用该服务查询切片造成了问题。
以下是getTileUrl()的现有实现:
getTileUrl: function (tilePoint) {
var imgType = "png",
yHex = tilePoint.y.toString(0x10),
xHex = tilePoint.x.toString(0x10),
yPath = 'R' + this.padString(yHex, 8, '0').toUpperCase(),
xPath = 'C' + this.padString(xHex, 8, '0').toUpperCase() + '.' + imgType,
z = (tilePoint.z + 1),
zL = 'L'+ (z<10?'0':'')+ z,
final_url = this._url +zL+"/"+ yPath + "/" + xPath;
return final_url;
}
只是将x和y值加倍不起作用。 Leaflet中是否有一些机制可以纠正这种情况,例如内部坐标的乘数?无法找到用于将此类事件从0.7.7移动到1.2.0的良好资源。
以下是一个例子:
在0.7.7中,我使用中心位置[38.854699,-94.797763]
这个tilePoint为{x:7755,y:12540,...}
在1.2.0中具有相同的中心位置时,该点为{x:3877,y:6270,...}
因此它明显减少了0.7.7中使用的旧值。
答案 0 :(得分:0)
这个tilePoint为{x:7755,y:12540,...}
在1.2.0中具有相同的中心位置时,该点为{x:3877,y:6270,...}
仔细观察,这些坐标会加倍。这意味着缩放级别存在一个逐个错误(因为x
和y
平铺坐标基本上是每个缩放级别的两倍)。您应该尝试删除z = (tilePoint.z + 1)
偏移量,或以其他方式摆弄它以查看拼贴坐标是否卡入到位。