Эта библиотека представляет собой рефакторинг предыдущей версии, опубликованной в @google/maps. Сейчас он публикуется в @googlemaps/google-maps-services-js.
Используете Node.js? Хотите что-то геокодировать? Ищете направления? Эта библиотека добавляет веб-службы API Google Maps в ваше приложение Node.js.
Клиент Node.js для служб Google Maps — это клиентская библиотека Node.js для следующих API Карт Google:
Имейте в виду, что к использованию API, когда доступ к ним осуществляется через эту библиотеку, применяются те же условия.
Эта библиотека предназначена для серверных приложений Node.js. Попытка использовать его на стороне клиента, в браузере или в любой другой среде, например React Native, в некоторых случаях может сработать, но в большинстве случаев — нет. Пожалуйста, воздержитесь от сообщения о проблемах с этими средами при попытке их использования, поскольку серверные приложения Node.js — единственная поддерживаемая среда для этой библиотеки . В других средах попробуйте Maps JavaScript API, который содержит сопоставимый набор функций и явно предназначен для использования с клиентским JavaScript.
$ npm install @googlemaps/google-maps-services-js
Ниже приведен простой пример вызова метода повышения прав в клиентском классе.
Импортируйте клиент Google Maps, используя TypeScript и модуль ES6:
import { Client } from "@googlemaps/google-maps-services-js" ;
Альтернативно использование JavaScript без поддержки модулей ES6:
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 настроен на клиенте | Ключ API, настроенный для каждого метода в объекте параметров |
Повторная попытка поддерживается | Повторную попытку можно настроить с помощью axios-retry или retry-axios. |
По умолчанию не использует обещания | Обещания по умолчанию |
Вводы находятся в @types/googlemaps. | Типирование включено |
Не поддерживает сохранение жизни | Поддерживает жизнь |
Не поддерживает перехватчики | Поддерживает перехватчики |
Не поддерживает отмену | Поддерживает отмену |
Аутентификация с помощью идентификатора клиента и секрета подписи URL-адреса предусмотрена для поддержки устаревших приложений, использующих план Премиум платформы Google Maps. План Премиум платформы Google Карт больше недоступен для зарегистрированных и новых клиентов. Все новые приложения должны использовать ключи 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, мы оставляем за собой право вносить обратно несовместимые изменения. Если мы удалим некоторую функциональность (обычно потому, что существует лучшая функциональность или если эта функция оказалась неосуществимой), наше намерение состоит в том, чтобы объявить ее устаревшей и дать разработчикам год на обновление своего кода.
Если вы обнаружили ошибку или у вас есть предложение по функции, зарегистрируйте проблему. Если вы хотите внести свой вклад, прочтите «Как внести свой вклад».