我有一个在我们的游戏服务器上生成 Map 图块的在线游戏 . 我在实际生成在线 Map 方面取得了一些成功,但事情总是不太正确 .
Map 图块以tile / / / 图案存储,遗憾的是,不是从左上角或左下角开始,而是在中心,因此x和y可以是负值和正值 .
我一直在尝试几种方法,每种方法都有很大的缺点 . 我唯一的成功就是使用了传单0.7.7,它开箱即用,只需要很少的代码 .
这是它应该如何看(传单0.7.7)https://panel.chrani.net/map.php
相同的代码,当前的传单,乱码的y轴和破碎的缩放(传单1.2)https://panel.chrani.net/map2.php
改动的代码,当前的传单,良好的下半部分,破碎的缩放(传单1.2)https://panel.chrani.net/map5.php
我不能对此做出正面或反面,几乎所有可用的帮助都是指地理资料和投影地理服务等等 .
我有几乎从-80开始的图片网格,-80在最大缩放级别上达到80,80 . 没有变换,没有翻译 . 我怎样才能在leflet中表现出来?
我会很感激任何关于在哪里寻找的指针 .
1 回答
不,你错了 . 您的tilelayer将
tms
选项设置为true
,这意味着该模式为tile/{z}/{x}/{-y}
. 2016年3月更改了TMS tilelayers的行为,请参阅https://github.com/Leaflet/Leaflet/issues/4338 .这里的问题是TMS假设
y
tile坐标有一个最大值,这是无法使用无限CRS的 .我建议您重新设置切片以反转
y
坐标 . 否则,可能会破解tilelayer的getTileUrl
方法以反转y
坐标 .调用
L.TileLayer.prototype.getTileUrl.bind(...)(...)
是hackish,但the whole hack works .