текущее местоположение в радиусе элементов, хранящихся в таблице? - PullRequest
3 голосов
/ 02 декабря 2011

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

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

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

Ответы [ 2 ]

5 голосов
/ 02 декабря 2011

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

statement

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

graph

1 голос
/ 02 декабря 2011

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

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

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