Получить все точки в пределах данного радиуса, используя квадрик - PullRequest
0 голосов
/ 23 сентября 2018

Я новичок в ГИС-концепциях и узнаю о Quadkeys и их использовании.

Я вставляю несколько точек со своим четырехугольником в БД и хочу получить все точки в пределах указанного радиуса с помощью четырехугольников.

Предположим, у меня есть точка (46,46), чья четырехугольная клавиша на уровне масштабирования 23 равна 12122022101301320022121 (по этой ссылке)

Теперь я хочу найти все точки в БД, которые находятся в радиусе100 км до контрольной точки, скажем (47,47)

Моя идея в том, чтобы использовать заданное расстояние (100 км), чтобы найти уровень масштабирования, сформировать квадрик для (47,47) с этим уровнем и выполнить запросБД с этим ключом для извлечения всех ключей с указанным префиксом.

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

Как эффективно рассчитать этот уровень масштабирования?Это правильный способ сделать?Или есть лучший способ справиться с этим с помощью quadkeys.

1 Ответ

0 голосов
/ 01 октября 2018

Использование Quadkeys для запросов к базе данных является интересной идеей.Особенно, когда я знаю, на какие плитки вы нацеливаетесь.

Однако я бы просто искал расстояние, чтобы получить предметы.STDistance (https://docs.microsoft.com/en-us/sql/t-sql/spatial-geography/stdistance-geography-data-type?view=sql-server-2017) для поиска объектов на расстоянии. Если у вас есть проблемы с производительностью, убедитесь, что вы используете пространственный индекс для производительности.

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