如何获得目前可见的瓷砖坐标?

时间:2014-07-22 18:36:56

标签: javascript maps leaflet

我需要得到x/y(其中x和y是leaflet.js使用的坐标,用于查询相应的网址,其中x/y/z用于平铺)当前可见切片的坐标。

我想在没有启用unloadInvisibleTiles选项的情况下找到解决方案。

唯一的方法是通过getPixelBounds()

修改: 添加了示例gist

1 个答案:

答案 0 :(得分:3)

据我所知,你必须经过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);
    }
}