파이썬(Python3)으로 왓쓰리워즈(what3words, W3W)를 이용해보자.

세상의 모든 주소를 세 단어에 담다

Posted by Siner on May 20, 2019

what3words란?

what3words (W3W)는 전 세계 지도 상의 스팟(3m x 3m)을 3개의 무작위 단어로 표현한 좌표체계입니다. 이 기능을 사용하면 마이크로 단위의 장소 공유와 주소가 없는 지점도 세 단어 주소로 공유/검색이 가능합니다. 현재 27개 언어로 W3W 세단어 주소가 제공 중이며, 카카오에서도 what3words와의 제휴를 통해 한글 W3W 주소체계를 서비스 하기 시작했습니다.

image

API KEY 발급

what3words를 사용하기 위해서는 https://accounts.what3words.com/ko/register에서 API KEY를 발급 받아야 합니다.

image

pip 패키지 설치

공식 문서는 https://docs.what3words.com/wrapper/python/에 있습니다.
what3words에서는 pip 패키지를 지원하여 python에서 매우 편리하게 이 기능을 사용할 수 있습니다.

1
pip install what3words

위경도 <-> W3W 변환

파이썬 코드로 what3words를 사용하는 두가지 예시를 알아보겠습니다.

language='ko'를 입력하지 않으면 영어로 된 w3w값이 나타납니다.

1. 위경도 >> W3W

image

1
2
3
4
5
6
7
8
import what3words


geocoder = what3words.Geocoder("what3words-api-key", language='ko')
coordinates = what3words.Coordinates(37.5132924,127.1017133)
res = geocoder.convert_to_3wa(coordinates)

print(res)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  'country': 'KR',
  'square': {
    'southwest': {
      'lng': 127.101686,
      'lat': 37.513287
    },
    'northeast': {
      'lng': 127.10172,
      'lat': 37.513314
    }
  },
  'nearestPlace': '성남시, 경기도',
  'coordinates': {
    'lng': 127.101703,
    'lat': 37.5133
  }, 
  'words': '중년.펀드.수확', 
  'language': 'ko', 
  'map': 'https://w3w.co/%EC%A4%91%EB%85%84.%ED%8E%80%EB%93%9C.%EC%88%98%ED%99%95'
}

성남시 경기도라고 나오는게 뭔가 잘못 된 느낌인데… 속는 셈 치고 response받은 중년.펀드.수확을 카카오 지도에 한번 검색해봅니다.

image

잘 됩니다. 이어서 반대로도 한번 해보겠습니다.

2. W3W >> 위경도

image

1
2
3
4
5
import what3words

geocoder = what3words.Geocoder("what3words-api-key", language='ko')
res = geocoder.convert_to_coordinates('일차적.사인하다.마음먹었던')
print(res)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  'country': 'ZZ',
  'square': {
    'southwest': {
      'lng': 125.977585,
      'lat': 37.552151
    }, 
    'northeast': {
      'lng': 125.977619, 
      'lat': 37.552178
    }
  },
  'nearestPlace': 'Yŏnan-ŭp, 황해남도', 
  'coordinates': {
    'lng': 125.977602, 
    'lat': 37.552164
  },
  'words': '일차적.사인하다.마음먹었던', 
  'language': 'ko', 
  'map': 'https://w3w.co/%EC%9D%BC%EC%B0%A8%EC%A0%81.%EC%82%AC%EC%9D%B8%ED%95%98%EB%8B%A4.%EB%A7%88%EC%9D%8C%EB%A8%B9%EC%97%88%EB%8D%98'
}

image

변환이 잘 되는것을 확인 할 수 있습니다.

마무리

W3W 주소체계는 매우 편리하지만 아직 많은 사람들이 알지 못하여 아쉬울 따름입니다. 많은 분들이 이 기능을 사용하는 서비스를 많이 만들어서 한국에서도 많이 사용되면 좋겠네요.

이번에 다루지 못한 언어에서의 API 사용법에 대해서는 공식문서(아래 링크)를 참고하시면 됩니다. https://docs.what3words.com/api/v3/