Pustaka ini merupakan refaktor dari versi sebelumnya yang diterbitkan ke @google/maps. Sekarang sedang dipublikasikan ke @googlemaps/google-maps-services-js.
Gunakan Node.js? Ingin melakukan geocode sesuatu? Mencari petunjuk arah? Pustaka ini menghadirkan Layanan Web Google Maps API ke aplikasi Node.js Anda.
Klien Node.js untuk Layanan Google Maps adalah pustaka Klien Node.js untuk Google Maps API berikut:
Perlu diingat bahwa syarat dan ketentuan yang sama berlaku untuk penggunaan API ketika diakses melalui perpustakaan ini.
Pustaka ini dirancang untuk aplikasi Node.js sisi server. Mencoba menggunakannya di sisi klien, baik di browser atau lingkungan lain seperti React Native, dalam beberapa kasus mungkin berhasil, tetapi sebagian besar tidak. Harap jangan melaporkan masalah dengan lingkungan ini ketika mencoba menggunakannya, karena aplikasi Node.js sisi server adalah satu-satunya lingkungan yang didukung untuk perpustakaan ini . Untuk lingkungan lain, coba Maps JavaScript API, yang berisi kumpulan fitur serupa, dan secara eksplisit ditujukan untuk digunakan dengan JavaScript sisi klien.
$ npm install @googlemaps/google-maps-services-js
Di bawah ini adalah contoh sederhana memanggil metode elevasi pada kelas klien.
Impor Klien Google Maps menggunakan modul TypeScript dan ES6:
import { Client } from "@googlemaps/google-maps-services-js" ;
Atau menggunakan JavaScript tanpa dukungan modul ES6:
const { Client } = require ( "@googlemaps/google-maps-services-js" ) ;
Sekarang buat instance klien untuk melakukan panggilan ke salah satu 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 ) ;
} ) ;
Dokumentasi referensi yang dihasilkan dapat ditemukan di sini. Tipe TypeScript adalah dokumentasi resmi untuk perpustakaan ini dan mungkin sedikit berbeda dari deskripsinya.
Untuk menjalankan pengujian end-to-end, Anda harus menyediakan kunci API melalui variabel lingkungan.
$ export GOOGLE_MAPS_API_KEY=AIza-your-api-key
$ npm test
Bagian ini membahas migrasi dari @google/maps ke @googlemaps/google-maps-services-js dan perbedaan keduanya.
Catatan : Kedua perpustakaan tidak berbagi metode atau antarmuka apa pun.
Perbedaan utamanya adalah @google/maps
memaparkan metode publik yang menggunakan parameter individual sebagai argumen sementara @googlemaps/google-maps-services-js
memaparkan metode yang menggunakan params
, headers
, body
, instance
(lihat Axios). Hal ini memungkinkan akses langsung ke lapisan transport tanpa kerumitan yang melekat pada perpustakaan lama. Di bawah ini adalah dua contoh.
@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 ) ;
} ) ;
Perbedaan utamanya terdapat pada tabel berikut.
Tua | Baru |
---|---|
Dapat memberikan param | Dapat memberikan params, header, instance, timeout (lihat Konfigurasi Permintaan Axios) |
Kunci API dikonfigurasi di Klien | Kunci API dikonfigurasi per metode di objek params |
Coba lagi didukung | Coba lagi dapat dikonfigurasi melalui axios-retry atau retry-axios |
Tidak menggunakan janji secara default | Janji adalah default |
Pengetikan ada di @types/googlemaps | Pengetikan disertakan |
Tidak mendukung tetap hidup | Dukungan tetap hidup |
Tidak mendukung pencegat | Mendukung pencegat |
Tidak mendukung pembatalan | Mendukung pembatalan |
Autentikasi melalui ID klien dan rahasia penandatanganan URL disediakan untuk mendukung aplikasi lama yang menggunakan Paket Premium Google Maps Platform. Paket Premium Google Maps Platform tidak lagi tersedia untuk pendaftaran atau pelanggan baru. Semua aplikasi baru harus menggunakan kunci 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 ) ;
} ) ;
Perpustakaan ini didukung komunitas. Kami cukup nyaman dengan stabilitas dan fitur perpustakaan sehingga kami ingin Anda membangun aplikasi produksi nyata di dalamnya. Kami akan mencoba mendukung, melalui Stack Overflow, permukaan publik perpustakaan dan menjaga kompatibilitas ke belakang di masa depan; namun, ketika perpustakaan masih dalam versi 0.x, kami berhak membuat perubahan yang tidak kompatibel dengan versi sebelumnya. Jika kami menghapus beberapa fungsi (biasanya karena ada fungsi yang lebih baik atau jika fitur tersebut terbukti tidak layak), tujuan kami adalah menghentikan penggunaan dan memberikan waktu satu tahun kepada pengembang untuk memperbarui kode mereka.
Jika Anda menemukan bug, atau memiliki saran fitur, harap catat masalahnya. Jika Anda ingin berkontribusi, silakan baca Cara Berkontribusi.