2014-08-28 3 views
0

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

Как это сделать?

например:

КРАСНЫЙ пользователь.

ГОЛУБОЙ - радиус.

GREEN - мой магазин.

BLACK - это расстояние.

мой магазин находится в 10 км от пользователя (но не на 2 км от пользователя).

Радиус будет установлен пользователем (с помощью стрелки).

enter image description here

+1

Ну, вам нужно измерить расстояние между координатами 2 gps вправо? Вам также понадобится позиция пользователя. Я полагаю, вы знаете, где ваш магазин уже ... Итак, начните. Посмотрите формулу расстояния между координатами gps. Если это расстояние меньше значения строки поиска, сделайте что-нибудь. Чтобы получить дополнительную помощь, вам нужно будет подробнее рассказать о своих источниках данных, показать, что вы уже пробовали, и т. Д. –

+2

+1 для почерка MSPaint – admdrew

+0

@William Morrison, yes.suppose У меня есть несколько магазинов, найдя ближайший мой магазины от пользователей, я хотел бы показать свои услуги от каждого магазина до пользователя. есть идеи? –

ответ

3

Создание веб-сервис, который будет считывать информацию о каждом из ваших магазинов из базы данных, и предоставить эту информацию для клиента в некотором стандартном формате (XML или JSON является типичным.) Эта информация будет включать в себя адрес, номер телефона, GPS-координаты, доступные услуги, часы работы и т. д.

Далее, получите координаты gps пользовательского клиента. Затем запросите свою веб-службу у пользовательского клиента. Наконец, измерьте расстояние между координатами gps каждого магазина и координатами gps клиента с помощью haversine formula.

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

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

+1

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

+0

@MattGibson благодарит за разработку, вот что я получал в своем последнем абзаце там. Теперь я вижу, что я недостаточно ясен. Конечно, пространственное разбиение не будет на стороне клиента в этом сценарии. Это глупо. –