【发布时间】:2014-07-22 18:36:55
【问题描述】:
我需要获取当前可见图块的坐标x/y(其中 x 和 y 是 Leaflet.js 用来查询对应 url 的坐标,x/y/z 用于图块)。
我想在不启用unloadInvisibleTiles 选项的情况下找到解决方案。
唯一的方法是通过getPixelBounds()吗?
编辑: 添加了一个示例gist。
【问题讨论】:
标签: javascript maps leaflet
我需要获取当前可见图块的坐标x/y(其中 x 和 y 是 Leaflet.js 用来查询对应 url 的坐标,x/y/z 用于图块)。
我想在不启用unloadInvisibleTiles 选项的情况下找到解决方案。
唯一的方法是通过getPixelBounds()吗?
编辑: 添加了一个示例gist。
【问题讨论】:
标签: javascript maps leaflet
据我所知,你必须通过getPixelBounds()
您可以使用以下代码枚举它们:xTile 和 yTile 是您要查找的内容
// get bounds, zoom and tileSize
var bounds = map.getPixelBounds();
var zoom = map.getZoom();
var tileSize = 256;
// get NorthWest and SouthEast points
var nwTilePoint = new L.Point(Math.floor(bounds.min.x / tileSize),
Math.floor(bounds.min.y / tileSize));
var seTilePoint = new L.Point(Math.floor(bounds.max.x / tileSize),
Math.floor(bounds.max.y / tileSize));
// get max number of tiles in this zoom level
var max = map.options.crs.scale(zoom) / tileSize;
// enumerate visible tiles
for (var x = nwTilePoint.x; x <= seTilePoint.x; x++) {
for (var y = nwTilePoint.y; y <= seTilePoint.y; y++) {
var xTile = (x + max) % max;
var yTile = (y + max) % max;
console.log('tile ' + xTile + ' ' + yTile);
}
}
【讨论】:
getPixelBounds 似乎在最新版本中没有出现(version: "0.37.0").. 所以这个答案已被弃用。有什么解决方法吗?