как найти координаты плитки следующих 5 нижних уровней с помощью quadtree

Это относится к мозаичному отображению карты с использованием дерева квадрантов.

Клиент предоставит (самый высокий уровень масштабирования, строка, столбец)

Не могли бы вы сообщить мне, как найти координаты плитки следующих нижних 5 уровней?

(уровень масштабирования, строка, столбец)??


person user3138452    schedule 06.01.2014    source источник


Ответы (1)


Если вы работаете со строкой, столбцом и уровнем масштабирования, вы можете легко определить плитки на следующем уровне масштабирования. При изменении уровня масштабирования одна плитка разбивается на 4 плитки. Если уровень масштабирования увеличивается на единицу, то строк и столбцов плитки становится вдвое больше. Таким образом, чтобы получить 4 плитки, на которые разбита плитка, вы можете легко рассчитать это следующим образом:

tile1: row*2, col*2 tile2: row*2+1, col*2 tile3: row*2, col*2+1 tile4: row*2+1, col*2+1

Мы также знали бы, что уровень масштабирования = масштабирование+1. Используя эту информацию, вы можете затем вычислить значения quadkey для каждой плитки, используя код, задокументированный здесь: http://msdn.microsoft.com/en-us/library/bb259689.aspx

person rbrundritt    schedule 14.01.2014
comment
Мой метод основан на проекции Меркатора, которая используется Bing Maps. Не уверен, почему вы проголосовали против этого. Это проверенный метод, который я использовал много раз раньше. Кроме того, у меня есть 7-летний опыт работы с деревом Quadkey в Bing Maps. Я в команде Bing Maps :) - person rbrundritt; 14.01.2014
comment
Дерево quadkey довольно простое. Каждый уровень масштабирования в два раза превышает уровень масштабирования перед ним. Итак, если у вас есть строка, столбец и уровень масштабирования плитки и вы хотите узнать, на какие четыре плитки она разбивается на следующем уровне масштабирования, вы можете просто умножить значение строки и столбца на 2, чтобы получить первую плитку. Следующие три будут одной плиткой вправо, одной плиткой вниз и одной плиткой влево+вправо. Все это основано на этом документе: msdn.microsoft.com/en-us/ библиотека/bb259689.aspx - person rbrundritt; 14.01.2014
comment
Например, возьмите тайл с quadkey 2, как показано в этом документе. Это строка 1, столбец 0 и масштаб 1. На уровне масштабирования 2 мы можем использовать формулы, которые я предоставил, для расчета плиток. tile1: row 2, col 0, tile2: row 3, col 0, tile3: row 2, col 1, tile4: row 3, col 1. И уровень масштабирования будет равен 2. Если вы посмотрите на пример изображения в документации . - person rbrundritt; 14.01.2014
comment
Правильно, вы начинаете с верхнего левого угла. Это будет работать с большинством других API-интерфейсов карт, которые используют ту же схему тайлов квадродерева. Обратите внимание, что некоторые API сопоставления используют X, Y Z вместо значения квадроключа для идентификации плиток. X = столбец, Y = строка, Z = уровень масштабирования - person rbrundritt; 15.01.2014
comment
Когда у вас есть информация о столбце, строке и масштабе плитки, значение quadkey можно легко рассчитать с помощью кода, представленного в документации, о которой я упоминал ранее. - person rbrundritt; 16.01.2014
comment
Моя нумерация совпадает с нумерацией в документации, которую я предоставил. - person rbrundritt; 17.01.2014