Leaflet 如何为具有反向Y坐标的非地理瓷砖网格设置传单?

Leaflet 如何为具有反向Y坐标的非地理瓷砖网格设置传单?,leaflet,Leaflet,我有一个在线游戏,正在我们的游戏服务器上生成地图块。我已经成功地用这些工具生成了一张在线地图,但有些东西总是不太正确 地图分幅存储在分幅/{z}/{x}/{y}模式中,不幸的是,不是从左上角或左下角开始,而是从中间开始,因此x和y可以是负值和正值 我一直在尝试几种方法,每种方法都有很大的缺点。我唯一的成功就是使用了传单0.7.7,在那里,它可以用最少的代码直接运行 这是传单0.7.7的外观 相同的代码、当前传单、乱码y轴和断开的缩放传单1.2 更改的代码,当前传单,良好的下半部分,损坏的缩放

我有一个在线游戏,正在我们的游戏服务器上生成地图块。我已经成功地用这些工具生成了一张在线地图,但有些东西总是不太正确

地图分幅存储在分幅/{z}/{x}/{y}模式中,不幸的是,不是从左上角或左下角开始,而是从中间开始,因此x和y可以是负值和正值

我一直在尝试几种方法,每种方法都有很大的缺点。我唯一的成功就是使用了传单0.7.7,在那里,它可以用最少的代码直接运行

这是传单0.7.7的外观

相同的代码、当前传单、乱码y轴和断开的缩放传单1.2

更改的代码,当前传单,良好的下半部分,损坏的缩放传单1.2

我无法理解这一点,几乎所有可用的帮助都涉及地理资料和预测地理服务等等

我几乎有一个网格的图片从-80,-80到80,80的最大变焦水平。没有转换,就没有翻译。我怎样才能在leflet中展示这一点

如果有人给我指路,我会很感激的

地图分幅以分幅/{z}/{x}/{y}模式存储

不,你错了。tilelayer的tms选项设置为true,这意味着模式是tile/{z}/{x}/{-y}。2016年3月,TMS Tilleayers的行为发生了变化,见

这里的问题是,TMS假设y平铺坐标有一个最大值,这在无限CRS中是不可能的

我建议您重新制作瓷砖,以反转y坐标。否则,可以绕过tilelayer的getTileUrl方法来反转y坐标

var tiles = L.tileLayer('https://panel.chrani.net/tiles/{z}/{x}/{y}.png', {});

tiles.getTileUrl = function(coords) {
  coords.y = -coords.y;
  return L.TileLayer.prototype.getTileUrl.bind(tiles)(coords);
}

var map = new L.Map('leaflet', {
  crs: L.CRS.Simple,
  layers: [tiles],
  center: [0, 0],
  zoom: 0
});

正在调用L.TileLayer.prototype.getTileUrl.bind。。。。。。是有点黑客味,但是。

也需要一个小的偏移调整,至少对于这个磁贴集:coords.y=-coords.y-1磁贴是由游戏提供的,我怀疑他们会改变他们的文件。我得写一个包装纸,没问题。现在,您的“hack”效果很好,确实需要添加@ghybs来进行适当的缩放。非常感谢。