Esta biblioteca é uma refatoração de uma versão anterior publicada em @google/maps. Agora está sendo publicado em @googlemaps/google-maps-services-js.
Usar Node.js? Quer geocodificar algo? Procurando instruções? Esta biblioteca traz os serviços da Web da API do Google Maps para seu aplicativo Node.js.
O cliente Node.js para serviços do Google Maps é uma biblioteca cliente Node.js para as seguintes APIs do Google Maps:
Lembre-se de que os mesmos termos e condições se aplicam ao uso das APIs quando elas são acessadas por meio desta biblioteca.
Esta biblioteca foi projetada para aplicativos Node.js do lado do servidor. Tentar usá-lo no lado do cliente, no navegador ou em qualquer outro ambiente como o React Native, pode funcionar em alguns casos, mas na maioria das vezes não. Evite relatar problemas com esses ambientes ao tentar usá-los, pois os aplicativos Node.js do lado do servidor são o único ambiente compatível com esta biblioteca . Para outros ambientes, experimente a API Maps JavaScript, que contém um conjunto de recursos comparável e é explicitamente destinada ao uso com JavaScript do lado do cliente.
$ npm install @googlemaps/google-maps-services-js
Abaixo está um exemplo simples de chamada do método de elevação na classe cliente.
Importe o cliente Google Maps usando TypeScript e módulo ES6:
import { Client } from "@googlemaps/google-maps-services-js" ;
Alternativamente, usando JavaScript sem suporte ao módulo ES6:
const { Client } = require ( "@googlemaps/google-maps-services-js" ) ;
Agora instancie o cliente para fazer uma chamada para uma das APIs.
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 ) ;
} ) ;
A documentação de referência gerada pode ser encontrada aqui. Os tipos TypeScript são a documentação oficial desta biblioteca e podem diferir ligeiramente das descrições.
Para executar os testes ponta a ponta, você precisará fornecer sua chave de API por meio de uma variável de ambiente.
$ export GOOGLE_MAPS_API_KEY=AIza-your-api-key
$ npm test
Esta seção discute a migração de @google/maps para @googlemaps/google-maps-services-js e as diferenças entre os dois.
Nota : As duas bibliotecas não compartilham métodos ou interfaces.
A principal diferença é que @google/maps
expõe um método público que usa parâmetros individuais como argumentos, enquanto @googlemaps/google-maps-services-js
expõe métodos que usam params
, headers
, body
, instance
(consulte Axios). Isto permite acesso direto à camada de transporte sem a complexidade inerente à antiga biblioteca. Abaixo estão dois exemplos.
@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 ) ;
} ) ;
As principais diferenças estão na tabela a seguir.
Velho | Novo |
---|---|
Pode fornecer parâmetros | Pode fornecer parâmetros, cabeçalhos, instância, tempo limite (consulte Axios Request Config) |
Chave API configurada no Cliente | Chave de API configurada por método no objeto params |
A repetição é suportada | A nova tentativa é configurável via axios-retry ou retry-axios |
Não usa promessas por padrão | Promessas são padrão |
As digitações estão em @types/googlemaps | As digitações estão incluídas |
Não suporta manter vivo | Apoia manter-se vivo |
Não suporta interceptadores | Suporta interceptadores |
Não suporta cancelamento | Suporta cancelamento |
A autenticação via ID do cliente e segredo de assinatura de URL é fornecida para oferecer suporte a aplicativos legados que usam o plano Premium da Plataforma Google Maps. O plano Premium da Plataforma Google Maps não está mais disponível para inscrição ou novos clientes. Todos os novos aplicativos devem usar chaves de 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 ) ;
} ) ;
Esta biblioteca é apoiada pela comunidade. Estamos suficientemente confortáveis com a estabilidade e os recursos da biblioteca e queremos que você crie aplicativos de produção reais nela. Tentaremos apoiar, através do Stack Overflow, a superfície pública da biblioteca e manter a compatibilidade com versões anteriores no futuro; entretanto, enquanto a biblioteca estiver na versão 0.x, nos reservamos o direito de fazer alterações incompatíveis com versões anteriores. Se removermos alguma funcionalidade (normalmente porque existe uma funcionalidade melhor ou se o recurso se mostrou inviável), nossa intenção é descontinuar e dar aos desenvolvedores um ano para atualizar seu código.
Se você encontrar um bug ou tiver uma sugestão de recurso, registre um problema. Se você quiser contribuir, leia Como contribuir.