게임을 그리다

[Javascript] geocoding 이용 위도, 경도 기반 도시 이름 가져오기 본문

[Javascript] geocoding 이용 위도, 경도 기반 도시 이름 가져오기

개발/Javascript 2016. 6. 17. 23:06

본래 구글 지오코딩(Google Geocoding)은 도시 이름을 기반으로 위도, 경도를 가져오는 기술을 기본적으로 제공한다. 하지만 이를 역으로 이용하여 위도, 경도를 기반으로 도시 이름을 가져오는 방법도 있다. 이를 구글 공식 문서에선 역 지오코딩이라고 한다. 일전에 올린 geolocation으로 접속자의 위도, 경도 구하기 글에서 얻어낸 위도, 경도 값으로도 충분히 접속자의 도시를 추척하는건 일도 아니다. 이래서 구글 크롬이 지오로케이션 API에 대한 보안을 철저히 하는거라고 필자는 생각한다.


여하튼 서론은 줄이고 지오코딩은 구글 맵스 API(Google Maps API)에 포함된 기술이라 이용하려면 API를 사용 설정해야한다. 이를 처리하는 곳은 '구글 클라우드 플랫폼'이다. 여기서 프로젝트를 만들고, API 키를 만드는 등의 선행 작업을 먼저 해야 최소한의 준비가 되었다고 할수 있다. 자세한 방법은 구글링을 해보도록 추천하고싶다. 내가 설명해도 그렇게 자세히, 쉽게 설명하기는 힘들다고 생각하기 때문이다. 차라리 지오코딩 문서를 보고 따라하는게 더 빠를지도 모른다. 실제로 그랬기도 하니까.


사실 구글 맵스 API SDK가 자바스크립트 버전으로 제공이 된다. 따라서 그냥 아래와 같이 script 태그로 import 해주면 그만이다.



<script async defer src="https://maps.googleapis.com/maps/api/js?key={APP_KEY}"></script>


API SDK 까지 import 하였으면 이제 쓸일만이 남았다.



var geocoder = new google.maps.Geocoder;
var latlng = {lat: parseFloat(position.coords.latitude), lng: parseFloat(position.coords.longitude)};
geocoder.geocode({'location': latlng}, function(results, status) {
		// 들어온 result 데이터로 처리...
});


정말로 쉽지 않은가? 그저 SDK를 추가하고, 함수 호출 한번이면 위도, 경도로 도시 이름, 주소까지 알수가 있다. 필자는 이것을 이용하여 유저 인터페이스를 제공하였다. 하지만 다시금 생각해보면 이것은 크게 개인적인 정보이기에 개인적인 생각으로는 파이어폭스나 IE까지 보안 정책이 강화되었음 하는 바램이다. XSS와 같은 기법으로 개인정보가 통째로 한 사람의 컴퓨터 속으로 들어가는건 예삿일도 아니기 떄문이다.

공유하기 링크
댓글 개