находится ли текущее местоположение в радиусе действия элементов, хранящихся в таблице?
У меня есть таблица, в которой хранится длина/широта/радиус (мили) в строке. Я пытаюсь понять, как выбрать ТОЛЬКО те строки, в которых находится моя текущая точка.
Это противоположно запросу местоположений в пределах заданного радиуса моего текущего местоположения, вместо этого я действительно хочу запросить местоположения, в которых находится моя текущая точка.
Любая помощь здесь была бы весьма признательна.
2 answers
Это простая математическая задача. Расстояние между 2 точками (x1, y1)
и (x2, y2)
можно рассчитать следующим образом:
Простой Пифагор. Запросите свою базу данных, точка один - это точка, которую вы хотите найти, точка два - это та, которую вы получаете из базы данных, если результат приведенного выше утверждения меньше радиуса, он находится в вашем диапазоне. (при условии, что все единицы измерения совпадают. Вы, вероятно, захотите преобразовать разницу в широтах/долготах в км/любую единицу вашего радиуса есть)
Обратите внимание, что если вы хотите получить точный расчет радиуса для хороших старых земных широт/долгот, вам придется использовать более сложные функции, чем простое пифагорейское расстояние, упомянутое в принятом ответе; ищите "расстояние большого круга", как, например, уже опубликовано в другом потоке; однако для ваших целей пифагорейское расстояние должно быть достаточно близко, я думаю; это обеспечивает достаточно хорошее приближение, за исключением случаев, когда ваши координаты широты/долготы где-то рядом с полюсами.
И, просто для полноты, ваша проблема на самом деле не противоположна вопросу "Какие местоположения находятся в определенном радиусе вокруг моего местоположения?" - это то же самое, только с другой стороны - но поскольку вычисления расстояния симметричны, на самом деле не имеет значения, в каком направлении вы проверяете!