// 经度转X坐标
int LongToTileX(double lon, int z)
{
return (int)(floor((lon + 180.0) / 360.0 * (1 << z)));
}
// 维度转Y坐标
int LatToTileY(double lat, int z)
{
double latrad = lat * M_PI / 180.0;
return (int)(floor((1.0 - asinh(tan(latrad)) / M_PI) / 2.0 * (1 << z)));
}
// X坐标转经度
double TileX2Long(int x, int z)
{
return x / (double)(1 << z) * 360.0 - 180;
}
// Y坐标转纬度
double TileY2Lat(int y, int z)
{
double n = M_PI - 2.0 * M_PI * y / (double)(1 << z);
return 180.0 / M_PI * atan(0.5 * (exp(n) - exp(-n)));
}
转换后可使用一些地图的网站接口下载地图瓦片
如
https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}