从tile z/x/y文件名获取lat/long



我正试图从TileMill(缩放/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.的地图块进行计算

计算返回的值与瓷砖覆盖的面积无关。

例如7-36-70(牙买加),返回值16.87561.6063963714(位于阿拉伯海)。

有人能发现哪里出了问题吗?

$n应该是128,如果是2**7。那么,这就是你的n美元的结果吗?

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

最新更新