初始化leaflet-image插件时出错

M. *_*iaz 9 javascript leaflet

我有一个示例代码,其中我尝试使用带有一些传单映射的leaflet-image插件但是我在初始化leafletImage时遇到以下错误(相关问题应该在版本0.8中解决,我使用的是1.0.0)

leafletImage(map, function(err, canvas) {});
Run Code Online (Sandbox Code Playgroud)

未捕获的TypeError:layer._adjustTilePoint不是函数(匿名函数)@ leaflet-image.js:87handleTileLayer @ leaflet-image.js:84pop @ leaflet-image.js:201defer @ leaflet-image.js:232drawTileLayer @ leaflet-image .js:23eachLayer @ leaflet.js:6leafletImage @ leaflet-image.js:17abc @(index):127onclick @(index):107

演示

在这里举例说明传单图像

Mar*_*tic 5

您没有使用最新版本的leaflet-image插件.当我查看您提供的代码时,我可以看到:

tiles.forEach(function(tilePoint) {
    var originalTilePoint = tilePoint.clone();

    layer._adjustTilePoint(tilePoint);

    var tilePos = layer._getTilePos(originalTilePoint)
        .subtract(bounds.min)
        .add(origin);

    if (tilePoint.y >= 0) {
        var url = addCacheString(layer.getTileUrl(tilePoint));
        tileQueue.defer(loadTile, url, tilePos, tileSize);
    }
});
Run Code Online (Sandbox Code Playgroud)

但是在GitHub上的最新版插件中,这个更正为:

tiles.forEach(function (tilePoint) {
    var originalTilePoint = tilePoint.clone();

    if (layer._adjustTilePoint) {
        layer._adjustTilePoint(tilePoint);
    }

    var tilePos = layer._getTilePos(originalTilePoint)
        .subtract(bounds.min)
        .add(origin);

    if (tilePoint.y >= 0) {
        if (isCanvasLayer) {
            var tile = layer._tiles[tilePoint.x + ':' + tilePoint.y];
            tileQueue.defer(canvasTile, tile, tilePos, tileSize);
        } else {
            var url = addCacheString(layer.getTileUrl(tilePoint));
            tileQueue.defer(loadTile, url, tilePos, tileSize);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

所以只需包含适当版本​​的插件,一切都会好的.