하이퍼로컬 플랫폼 DB

박병훈·2023년 5월 24일
0
post-thumbnail

설계 단계에서 부터 블로그 글을 작성하려 했으나 앞부분은 기술보단 기획에 가까워서 DB설계부터 작성하기로 했다.(시간이 된다면 추후에 작성할 예정이다.)

1주차 : 제안요청서 및 요구사항 명세
2주차 : 인터페이스 및 디자인 설계(Figma)
3주차 : 시스템설계(DFD)
를 거쳐
4주차인 이번주에 DB설계했다.

ERD 설계

ERD 링크 : https://www.erdcloud.com/d/sD8QqFsw8fKFyzfqs

행정동 지역 경계, 중심 좌표 정보

가장 머리가 아팠던 부분이다.

유저가 동네 인증을 받기 위해서 GPS좌표를 통해 그 지역과, 근처 동네 정보가 필요했다.
깃허브에 누군가 미리 변환해놓은 파일이 있어 사용했다.

깃허브 출처 : https://github.com/vuski/admdongkor

통계청 통계지리정보서비스에서 제공하는 행정동 경계 파일을 바탕으로, 행정동 변경 이력을 수정하여 반영한 파일이다.
geojson 형식이며, 좌표계는 WGS84 (EPSG:4326) 이다.
geojson 및 csv 파일 인코딩 형식은 UTF-8 이다.

이 데이터를 기반으로 PostgreSQL, PostGIS, QGIS 를 사용했다.
1. PostgreSQL에서 DB를 만든 후
2. PostGIS extension을 추가하고

  1. QGIS를 이용하여 해당 데이터를 내 DB에 테이블 형태로 추가해줬다.
  2. 이후에 원하는 좌표를 정해서 아래의 코드를 실행하면
SELECT*FROM "데이터베이스 이름" WHERE ST_Intersects("지역 경계값(자료형:geometry)", ST_Buffer
(ST_GeomFromText('POINT(위도 경도)', 4326)::geography, "원하는 거리 : 미터"))::geometry);


이런 결과가 나와서 사용자의 GPS를 기반으로 근처 동네들을 가져올 수 있다.

0개의 댓글