728x90
반응형

Django에서 일정 거리내의 데이터를 조회하려면 다음과 같은 API를 사용하면되는데 데이터베이스에 따라 사용할 수 있는 것이 제한되어 있다.

 

SpatiaLite를 이용하는 경우에 distance_gt, distance_gte, distance_lt, distance_lte는 사용 가능하지만 해당 데이터베이스에서는 직교 좌표계에서 두점 간의 거리를 계산하는 방식으로 하기에 위도, 경도를 직교 좌표계에 맞게 바꿔서 저장해야 한다.

x = R * cos(위도) * cos(경도)
y = R * cos(위도) * sin(경도)

R 은 지구 반경 근사치로 약 6,371Km이다.

 

위와 같은 식으로 변환한 뒤 조회를 하면 일정 반경 이내 혹은 이외의 데이터를 조회할 수 있다.

반응형

'Python' 카테고리의 다른 글

[Python] Django logging  (0) 2020.01.25
[Python] nginx + gunicorn + Django  (0) 2020.01.25
[Python] nginx + Django  (0) 2020.01.25

+ Recent posts