본문 바로가기
Programming/Node.js

Node.js에서 Request를 사용해서 도시의 위도 경도 좌표를 얻는 방법

by 혀코 2020. 1. 6.

안녕하세요. 혀코입니다.

오늘은 Node.js에서 request를 사용해서 도시의 위도, 경도 좌표를 얻는 방법에 대해서 알아보겠습니다.

특정 도시의 위도와 경도 좌표를 얻기 위해서 mapbox.com에서 제공하는 api를 사용하겠습니다.

https://www.mapbox.com/

 

Mapbox

An open source mapping platform for custom designed maps. Our APIs and SDKs are the building blocks to integrate location into any mobile or web app.

www.mapbox.com

회원가입한 다음 로그인해서 다음 페이지로 이동한 다음 아래로 스크롤 하면 'Example request: Forward geocoding'이 있습니다. 거기에서 첫번째 curl 값이 geocoding api url 입니다.

https://docs.mapbox.com/api/search/#forward-geocoding

 

Search service

Overview of the Mapbox Search service APIs.

docs.mapbox.com

$ curl "https://api.mapbox.com/geocoding/v5/mapbox.places/Los%20Angeles.json?access_token={{api-key}}"

로그인하셨다면, api-key 값에 자신의 코드가 대입되어 있으므로 바로 가져다 쓰시면 됩니다.

 

그럼 위도와 좌표를 구하는 앱을 만들어 보겠습니다.

coordinates 폴더를 만들고, app.js 파일을 만들고, npm 초기화해서 package.json 파일을 생성합니다. 그리고 request를 설치합니다.

$ mkdir coordinates
$ cd coordinates
$ touch app.js
$ npm init -y
$ npm install request

 

app.js를 아래와 같이 작성합니다.

const request = require('request')

const geocodeURL = 'https://api.mapbox.com/geocoding/v5/mapbox.places/Los%20Angeles.json?access_token={{api-key}}&limit=1'

request({url: geocodeURL, json: true}, (error, response) => {
    const latitude = response.body.features[0].geometry.coordinates[1];
    const longitude = response.body.features[0].geometry.coordinates[0];
    console.log(latitude, longitude)
})

latitude는 위도로 90에서 -90까지의 값을 가지고, longitude는 경도로 180에서 -180까지의 값을 가진다는 것을 알아두면 이해하기 편합니다.

geocodeURL에 맨끝에 limit=1을 지정한 이유는 los angeles 이름이 5개나 되기 때문에 1개로 줄이기 위해서 결과를 1개로 제한하기 위해서 입니다.

 

이렇게 Node.js에서 requeset를 사용해서 도시의 위도, 경도 좌표를 얻는 방법에 대해서 알아보았습니다.

유용하셨다면, 공감과 구독 부탁 드립니다.

감사합니다.

 

댓글