从tile z / x / y filename获取lat / long

时间:2013-11-19 10:51:51

标签: tilemill

我正在尝试从TileMill生成的maptiles文件名中获取纬度/经度(zoom / x / y)。

使用我正在使用的http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames的信息(PHP实现)

$n = pow(2, $zoom);
$lon_deg = $x / $n * 360.0 - 180.0;
$lat_deg = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $n))));
echo $lat_deg.','.$lon_deg;

从名为z-x-y.png的maptile计算。

计算返回的值与图块覆盖的区域无关。

一个例子是7-36-70(牙买加),其值为16.875,61.6063963714(位于阿拉伯海)。

有人能发现错误吗?

1 个答案:

答案 0 :(得分:0)

$ n应该是128,如果是2 ** 7。那么,你的$ n来的是什么?

然后$ lon_deg应该是36/128 * 360 - 180,如果你假设正确的包围/优先级是(36/128)* 360-180,那么根据我的计算,这将是-78.75。这看起来非常接近牙买加......