Mapbox предоставляет API для загрузки плиток для использования такими инструментами, как Leaflet.API соответствует следующему формату:
https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}
Mapbox также предоставляет оценку плитки для пользовательского региона:
Мыпопытка построить утилиту, которая скажет нам точно, какие плитки потребуются для этого региона, используя уровни масштабирования 3-13.Есть ли способ создать список из {z},{x},{y}
координат, которые соответствуют api mapbox из определения области lat-lon и ограниченного диапазона масштабирования, как показано выше?
- Lat-lon: (-103.5045,33.1959) -> (-93.9244,37.3033)
- Диапазон масштабирования: 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 элементов в нем.Как я могу обработать эти латинские координаты (и уровни масштабирования), чтобы извлечь x,y
координаты для mapbox?