Найти ближайший город по GPS координатам - алгоритм - PullRequest
0 голосов
/ 03 ноября 2019

Мне даны координаты моего местоположения (55.1858, -162.7211). Я хотел бы найти город, в котором я нахожусь (или рядом), если он существует в моем наборе данных. Набор данных (десятки тысяч координат) содержит все города, которые меня интересуют, и одну или несколько координат, соответствующих этому городу (в зависимости от размера города):

Cold Bay, Alaska, 55.1858,-162.7211
False Pass, Alaska,54.8542,-163.4113
King Cove, Alaska, 55.0628,-162.3056
...

Какой лучший алгоритм(желательно на JavaScript), чтобы найти город, в котором я нахожусь (без использования API, Google Maps и т. д.)?

У меня было несколько идей, но они, вероятно, не самые лучшие, поскольку онивсе методы грубой силы:

  1. Нарисуйте радиус вокруг моих координат на определенном расстоянии, а затем переберите набор данных, чтобы найти, есть ли какие-либо из существующих координат в этом радиусе. Если один или несколько, то проходит через них и вижу, к чему я ближе всего через их расстояние.
  2. Так или иначе, начните округлять мои координаты в самом дальнем десятичном месте и проверяйте после каждого округления, существует ли этот новый набор округленных координат в наборе данных.

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

1 Ответ

0 голосов
/ 03 ноября 2019

Вы можете использовать API геокода карт Google, чтобы получить город, вы можете посмотреть в этом ответе

Как я могу получить название города с точки широты и долготы?

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