【发布时间】:2014-08-08 08:25:00
【问题描述】:
我想将瓦片 XY 坐标转换为指定细节级别的 QuadKey。
我需要在 Javascript 中执行此操作。为了说明问题,您将在此处找到准确的描述:http://msdn.microsoft.com/en-us/library/bb259689.aspx,您还可以在 C# 中找到该函数。函数名称为:tileXYToQuadKey。
我需要用 Javascript 来实现它。这是我制作的 JSFiddle:
http://jsfiddle.net/cueqzapper/m44bgk1p/
var tileXYToQuadKey = function(tileX, tileY, levelOfDetail)
{
quadKey = 'q';
for (var i = levelOfDetail; i > 0; i--)
{
var digit = 0;
var mask = 1 << (i - 1);
console.log(mask);
if ((tileX & mask) != 0)
{
digit++;
}
if ((tileY & mask) != 0)
{
digit++;
digit++;
}
quadKey += 't' + digit;
}
return quadKey;
}
console.log(tileXYToQuadKey(1,1,2));
但是有些不对劲。当我这样调用函数时: tileXYToQuadKey(1,1,2) 我得到了 qt0t3 。但正确的是 qt0t0,因为坐标 x=1, y=1 的图块显然位于左上角,这意味着它的四键为 00。
我做错了什么?
【问题讨论】:
标签: javascript coordinates quadtree