//1.高德 道路图层地址
//http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x=105&y=48&z=7
//其中 x =105 y = 48 zoom = 7
//java 算法
//将tile(瓦片)坐标系转换为lnglat(地理)坐标系
//其中title 在java中是实体类 他里面包含了 瓦片地址 xyz
/* double n = Math.pow(2, tile.getZoom()); double lng = tile.getX() / n * 360.0 - 180.0; double lat = Math.atan(Math.sinh(Math.PI * (1 - 2 * tile.getY() / n))); lat = lat * 180.0 / Math.PI; */
//PHP算法
$n = pow(2,$zoom);
$lng= $x/$n*360-180;
$lat = atan(sinh(pi()*(1-2*$y/$n)));
$lat = $lat*180/pi();
$n = pow(2,7); $lng = 105/$n*360-180; //精度 echo $lng; echo "<br />"; $lat = atan(sinh(pi()*(1-2*48/$n))); $lat = $lat*180/pi(); echo $lat;
//将lnglat地理坐标系转换为tile瓦片坐标系
//java算法
/* double n = Math.pow(2, zoom); double tileX = ((lnglat.getLng() + 180) / 360) * n; double tileY = (1 - (Math.log(Math.tan(Math.toRadians(lnglat.getLat())) + (1 / Math.cos(Math.toRadians(lnglat.getLat())))) / Math.PI)) / 2 * n; */
//PHP算法
$n = pow(2,$zoom);
$titleX = (($lng+180)/360)*$n;
$titleY = (1-(log(tan(deg2rad($lat))+(1/cos(deg2rad($lat))))/pi()))/2*$n;
echo "<br />"; $n = pow(2,7); $titleX = (($lng+180)/360)*$n; echo $titleX; //105 // deg2rad 将角度变为弧度 $titleY = (1-(log(tan(deg2rad($lat))+(1/cos(deg2rad($lat))))/pi()))/2*$n; echo "<br />"; echo $titleY; //48