我正在尝试从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(位于阿拉伯海)。
有人能发现错误吗?
答案 0 :(得分:0)
$ n应该是128,如果是2 ** 7。那么,你的$ n来的是什么?
然后$ lon_deg应该是36/128 * 360 - 180,如果你假设正确的包围/优先级是(36/128)* 360-180,那么根据我的计算,这将是-78.75。这看起来非常接近牙买加......