谷歌地图层行列是以左上角为原点,瓦片编号是向右和向下,没有负数。
谷歌是从左上角经纬度(-180,90)度开始计算瓦片,在第0级时谷歌将世界地图分为1块,第1级的时候分为4块。
层zoom(z),列col(x),行row(y)
如何在已知层行列情况计算出该瓦片对应的经纬度坐标,和已知经纬度情况下计算该点在不同层级下的瓦片位置,以左上角为原点。
/**
* 谷歌下转换经纬度对应的层行列
*
* @param lon 经度
* @param lat 维度
* @param zoom 在第zoom层进行转换
* @return
*/
public static int[] GoogleLonLatToXYZ(double lon, double lat, int zoom) {
double n = Math.pow(2, zoom);
double tileX = ((lon + 180) / 360) * n;
double tileY = (1 - (Math.log(Math.tan(Math.toRadians(lat)) + (1 / Math.cos(Math.toRadians(lat)))) / Math.PI)) / 2 * n;
int[] xy = n