2015-08-20 3 views
-1

Я хочу, чтобы все города были близки к моей фактической геолокализации (по GPS) в радиусе X. Хорошим примером является приложение Tinder. Пользователь выбирает значение радиуса в KM, и приложение получает все города, близкие к его геолокализации внутри выбранного радиуса.Как добраться до городов

Я хочу рассчитать радиус и получить все города на javascript или PHP.

Иллюстрация:

enter image description here

+0

Приложение tinder, вероятно, использует какую-то геопространственную базу данных для вычисления таких вещей. Без этого вам понадобится лат/длинный для каждого целевого города и, вероятно, петля над каждым, чтобы получить «большое расстояние на расстоянии» и посмотреть, находится ли в пределах целевого диапазона. Геопространственная база данных индексирует все эти вещи, а затем становится простым запросом. Для обработки пространственных запросов может быть какой-то API Google. –

+0

взгляните на это [http://stackoverflow.com/questions/8135243/finding-towns-within-a-10-mile-radius-of-postcode-google-maps-api](http://stackoverflow. com/questions/8135243/find-towns-in-a-10-mile-radius-of-postcode-google-maps-api) – mdamia

ответ

1

Вы можете скачать базу данных всех городов США, с их состояниями и широты/долготы, то запрос к базе данных на основе текущей информации GPS. Просто поиск Google для БД, они составляют около 30 мегабайт, поэтому убедитесь, что ваши запросы оптимизированы.

Вот дб, который должен работать ... https://www.maxmind.com/en/free-world-cities-database

Если вы можете найти geospacial базы данных было бы работать лучше (не уверен, если связан один или нет). Я использовал не геопространственный, и все было нормально.

+0

Привет, спасибо за ответ. Хорошо, как только у меня есть БД со всеми городами и широтой/долготой, как я должен рассчитать радиус в КМ, чтобы все города были близки мне в этом радиусе? – harleydavi

+0

Теорема Пифагора sqrt (abs (lat1 - lat2)^2 + abs (long1 - long2)^2); https://en.wikipedia.org/wiki/Pythagorean_theorem – Xeridea

+0

Спасибо за ответ. – harleydavi

Смежные вопросы