我想为OpenSeadragon创建一个tilesource,以呈现玩家对游戏的看法。 世界有坐标(x,y),玩家在特定的坐标上,有视图范围。
我想要的是为OpenSeadragon创建一个可以显示整个视图的tilesource。在最大变焦时,1个tile = 1个coord。 所以我有几个问题: 如何为玩家的视图范围计算最大缩放级别? 如何知道我必须在OpenSeadragon(x,y,level)请求的图块中渲染的世界位置?
谢谢:)
答案 0 :(得分:1)
如果我理解正确,您正在尝试创建自定义TileSource,您可以从一组标准图块中加载,构成游戏地图的构建块。如果需要,您可以指定最大级别是它尝试加载的唯一级别(通过使minLevel和maxLevel相同),因此您不必处理生成切片组合。这使getTileUrl(level, x, y)
变得容易,因为您只需处理1:1图层。这留下了什么是最高级别的问题。如下所述:
http://openseadragon.github.io/docs/OpenSeadragon.TileSource.html
......公式是:
默认情况下,图像金字塔被分为N层,其中图像最长边为M(以像素为单位),其中N是满足2 ^(N + 1)> = M的最小整数。
基本上你只需计算2的幂,直到你达到图像的大小。因此,如果您的图像在一侧为1像素,则您的最大级别为0.如果它的一侧为2像素,则您的最高级别为1,4 = 2,8 = 3等。
让我们说你的tileSize是100像素,地图是5x7瓷砖。这意味着最长尺寸为700像素。看看2的功率,700大于512且小于1024,所以我们使用1024. 1024是2的10次方,所以你的最大级别是10。
这会回答你的问题吗?