Skip to content
Docs version
@hungpvq/vue-map@1.2.0@hungpvq/vue-map-core@1.2.0@hungpvq/vue-map-dataset@1.2.0@hungpvq/vue-map-draw@1.2.0@hungpvq/map-draw@1.2.0@hungpvq/react-map@1.2.0@hungpvq/react-map-core@1.2.0@hungpvq/react-map-dataset@1.2.0@hungpvq/react-map-draw@1.2.0

BaseMap Control ​

Usecase ​

  • Allow end users to switch base layers (streets/satellite/dark) quickly.
  • Preconfigure a curated list of base maps for consistency across apps.

Props ​

PropDescriptionTypeRequiredDefault Value
mapIdstringfalse--
dragIdstringfalse--
btnWidthnumberfalse40
controlOrderCSS flex order for the standalone buttonnumberfalse0
position'top-left', 'top-right', 'bottom-left', 'bottom-right'false'bottom-right'
controlLayout'standalone' (corner), 'toolbar' (always in toolbar), 'button' (always corner; not auto-promoted on mobile)'standalone' | 'toolbar' | 'button'false'standalone'
controlVisiblebooleanfalsetrue

Map also accepts buttonInMobile ('button' | 'toolbar' | 'menu', default 'button'). On viewports ≤640px:

  • 'button' — leave corner buttons unchanged
  • 'toolbar' — move declared control buttons into a single ToolbarControl host (except controlLayout="button"). Mount one ToolbarControl in the map slot
  • 'menu' — hide per-control corner buttons; fan out intact clusters by position into corner stacks with outside-in More. Mount one ToolbarControl.

See ToolbarControl.

and

PropDescriptionTypeRequiredDefault Value
titlestringfalse``
defaultBaseMapstringfalseOpen Street Map
controlIconstringfalse``
baseMapsBaseMapItem[]arrayfalse``
showOpacityShow opacity slider in the settings popupbooleanfalsefalse
allowAddBasemapShow an Add tile in the basemap grid (opens URL form). Custom tiles show a remove control on the thumbnail.booleanfalsefalse

Slots ​

NameDescription
defaultid:string

Events ​

EventPayloadDescription
basemap-changeBasemapFired when basemap changes

Usage ​

Vue ​

vue
<script setup lang="ts">
import { Map } from '@hungpvq/vue-map-core';
import { BaseMapControl } from '@hungpvq/vue-map-core';
import '@hungpvq/vue-map-core/style.css';
const baseMaps = [];
</script>

<template>
  <Map>
    <BaseMapControl :baseMaps="baseMaps" />
  </Map>
</template>

React ​

tsx
import { Map, BaseMapControl } from '@hungpvq/react-map-core';
import '@hungpvq/react-map-core/style.css';

const baseMaps = [];

<Map>
  <BaseMapControl baseMaps={baseMaps} />
</Map>;