Я пытаюсь создать тег местоположения, как Instagram …
Я выбираю координаты на основе функции Google Api getBounds()
как это:
(примечание: swlat, swlng, nwlat, nwlng = a, b, c, d)
SELECT * FROM table WHERE
(a < c AND lat BETWEEN a AND c) OR (c < a AND lat BETWEEN c AND a)
AND
(b < d AND lng BETWEEN b AND d) OR (d < b AND lng BETWEEN d AND b)
Прежде чем вставлять координаты, я проверяю, присутствуют ли данные в таблице, чтобы избежать дублирования. Однако проблема в том, Google Api а также MapKit вернуть разные координаты при поиске в определенном месте.
Прямо сейчас Я храню местоположение name
проверить на наличие дубликатов. Что может сработать, но, может быть, есть лучший способ 🙂
Так что мои вопросы:
Спасибо 🙂
Решение действительно заключается в том, как вы реализуете свою собственную базу данных — для любой заданной координаты широты и долготы есть только одно местоположение.
Но вы не можете заставить Google или MapKit измениться. поэтому вы всегда будете зацикливаться на этом несоответствии, и поиск возможного текстового значения name = наподобие ‘% placename%’ всегда будет иметь низкую производительность и не будет гарантированно настолько точным, насколько вас справедливо беспокоит.
Поэтому я бы посоветовал вам создать отдельные таблицы «местоположений» для Google и MapKit и попросить пользователя отфильтровать их из графического интерфейса.
Также рекомендуется индексировать столбцы lat и lng для каждого.
Других решений пока нет …