본문 바로가기
프로그래밍/Web

지도데이터를 다룰 때 주의해야할 점

by 물고기고기 2021. 4. 21.

이번 프로젝트에서 카카오 지도 API를 사용했다.

지도데이터하면 경도와 위도를 필수적으로 다룰 수 밖에 없는데 이때 주의할 점이 하나 있다.

 

기본적으로 우리는

마커(location포함 데이터)에 좌표를 넣어 DB에 저장해두고 그걸 불러오는 로직을 고안했는데

location = [x,y] 식으로 [위도,경도]값을 array에 넣어 DB에 넣어주려했다.

그러나 이 데이터들을 단순 num값으로 DB에 넣으면

(첫번째는 테스트항목이니 무시) 두번째와 세번째는 같은데이터인데 두번째는 number형식이기에 특정 소숫점자리가 반올림된것을 볼 수 있다. 그리고 str형식으로 넣어준 세번째값은 그대로 데이터가 보존되어있다.

이게 왜 중요하냐면 지도좌표에서 0.0001의 위치는 아주 큰차이이기 때문이다. (극단적인 예시로 서울시청에 찍었는데 일본고등학교가 찍힐수도있다는 얘기)

그래서 이를 방지하기위해 이런식으로 str값으로 array에 넣어 DB에 넣어준뒤에

간단하게 str > number(str)으로 넘버로 형식을 바꿔준다면 프론트로 데이터를 보내줄때 숫자로 출력해서 보내주는 방법도 있다.

 

그런데 카카오API에선 저런식으로 숫자를 str값으로 저장한것도 좌표롤 제대로 찍어줬기에 따로 num형식으로 변환해줄필요는 없었다. 다른 지도API에서도 그게 되는지 모르겠으니 우선은 좌표데이터는 str으로 저장하고 num으로 변환하는것을 추천한다.

댓글