78.3232, 65.3234 좌표에서 반경 30 마일 내에있는 가장 가까운 20 개의 위치를 찾는 SQL 문입니다. 해당 행의 위도 / 경도 및 대상 위도 / 경도를 기반으로 거리를 계산 한 다음 거리 값이 30 마일 미만인 행만 요청하고 전체 쿼리를 거리별로 정렬하여 20 개의 결과로 제한합니다. 마일 대신 킬로미터로 검색하려면 3959를 6371로 바꾸십시오.
SELECT
id, (
3959 * acos (
cos ( radians(78.3232) )
* cos( radians( lat ) )
* cos( radians( lng ) - radians(65.3234) )
+ sin ( radians(78.3232) )
* sin( radians( lat ) )
)
) AS distance
FROM markers
HAVING distance < 30
ORDER BY distance
LIMIT 0 , 20;
이미 보유한 MySQL 백엔드와 함께 Google Maps API v3을 사용하고 있습니다.
https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql