반응형
가능한 중복 :
데이터가 저장되는 MyISAM 테이블이 있습니다. 데이터에는 Google지도의 위도와 경도가 포함됩니다. 내가 달성하려는 것은 샘플 위도와 경도의 반경 40km 내의 모든 물체를 선택하는 것입니다.
감사!
해결 방법
이 쿼리를 사용하여 $ lat
/ $ lng
주변의 $ radius
내의 모든 점을 가져옵니다.
SELECT
*,
( 6371 * acos( cos( radians({$lat}) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians({$lng}) ) + sin( radians({$lat}) ) * sin( radians( `lat` ) ) ) ) AS distance
FROM `positions`
HAVING distance <= {$radius}
ORDER BY distance ASC
6371은 지구 반경 im km입니다. 그리고 나는 그것을 발명하지 않았습니다.
참조 페이지 https://stackoverflow.com/questions/8850336
반응형
'MySql' 카테고리의 다른 글
MySQL Navicat의 MySQL 뷰- '기본 키'를 정의하는 방법은 무엇입니까? (0) | 2020.09.23 |
---|---|
MySQL 대 Firebird 대 SQLite (0) | 2020.09.23 |
MySQL에서 배열로 순환하는 방법은 무엇입니까? (0) | 2020.09.23 |
MySQL Symfony 404 오류 (0) | 2020.09.23 |
MySQL Outlook .pst 파일의 이메일을 MySQL 데이터베이스로 덤프하려면 어떻게해야합니까? (0) | 2020.09.23 |
댓글