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

Требование : в настоящее время я работаю над приложением с более чем 30000 записями. Требование состоит в поиске местоположения / осведомленности . Напр. в 5 м от моего нынешнего местоположения.

Как получить доступ к этой службе : к этой службе будут доступны как приложения для веб-приложений, так и приложения iOS.

Платформы разработки :

  • Веб: Cakephp, php и python
  • DB: MySql
  • iOS: цель-c
  • Используемые внешние библиотеки: Google Maps Javascript Api v3

Поиск по местоположению

Я занимаюсь некоторыми исследованиями по этому вопросу, и я буду использовать Формулу Хаверсина для этого. Но для формулы Хаверсина, чтобы быть эффективной, мне нужно иметь обратный гео-код для всех моих записей в моей БД. Единственное обратное геокодирование, которое я когда-либо использовал, – это Google, и я знаю, что они не позволяют этого, не отображая результаты на своей карте.

Примечание: API геокодирования может использоваться только в сочетании с картой Google; результаты геокодирования без отображения их на карте запрещены.

  1. Существуют ли другие API или службы, которые я могу использовать для изменения геокода все эти записи?
  2. 30000 – это большое количество. Я, очевидно, буду использовать работу cron для этого в течение определенного периода времени, но поскольку этот запрос будет с того же IP-адреса, может ли это быть проблемой?

Любая помощь по этому поводу будет высоко оценена.

Обновление 1 #

Я нашел этот вопрос, который рекомендует OpenStreetMap Nominatim