Лучшие практики для физического местоположения пользователя (ввод, тип данных, отображение и проверка) - PullRequest
5 голосов
/ 03 июля 2010

Я создаю веб-приложение, которое требует, чтобы пользователи указывали свое местоположение (аналогично тому, как это делает Facebook). Я не уверен в наилучшем способе реализовать это. Мне требуется возможность поиска в записях другого объекта (назовите его «событиями»), к которым также прикреплено физическое местоположение, и сопоставлять пользователей в том же или достаточно близком месте. Мне требуется разрешение только для отдельных городов.

Способ, которым я позволяю пользователю указать свое местоположение (включая проверку и то, как я бы разрешил этот ввод в произвольной форме), способ хранения этого поля в БД и т. Д., Очевидно, зависит друг от друга. В настоящее время я думаю о том, чтобы разрешить ввод в свободной форме, хранить в виде текстовой строки и сопоставлять, разбивая строку местоположения на массив (разделенный запятыми и символами точки), а затем сравнивая массив местоположений пользователя с массивом местоположений событий. 1003 *

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

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

Ответы [ 2 ]

2 голосов
/ 03 июля 2010

Я думаю, что ваш подход может быть приемлемым в зависимости от требуемой точности.

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

Существуют формулы (и, возможно, библиотеки) для расчета расстояний между координатами относительно друг друга, которые позволят легко отображать вещи в пределах определенного радиуса от координат пользователя и тому подобное.

Вы также можете рассмотреть возможность использования нового API геолокации HTML5 , который поддерживается последними браузерами

0 голосов
/ 03 июня 2012

Если вам нужно сделать что-то вроде «фильтрации пользователей по местоположению», то лучше (я думаю) иметь заранее определенный список местоположений, которые выбирают пользователи (с вводом типа «предложите при вводе» вместонапример, с тысячами локаций).

Вы можете начать с данных с http://www.geonames.org/ (вам, вероятно, потребуется выполнить некоторую очистку).

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

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