Извините, что раньше не обрабатывал данные GPS. может быть вопрос новичка
Итак, я создал таблицу, в которой хранятся данные GPS следующим образом:
table name : request
id
lat decimal(10,8)
lng decimal(11,8)
Недавно я хотел бы получить данные, которые находятся в 10 км в пределах заданной точки GPS.
e.g. Given GPS lat: 22, lng: 114 , found all data within 10km
И я обнаружил, что есть тип данных под названием «точка». И SQL-запрос, связанный
SELECT *
FROM request
WHERE MBRContains
(
LineString
(
Point (
@lng + 10 / ( 111.1 / COS(RADIANS(@lat))),
@lat + 10 / 111.1
),
Point (
@lng - 10 / ( 111.1 / COS(RADIANS(@lat))),
@lat - 10 / 111.1
)
),
POINTFROMTEXT('POINT(22 114)')
)
Он возвращает 0 результата, даже если должен быть какой-то результат, например. У меня есть запись, что lat это 22.1, 114.1. Как это исправить? Благодарю.
Я бы сослался на этот вопрос, он был закрыт как дубликат, но список дубликатов дает вам довольно хороший обзор набора проблем и решений.
Других решений пока нет …