В настоящее время у меня есть таблица в базе данных mysql с четырьмя столбцами: State, City, Latitude, Longitude.
Мои столбцы широты и долготы имеют тип float (10,6).
Я ищу реализацию MySQL Query, где я могу искать похожие записи широты и долготы. Например, я хочу реализовать что-то вроде этого:
SELECT * FROM `mytable` WHERE `Latitude` LIKE '41.wxyz' and 'Longitude' LIKE '-87.wxyz'
где wxyz может быть любой цифрой. Я хочу сделать это, чтобы я мог вернуть все города в непосредственной близости от любых заданных произвольных координат. кто-нибудь может мне помочь?
РЕШЕНИЕ / UPDATE
Мне не удалось заставить мое приложение делать то, что я хотел, с ответами, представленными ниже! хотя я ценю вклад каждого; Я смог расширить свои знания SQL-запросов. Чтобы подать заявку на поиск близлежащих мест по паре широты и долготы, я использовал формулу Хаверсайна. Как подробно в этой статье Google Maps. https://developers.google.com/maps/articles/phpsqlsearch
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
где lat и lng - столбцы в таблице MySQL. а 37 и -122 - это координаты, по которым вы хотите найти другие близлежащие координаты в вашей таблице. :)