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

조회수 1446회

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를 쓰는 것이 제가 구현하고픈 서비스를 구축하는 데 도움이 될까요?

읽어주셔서 감사합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 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)

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)