Django Ninja & GIS 관련 설계 조사 정리 내용
Postgis : PostgreSQL DB의 gis 기능이 추가 된 확장 플러그인 (GIS 데이터 처리에 용이)
GIS 데이터라 함은 위/경도 데이터 및 반경 내 xx 조사 등, GIS 기반의 기능 구현에 사용됨
1. Postgis 및 GIS 데이터 활용하기 위해서 일반적인 방법
- geoDjango라는 Project 기반으로 작업 가능
- PointField 등 자유롭게 활용 가능
- 단, 프로젝트 자체가 geoDjango로 진행되어야 한다는 단점이 존재
- https://docs.djangoproject.com/en/4.1/ref/contrib/gis/install/
2. Django Ninja + Pydantic (geo_json)
- Django.db.models.gis.db 하위에는 기본적으로 fields 중 PointField가 존재함
- 그러나 Django Ninja의 Schema Level 에서 PointField를 미지원
- https://github.com/vitalik/django-ninja/issues/335 의 해당 방법 (pydantic의 geo_json spec용 추가라이브러리 활용하여 검증 가능)
3. Django 내 DecimalField 사용
- Postgis 를 사용하기 위해선 부가적인 라이브러리 설치가 많음. (gdal, geos 등 + 설치 간 높은 복잡성)
- Django에서 기본적으로 제공하는 Decimal Field로도 진행 가능하며, 일반적으로 위경도 데이터를 처리하는데 큰 이질감이 없음
- 단 반경 내 거리 계산 등에 특화 되지는 않음 (계산 공식등 직접 구현 - 단 계산 등에 대한 참고할 자료들은 많음)
'Python > Django Ninja' 카테고리의 다른 글
[Django Ninja] Path Variable & Query Parameter 사용 방법 (0) | 2023.06.03 |
---|---|
[Django Ninja] CRUD 예제 (+bulk) (0) | 2023.05.29 |
[Django Ninja] 정참조, 역참조 Schema 구현 (0) | 2023.04.29 |
[Django Ninja] 커스텀 Pagination 모듈 구현기 (0) | 2023.04.16 |
[Django Ninja] API Docs에서 Enum 드롭 다운 표시하기 (0) | 2023.04.09 |