MySQL выводит наиболее посещаемые места

У меня есть таблица в базе данных MySQL с тысячами проверок с моего телефона. Каждые x секунд вставляется новое местоположение.

Вот как выглядит таблица:

+----+-----------+----------+------------+------------+
| id | lat       | lon      | date       | timestamp  |
+----+-----------+----------+------------+------------+
| 1  | 51.650586 | 5.622935 | 14-08-2018 | 1534233062 |
+----+-----------+----------+------------+------------+
| 2  | 51.65181  | 5.622228 | 14-08-2018 | 1534230962 |
+----+-----------+----------+------------+------------+
| 3  | 51.653715 | 5.6194   | 14-08-2018 | 1534230121 |
+----+-----------+----------+------------+------------+

Помимо координат GPS, даты и времени, я также сохраняю адресные данные из Google Maps Geocode API, но названия улиц не всегда правильные, поэтому их бесполезно использовать для группировки данных.

В настоящее время я показываю последнее вставленное местоположение на карте Google с помощью JavaScript, как единственный указатель. Я ищу MySQL-запрос, который выводит список из 5 наиболее посещаемых мест на определенную дату. Есть несколько сотен заселений в день.

Было бы здорово, если бы их можно было сгруппировать вместе, установив дистанцию ​​в 500 метров. Так, например, 3 точки сверху будут сгруппированы вместе, так как расстояние между ними меньше 500 метров.

Может ли кто-нибудь помочь мне написать запрос для этого? Любая помощь очень ценится.

Что, если каждая точка находится в пределах 500 м от другой точки?

Strawberry 14.08.2018 12:21

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

The Impaler 14.08.2018 12:27

Я бы рекомендовал использовать для этого MongoDB. Он имеет встроенные функции геокодирования и должен быть лучшим решением для вашей задачи.

Ildar Akhmetov 14.08.2018 12:37

MySQL поддерживает openGIS (dev.mysql.com/doc/refman/8.0/en/spatial-types.html), если вы хотите включить пространственные элементы в свои запросы.

Gordon Linoff 14.08.2018 12:46
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
4
33
0

Другие вопросы по теме