Актуальность проблемы и существующие решения
Введение
В данной работе рассмотрена проблема определение страны и города объекта геолокации на основании его координат (широты и долготы). Основной задачей работы является автоматизированное определение местоположения и привязка геолокационных объектов к странам и городам в мире.
Полученный алгоритм позволяет определить конкретное местоположение объектов в формате стран/городов и сформировать собственную базу, что актуально для большинства геолокационных веб-сервисов и приложений, а также предоставляет решение для следующего круга задач:
· определение страны и города объекта на основании его координат;
· формирование статистических данных объектов на основании составленной базы городов и стран;
· автоматическое расширение базы городов и стран при добавлении большего числа объектов;
· возможность фильтрации объектов по стране или городу.
Актуальность проблемы и существующие решения
Современные геолокационные сервисы всё больше ориентированы на точное определение местоположения их пользователей. В условиях постоянно изменяющихся требований к таким сервисам, необходимо предоставлять более качественные и быстрые алгоритмы с возможностью фильтрации результатов выборки, автоматического масштабирования и расширения базы данных и сбора статистики.
Существующие решения определения конкретного города объектов на настоящий момент слабо оптимизированы и представляют собой привязку объектов к так называемым «местам». В таком случае для конкретного объекта создаётся специальная точка на карте с именем и определённой широтой и долготой. В дальнейшем другие геолокационные объекты могут быть привязаны к этой точке, которая может быть найдена по имени или могут быть предложены другие похожи точки, выбранные, основываясь на определённом радиусе отдаления от исходной точки. Такое решение не предназначено для фильтрации объектов по определённому городу или стране. Также поиск осуществляется на основании имени точки на карте, а не местоположения. Это означает, что при существовании геолокационных точек с любым расстоянием между ними, но с похожими названиями, такая система выполнит выборку всех таких вариантов, что делает такой поиск абсолютно нерелевантным. Такой подход используется в социальной сети Facebook.
Второй вид существующего решения, предполагает формирование сервисом собственной базы городов (возможно, уже существующей) и жёсткую привязку геолокационных объектов к городу, определяемого по уникальному идентификатору. Для каждого города указывается его центр и приблизительный радиус, одинаковый для всех городов. Такой алгоритм сужает круг проблем, таких как возможность фильтрации объектов по городам и их поиск. Однако, добавляются другие проблемы, связанные прежде всего с необходимостью ручного формирования базы городов, а также наличием сильно «размытого» радиуса города, поскольку радиус границ у разных городов может сильно варьироваться. Добавление возможности определения радиуса города увеличивает время, необходимое на формирование одного города в базе данных вдвое.