장고에서 한 기준으로부터 거리에 따른 순서대로 포스트를 올리는 시스템을 만드려고 하는데 좌표 저장시 decimal이랑 float 두 가지 중 어떤 형식을 취하는게 좋을까요?


http://stackoverflow.com/questions/30706799/which-model-field-to-use-in-django-to-store-longitude-and-latitude-values

제가 영어를 잘 못해서 대충 위 글을 해석해보니

decimal field랑 float field 두 가지 선택이 있는 것 같습니다.

제가 쓸 기능은 엄청 정확하진 않아도 한 100미터 오차까지도 아무 상관이 없는

주변 가까운 좌표 찾기 기능 (어디선 knn이라고 하더라구요)인데요

정확도가 높지 않아도 된다면

decimal field를 쓰는 게 좋을까요?

제가 초보여서 decimal field에 대한 이해가 부족합니다.

decimal field 를 쓰면 소수점 자리수를 정할 수 있다는 뜻인가요? 그러면 float field를 쓸 때보다 덜 정확하게 계산을 이뤄낼 수 있는 걸까요?

만약 그렇다면 소수점에 따라 knn 가까운 좌표찾기 할 시에 서버에 부담이 덜 가게 할 수 있을까요?

저는 장고를 사용하고 있습니다.

아 마지막으로, 장고를 쓴다면 geodjango를 쓰는 것이 제가 구현하고픈 서비스를 구축하는 데 도움이 될까요?

읽어주셔서 감사합니다.

  • 2016년 06월 28일에 작성됨

조회수 177


1 답변


좋아요
0
싫어요
채택취소하기

float field나 decimal field둘 다 서버에 주는 부담에는 상관이 없을겁니다.

decimal Field는 표현할 수 있는 숫자의 수(max_digits)와 소수점 위치(decimal_places)를 지정해 주어야 하고, Form사용시 지정한 숫자에 맞는지 체크가 되는등의 기능이 있습니다.

사용하시는 목적에는 float field가 더 적합할 것 같네요.

Geodjango를 써 보지는 않았지만 문서를 보니 distance lookup기능 중에 distance_lt를 쓰면 좋겠네요.

검색해야 하는 지점들이 있고, 특정 좌표로 부터 일정거리의 지점들을 검색하는걸 직접 구현하는게 목적이라면 Geojango가 적합한것 같습니다.

다만 distance lookup기능을 쓰려면 DB로 Sqlite나 Postgresql을 사용하면서 PostGIS, SpatiaLite를 설치해서 사용하셔야겠습니다. distance lookup문서에 들어가보면 이렇게 적혀 있네요.

Availability: PostGIS, Oracle, SpatiaLite, PGRaster (Native)

  • 2016년 06월 29일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

  • 정두식님 감사합니다. 매우 큰 도움이 되었습니다.     홍민구   2016.6.29 15:46     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close