이 라이브러리는 @google/maps에 게시된 이전 버전의 리팩터링입니다. 이제 @googlemaps/google-maps-services-js에 게시되고 있습니다.
Node.js를 사용하시나요? 뭔가를 지오코딩하고 싶나요? 길을 찾고 계십니까? 이 라이브러리는 Google Maps API 웹 서비스를 Node.js 애플리케이션에 제공합니다.
Google 지도 서비스용 Node.js 클라이언트는 다음 Google 지도 API용 Node.js 클라이언트 라이브러리입니다.
이 라이브러리를 통해 API에 액세스하는 경우 API 사용에도 동일한 이용 약관이 적용된다는 점을 명심하세요.
이 라이브러리는 서버측 Node.js 애플리케이션용으로 설계되었습니다. 브라우저나 React Native와 같은 다른 환경에서 클라이언트 측에서 사용하려고 하면 경우에 따라 작동할 수 있지만 대부분은 작동하지 않습니다. 서버 측 Node.js 애플리케이션이 이 라이브러리에 대해 지원되는 유일한 환경이므로 이러한 환경을 사용하려고 할 때 이러한 환경에 대한 문제를 보고하지 마십시오. 다른 환경의 경우 유사한 기능 세트가 포함되어 있고 명시적으로 클라이언트측 JavaScript와 함께 사용하도록 고안된 Maps JavaScript API를 사용해 보세요.
$ npm install @googlemaps/google-maps-services-js
다음은 클라이언트 클래스에서 고도 메소드를 호출하는 간단한 예입니다.
TypeScript 및 ES6 모듈을 사용하여 Google 지도 클라이언트를 가져옵니다.
import { Client } from "@googlemaps/google-maps-services-js" ;
ES6 모듈 지원 없이 JavaScript를 사용하는 방법:
const { Client } = require ( "@googlemaps/google-maps-services-js" ) ;
이제 클라이언트를 인스턴스화하여 API 중 하나를 호출합니다.
const client = new Client ( { } ) ;
client
. elevation ( {
params : {
locations : [ { lat : 45 , lng : - 110 } ] ,
key : process . env . GOOGLE_MAPS_API_KEY ,
} ,
timeout : 1000 , // milliseconds
} )
. then ( ( r ) => {
console . log ( r . data . results [ 0 ] . elevation ) ;
} )
. catch ( ( e ) => {
console . log ( e . response . data . error_message ) ;
} ) ;
생성된 참조 문서는 여기에서 찾을 수 있습니다. TypeScript 유형은 이 라이브러리에 대한 권위 있는 문서이며 설명과 약간 다를 수 있습니다.
엔드투엔드 테스트를 실행하려면 환경 변수를 통해 API 키를 제공해야 합니다.
$ export GOOGLE_MAPS_API_KEY=AIza-your-api-key
$ npm test
이 섹션에서는 @google/maps에서 @googlemaps/google-maps-services-js로의 이전과 둘 사이의 차이점에 대해 설명합니다.
참고 : 두 라이브러리는 메서드나 인터페이스를 공유하지 않습니다.
주요 차이점은 @google/maps
개별 매개변수를 인수로 사용하는 공개 메소드를 노출하는 반면, @googlemaps/google-maps-services-js
params
, headers
, body
, instance
사용하는 메소드를 노출한다는 것입니다(Axios 참조). 이를 통해 기존 라이브러리에 내재된 복잡성 없이 전송 계층에 직접 액세스할 수 있습니다. 아래에는 두 가지 예가 있습니다.
@google/maps
): const googleMapsClient = require ( '@google/maps' ) . createClient ( {
key : 'your API key here'
} ) ;
googleMapsClient
. elevation ( {
locations : { lat : 45 , lng : - 110 }
} )
. asPromise ( )
. then ( function ( r ) {
console . log ( r . json . results [ 0 ] . elevation ) ;
} )
. catch ( e => {
console . log ( e ) ;
} ) ;
@googlemaps/google-maps-services-js
): const client = new Client ( { } ) ;
client
. elevation ( {
params : {
locations : [ { lat : 45 , lng : - 110 } ] ,
key : process . env . GOOGLE_MAPS_API_KEY
} ,
timeout : 1000 // milliseconds
} , axiosInstance )
. then ( r => {
console . log ( r . data . results [ 0 ] . elevation ) ;
} )
. catch ( e => {
console . log ( e ) ;
} ) ;
주요 차이점은 다음 표에 나와 있습니다.
오래된 | 새로운 |
---|---|
매개변수를 제공할 수 있음 | 매개변수, 헤더, 인스턴스, 시간 초과를 제공할 수 있습니다(Axios 요청 구성 참조). |
클라이언트에 구성된 API 키 | params 객체의 메소드별로 구성된 API 키 |
재시도가 지원됩니다 | 재시도는 axios-retry 또는 retry-axios를 통해 구성 가능 |
기본적으로 약속을 사용하지 않습니다. | 약속은 기본이다 |
입력은 @types/googlemaps에 있습니다. | 타이핑이 포함되어 있습니다 |
연결 유지를 지원하지 않습니다. | 연결 유지 지원 |
인터셉터를 지원하지 않습니다. | 인터셉터 지원 |
취소를 지원하지 않습니다 | 취소 지원 |
Google Maps Platform 프리미엄 플랜을 사용하는 기존 애플리케이션을 지원하기 위해 클라이언트 ID 및 URL 서명 비밀번호를 통한 인증이 제공됩니다. 가입 고객이나 신규 고객은 더 이상 Google Maps Platform 프리미엄 플랜을 사용할 수 없습니다. 모든 새로운 애플리케이션은 API 키를 사용해야 합니다.
const client = new Client ( { } ) ;
client
. elevation ( {
params : {
locations : [ { lat : 45 , lng : - 110 } ] ,
client_id : process . env . GOOGLE_MAPS_CLIENT_ID ,
client_secret : process . env . GOOGLE_MAPS_CLIENT_SECRET
} ,
timeout : 1000 // milliseconds
} )
. then ( r => {
console . log ( r . data . results [ 0 ] . elevation ) ;
} )
. catch ( e => {
console . log ( e . response . data . error_message ) ;
} ) ;
이 라이브러리는 커뮤니티에서 지원됩니다. 우리는 실제 프로덕션 애플리케이션을 구축할 수 있는 라이브러리의 안정성과 기능에 충분히 만족하고 있습니다. 우리는 Stack Overflow를 통해 라이브러리의 공개 표면을 지원하고 향후 이전 버전과의 호환성을 유지하려고 노력할 것입니다. 그러나 라이브러리가 버전 0.x인 동안 우리는 이전 버전과 호환되지 않는 변경을 수행할 권리를 보유합니다. 일부 기능을 제거하는 경우(일반적으로 더 나은 기능이 존재하거나 해당 기능을 실행할 수 없는 것으로 판명된 경우), 더 이상 사용되지 않으며 개발자에게 코드를 업데이트할 수 있는 1년의 시간을 제공할 것입니다.
버그를 발견하거나 기능 제안이 있는 경우 문제를 기록해 주세요. 기여하고 싶다면 기여 방법을 읽어보세요.