Skip to main content

The install function

This page explains what createGmapVuePlugin() does when you call app.use(...). For a first map, start with the quick start instead.

App-level state

The install function receives your plugin options, merges them with defaults, and creates a lazy promise for the Google Maps JavaScript API.

The plugin exposes that state in two ways:

  • app.config.globalProperties.$gmapApiPromiseLazy
  • app.config.globalProperties.$gmapOptions
  • Vue provide() entries consumed by the Composition API helpers
plugin main.ts
app.config.globalProperties.$gmapApiPromiseLazy = googleMapsApiPromiseLazy;
app.config.globalProperties.$gmapOptions = finalOptions;
app.provide($gmapOptions, finalOptions);
app.provide($gmapApiPromiseLazy, googleMapsApiPromiseLazy);

Use the documented composables when you are writing Composition API code. See global properties and composables.

Default Google Maps libraries

The plugin defaults load.libraries to "places". Set the option explicitly when your app needs additional libraries.

main.ts
app.use(
createGmapVuePlugin({
load: {
key: import.meta.env.VITE_GOOGLE_MAPS_API_KEY,
libraries: "places,visualization",
},
}),
);

Prefer comma-separated strings in public app code because the plugin option type documents libraries as a string.

Global components

By default, the plugin registers all Vue components globally and lazy-loads their implementation.

Common global names include:

  • GmvMap
  • GmvMarker
  • GmvInfoWindow
  • GmvAutocomplete
  • GmvCircle, GmvPolygon, GmvPolyline, GmvRectangle
  • GmvHeatmapLayer, GmvKmlLayer, GmvStreetViewPanorama
  • GmvCluster

See the components entrypoint for the full export-to-global-name mapping.

note

GmvCluster is registered by default. The package already depends on @googlemaps/markerclusterer, so app users normally do not need to install it separately.