Лучший способ решить проблему фильтра маркеров Google Maps - PullRequest
0 голосов
/ 21 сентября 2019

Мне нужно отфильтровать элементы на карте (GOOGLE MAP)

отфильтровать по расстоянию, например, Tinder, чтобы отображать только объекты рядом с точкой происхождения

, например, радиус 30 км

Любой элемент в моей базе данных имеет LATITUDE / LONGITUDE, а также полный адрес

Какой лучший и быстрый способ отфильтровать и показать эти элементы на Google Map

У меня уже есть расстояние в километрах между двумя координатамииспользуя Google Maps API, а также формулу Haversine

Как лучше фильтровать и возвращать элементы, отфильтрованные для добавления маркеров на карту?

ВАРИАНТ A: Лучше создать функцию в PHP (Laravel) отфильтровать на стороне сервера и вернуть через API эти элементы в Ionic APP?

ВАРИАНТ Б: Лучше получить координаты из API, а затем создать функцию в Ionic APP для возврата отфильтрованных элементов на клиентском компьютере.какую сторону показывать на Картах Google?

ВАРИАНТ C: Или вы можете предложить другую идею получше?

Пожалуйста, кто-нибудь, может мне помочь?

Я знаю, это простоВопрос, но я боюсь, что когда этот проект расширится и у него будет много элементов для фильтрации, и в результате потребуется много времени для фильтрации и возврата элементов в Google Map

Любые предложения приветствуются

1 Ответ

0 голосов
/ 21 сентября 2019

Возможно, вы захотите сохранить данные как тип данных point.

$table->point('position');

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

Также проверьте этот репозиторий: https://github.com/grimzy/laravel-mysql-spatial, где вы можете увидеть раздел scopes, объясняющий, как его запросить.

...