Как я могу получить все координаты [z] [x] [y] для области в api mapbox? - PullRequest
0 голосов
/ 28 февраля 2019

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} координат, которые соответствуют api mapbox из определения области lat-lon и ограниченного диапазона масштабирования, как показано выше?

  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 элементов в нем.Как я могу обработать эти латинские координаты (и уровни масштабирования), чтобы извлечь x,y координаты для mapbox?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...