このライブラリは、@google/maps に公開された以前のバージョンのリファクタリングです。現在、@googlemaps/google-maps-services-js に公開されています。
Node.jsを使用しますか?何かをジオコーディングしたいですか?道順をお探しですか?このライブラリは、Google Maps API Web サービスを Node.js アプリケーションに提供します。
Google Maps Services の Node.js クライアントは、次の Google Maps API 用の Node.js クライアント ライブラリです。
このライブラリを通じて API にアクセスする場合、API の使用には同じ利用規約が適用されることに注意してください。
このライブラリは、サーバー側の Node.js アプリケーション用に設計されています。ブラウザーまたは React Native などの他の環境でクライアント側で使用しようとすると、場合によっては機能する場合もありますが、ほとんどの場合は機能しません。このライブラリでサポートされている環境はサーバー側の Node.js アプリケーションだけであるため、これらの環境を使用しようとするときに問題を報告しないでください。他の環境の場合は、Maps JavaScript API を試してください。これには同等の機能セットが含まれており、クライアント側 JavaScript での使用を明示的に目的としています。
$ 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 の 1 つを呼び出します。
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 への移行と、この 2 つの違いについて説明します。
注: 2 つのライブラリはメソッドやインターフェイスを共有しません。
主な違いは、 @google/maps
引数として個々のパラメータを取る public メソッドを公開するのに対し、 @googlemaps/google-maps-services-js
params
、 headers
、 body
、 instance
を取るメソッドを公開することです (Axios を参照)。これにより、古いライブラリに特有の複雑さを伴うことなく、トランスポート層に直接アクセスできるようになります。以下に 2 つの例を示します。
@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 を介して設定可能です |
デフォルトではPromiseを使用しません | 約束はデフォルトです |
入力は @types/googlemaps にあります | タイピングも含まれています |
キープアライブはサポートしていません | 生き続けることをサポートします |
インターセプターをサポートしません | インターセプターをサポート |
キャンセルには対応しておりません | キャンセル対応 |
クライアント ID と URL 署名シークレットによる認証は、Google Maps Platform プレミアム プランを使用する従来のアプリケーションをサポートするために提供されています。 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 ) ;
} ) ;
このライブラリはコミュニティでサポートされています。私たちはライブラリの安定性と機能に十分満足しているので、実際の運用アプリケーションをその上に構築してほしいと考えています。私たちは、スタック オーバーフローを通じてライブラリのパブリック サーフェスをサポートし、将来的には下位互換性を維持するよう努めます。ただし、ライブラリがバージョン 0.x である間は、下位互換性のない変更を加える権利を留保します。一部の機能を削除する場合 (通常は、より優れた機能が存在するか、その機能が実行不可能であることが判明した場合)、非推奨とし、開発者にコードを更新するための 1 年間の猶予を与えることが私たちの意図です。
バグを見つけた場合、または機能の提案がある場合は、問題を記録してください。貢献したい場合は、「貢献方法」をお読みください。