Как запросить Mysql на основе столбцов широты и долготы GPS на основе относительного расстояния - PullRequest
2 голосов
/ 10 июня 2011

В приложении, которое я создаю, я хочу, чтобы пользователи могли легко находить людей вокруг себя.Я использую GPS, чтобы получить широту и долготу, затем сохраняю эту информацию в базе данных mysql вместе с другой информацией пользователя под столбцом для широты, а другой - для долготы.Что было бы лучше, чтобы сделать запрос, который смотрит на человека, который делает информацию запроса ... и затем он находит ближайшую возможную привязку широты и долготы, затем начинает там и ограничивает ее 24 результатами?И кроме того, как бы я запомнил, где он остановился, чтобы я мог позволить другому запросу начать с того места, где он остановился, и возвращать больше, получая все дальше и дальше

По сути, чтобы обобщить, как я могу выполнить запрос mysql, который начинается каккак можно ближе к двум точкам широты и долготы, которые я предоставляю, а затем получить следующие 24 отсортированные по ближайшему к дальнему?

Я чувствую, что это будет трудно сделать, потому что он основан на 2 столбцах,Есть ли способ, которым я должен / мог бы объединить значения GPS в 1 столбец, чтобы было легко найти относительное расстояние?

Может быть, я мог бы как-то получить почтовый индекс (но тогда это может вызвать проблемы не в США),Я не уверен.Я застрял.

Ответы [ 2 ]

2 голосов
/ 10 июня 2011

Просто найдите «Формула Haversine» здесь, в Stackoverflow, и вы найдете несколько связанных вопросов.

0 голосов
/ 11 июня 2011

Как уже упоминал @cdonner, для формулы Haversine есть ряд ресурсов, которые вы используете для преобразования широты и долготы в расстояние. Вы должны передать переменную расстояния, основанную на том, как настроена ваша формула, обычно на основе миль, и выполнить свой запрос, начиная с ближайшего радиуса. Используя цикл php, вы можете просто увеличить расстояние и повторять запрос, пока не получите желаемое количество результатов. И проверьте, что ссылка Google re @ Maleck13 также очень полезна.

...