如何获取Mapbox API中某个区域的所有[z] [x] [y]坐标?

时间:2019-02-27 21:44:44

标签: c# mapbox

Mapbox提供了一个API,可下载供诸如Leaflet之类的工具使用的图块。 api遵循以下格式:

https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}

Mapbox还为自定义区域提供了切片估算器:

Tile Estimator

我们正在尝试构建一个实用程序,该实用程序将使用缩放级别3-13准确告诉我们该区域需要哪些图块。是否有一种方法可以生成一个{z},{x},{y}坐标的列表,该坐标与纬度区域定义和有限的缩放范围(如上所示)相关联于mapbox的api?

  1. Lat-lon:(-103.5045,33.1959)->(-93.9244,37.3033)
  2. 缩放范围:3-13

我不知道mapbox的z,x,y系统如何与真实的纬度坐标(和缩放级别)相关联。在示例中查看网络请求时,确实看到了z变量,范围为3-13,但是x,y变量无处不在。

理想情况下,该函数应如下所示:

List<ZXYCoord> getAllCoordinates(long lat1, long lon1, long lat2, long lon2, int minZ, int maxZ)
{
    var list = new List<ZXYCoord>();
    int z = minZ;
    while (z <= maxZ)
    {
        //DO SOMETHING HERE TO GET ALL (x,y) COORDINATES FOR THIS Z-LEVEL AND ADD TO LIST
        //...
        z++;
    }
    return list;
}
class ZXYCoord
{
    public int x;
    public int y;
    public int z;
}

上面显示的估算器显示该区域大约有34,000个图块,因此我希望此函数与此相关。考虑到这些延迟的坐标,我希望其中包含约34,000个项目。如何处理那些经纬度坐标(和缩放级别)以提取Mapbox的x,y坐标?

0 个答案:

没有答案