Leaflet: tms 选项在 1.0 中被忽略了吗?

创建于 2016-09-28  ·  3评论  ·  资料来源: Leaflet/Leaflet

我正在使用由 gdal 生成的自定义磁贴。 在 1.0 中,图块在放大后会在 y 轴上反转。 我尝试将tms从真切换{-y}功能(删除了 tms 选项),但它引发了“没有为变量 {-y} 提供值”错误。

在摆弄了一段时间后,我引用了 0.6.4 而不是 1.0,一切正常。

顺便说一句,指向 0.7.7 的 CDN 链接似乎已关闭: http ://cdn.leafletjs.com/leaflet-0.7.7/leaflet.js

链接https://unpkg.com/[email protected]/dist/leaflet.js for 1.0

var map = L.map('map', {
            crs: L.CRS.Simple,
            center: L.latLng(-128, 128),
            zoom: -2
        });
        L.tileLayer('/map/{z}/{x}/{y}.png', {
            noWrap: true,
            attribution: 'WW',
            detectRetina: false,
            bounds: L.latLngBounds(
                L.latLng(-256, 0),
                L.latLng(0, 256)
            ),
            tms: true,
            minZoom: 0,
            maxZoom: 4
        }).addTo(map);

所有3条评论

对我有用,请参阅

下次,查看WMS/TMS 教程,其中包含 TMS 的工作示例,并像实际的错误报告一样制定错误报告。

是的,我已经阅读了那个(以及所有教程),但这并不真正适用于与 TMS 结合使用的自定义磁贴。 最接近的教程是http://leafletjs.com/examples/crs-simple/crs-simple.html。 作为一个有点深奥的话题,我希望得到指导。 下次我会在 Stackoverflow 上问,我的错。

对于任何其他试图让 CRS.Simple 使用 GDAL 生成的平铺工作的人来说,这个问题似乎是由这段代码引起的

if (this._map && !this._map.options.crs.infinite) {
            var invertedY = this._globalTileRange.max.y - coords.y;
            if (this.options.tms) {
                data['y'] = invertedY;
            }
            data['-y'] = invertedY;
        }

y永远不会反转,因为infinite在 CRS.Simple 中设置为 true。 使用infinite = false 创建CRS.Simple 的自定义副本可以解决我的情况。

此页面是否有帮助?
0 / 5 - 0 等级