находится ли текущее местоположение в радиусе действия элементов, хранящихся в таблице?


У меня есть таблица, в которой хранится длина/широта/радиус (мили) в строке. Я пытаюсь понять, как выбрать ТОЛЬКО те строки, в которых находится моя текущая точка.

Это противоположно запросу местоположений в пределах заданного радиуса моего текущего местоположения, вместо этого я действительно хочу запросить местоположения, в которых находится моя текущая точка.

Любая помощь здесь была бы весьма признательна.

Author: Shae Petersen, 2011-12-02

2 answers

Это простая математическая задача. Расстояние между 2 точками (x1, y1) и (x2, y2) можно рассчитать следующим образом:

statement

Простой Пифагор. Запросите свою базу данных, точка один - это точка, которую вы хотите найти, точка два - это та, которую вы получаете из базы данных, если результат приведенного выше утверждения меньше радиуса, он находится в вашем диапазоне. (при условии, что все единицы измерения совпадают. Вы, вероятно, захотите преобразовать разницу в широтах/долготах в км/любую единицу вашего радиуса есть)

graph

 5
Author: Madara Uchiha, 2011-12-02 13:19:36

Обратите внимание, что если вы хотите получить точный расчет радиуса для хороших старых земных широт/долгот, вам придется использовать более сложные функции, чем простое пифагорейское расстояние, упомянутое в принятом ответе; ищите "расстояние большого круга", как, например, уже опубликовано в другом потоке; однако для ваших целей пифагорейское расстояние должно быть достаточно близко, я думаю; это обеспечивает достаточно хорошее приближение, за исключением случаев, когда ваши координаты широты/долготы где-то рядом с полюсами.

И, просто для полноты, ваша проблема на самом деле не противоположна вопросу "Какие местоположения находятся в определенном радиусе вокруг моего местоположения?" - это то же самое, только с другой стороны - но поскольку вычисления расстояния симметричны, на самом деле не имеет значения, в каком направлении вы проверяете!

 1
Author: codeling, 2017-05-23 12:03:38