我想为 OpenSeadragon 创建一个 tilesource,以渲染玩家的游戏视图。世界有坐标(x,y),玩家在一个特定的坐标上,有一个视野范围。
我想要的是为 OpenSeadragon 创建一个 tilesource,它可以显示整个视图。在最大缩放时,1 个图块 = 1 个坐标。所以我有几个问题:如何计算玩家视野范围的最大缩放级别?我如何知道我必须在 OpenSeadragon (x, y, level) 请求的图块中渲染的世界位置?
谢谢 :)
我想为 OpenSeadragon 创建一个 tilesource,以渲染玩家的游戏视图。世界有坐标(x,y),玩家在一个特定的坐标上,有一个视野范围。
我想要的是为 OpenSeadragon 创建一个 tilesource,它可以显示整个视图。在最大缩放时,1 个图块 = 1 个坐标。所以我有几个问题:如何计算玩家视野范围的最大缩放级别?我如何知道我必须在 OpenSeadragon (x, y, level) 请求的图块中渲染的世界位置?
谢谢 :)
如果我理解正确,您正在尝试创建一个自定义 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。
这能回答你的问题吗?