Leaflet 如何对多个平铺使用唯一的PNG?

Leaflet 如何对多个平铺使用唯一的PNG?,leaflet,Leaflet,我想使用一个离线地图与传单,所以我使用PNG为我的瓷砖。 我想为水使用一个独特的图像,所以我不需要有很多相同的PNG 文件是这样存储的 myMap/z/x/y.png z表示缩放级别,x和y表示坐标 我想我可以很容易地得到所有水砖的z,x和y。 我只想知道是否有可能告诉传单,如果一个具有相同z、x和y的平铺比数组中的一个(或map或其他东西)更大,它将显示myMap/water.png。如果您了解如何操作,这很容易做到。对于这种特殊情况,您需要一个getTileUrl方法,该方法在满足某些条件时

我想使用一个离线地图与传单,所以我使用PNG为我的瓷砖。 我想为水使用一个独特的图像,所以我不需要有很多相同的PNG

文件是这样存储的 myMap/z/x/y.png z表示缩放级别,x和y表示坐标

我想我可以很容易地得到所有水砖的z,x和y。
我只想知道是否有可能告诉传单,如果一个具有相同z、x和y的平铺比数组中的一个(或map或其他东西)更大,它将显示myMap/water.png。

如果您了解如何操作,这很容易做到。对于这种特殊情况,您需要一个
getTileUrl
方法,该方法在满足某些条件时返回相同的磁贴,例如:

L.TileLayer.RepeatedWater = L.TileLayer.extend({
    getTileUrl: function(coords) {

        if ( checkIfTheseCoordsAreInTheWater(coords) ) {
            return "/tiles/water.png";
        } else {
            return L.TileLayer.prototype.getTileUrl.call(this, coords);
        }
    }
});

请注意,还存在其他方法。特别是,要截获对磁贴的所有网络请求,请检查它们的URL是否超出范围或不可用(或其他),并在这种情况下从“默认水”磁贴返回缓存响应。

如果您了解如何操作,这很容易做到。对于这种特殊情况,您需要一个
getTileUrl
方法,该方法在满足某些条件时返回相同的磁贴,例如:

L.TileLayer.RepeatedWater = L.TileLayer.extend({
    getTileUrl: function(coords) {

        if ( checkIfTheseCoordsAreInTheWater(coords) ) {
            return "/tiles/water.png";
        } else {
            return L.TileLayer.prototype.getTileUrl.call(this, coords);
        }
    }
});

请注意,还存在其他方法。特别是,要截获所有对磁贴的网络请求,请检查它们的URL是否超出范围或不可用(或其他),并从“默认水”磁贴返回缓存响应。

谢谢您的回答,我还有一个问题要问。如何将此功能与本机缩放功能相结合?例如,我没有缩放级别5,所以我在第一层上放了一个本机缩放到4,并在缩放6时切换到第二层。有没有可能用定制的贴片机来复制呢?谢谢你的回答,我还有一个问题要问。如何将此功能与本机缩放功能相结合?例如,我没有缩放级别5,所以我在第一层上放了一个本机缩放到4,并在缩放6时切换到第二层。是否可以用定制瓷砖层复制这种效果?