поиск по близости google map - PullRequest
3 голосов
/ 28 февраля 2012

Я использую карту Google v3 для захвата всех адресов в таблице базы данных MS SQL под названием Locations, в которой будут столбцы, такие как LocationName, LocationAddress, LocationZip, LocationState, LocationCity, LocLatitude, LocLongitude и LocationType (например, больница, кабинет врача или аварийная ситуация).центры и т. д.).

У меня есть поле ввода, в котором пользователи могут выполнять поиск по ключевому слову, и раскрывающийся список с опцией радиуса 5,10, 20 и 50 миль.Я смог использовать поле ввода и передать набранное ключевое слово в качестве строки запроса для поиска всех соответствующих местоположений и маркеров для них в google map api 3. Мне также нравится выполнять поиск близости по сопоставленным результатам, например, в пределах 5 мильскажем Лос-Анджелес ..

можно ли использовать метод, использованный на этом сайте?http://maps.huge.info/dragcircle2.htm

Рисуется радиус в 5 миль, мне нужно в значительной степени захватить все маркеры в этом радиусе?Пожалуйста, некоторые гениальные ребята из Google Map, дайте мне несколько советов ..

1 Ответ

3 голосов
/ 28 февраля 2012

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

SELECT
  address,
  name,
  lat,
  lng,
  (
    3959 * acos(
      cos( radians('%s') ) * cos( radians( lat ) )
      *
      cos( radians( lng ) - radians('%s') )
      +
      sin( radians('%s') )
      *
      sin( radians( lat ) )
    )
  ) AS distance 
FROM markers 
HAVING distance < '%s' 
ORDER BY distance 
LIMIT 0 , 20

Он использует тригонометрию!

...