Uso Básico (Recomendado)
Solo necesitas 3 v-model: dirección, latitud y longitud. El evento @change te da todos los datos.
Inicializar desde Coordenadas
Pasa lat y lng iniciales con geocode-on-mount para obtener la dirección automáticamente.
<GoogleGeoInput v-model="address" v-model:lat="lat" v-model:lng="lng" geocode-on-mount />
Personalización
Personaliza país, tipo de lugar, y desactiva funciones que no necesites.
Control Programático
Usa ref para llamar métodos: clear(), focus(), openMapPicker()
Validación con Rules
Usa rules para validaciones personalizadas. El componente soporta todas las reglas de Vuetify.
:rules="[
  v => !!v || 'La dirección es requerida',
  v => v?.length >= 10 || 'Mínimo 10 caracteres',
  v => lat5 !== null || 'Debe seleccionar una ubicación válida'
]"
Documentación de API

Props

PropTipoDefaultDescripción
v-modelstring''Dirección completa
v-model:latnumbernullLatitud
v-model:lngnumbernullLongitud
labelstring'Dirección'Etiqueta del campo
countrystring | string[]'co'Filtro de país (ej: 'co', ['co', 'mx'])
geocodeOnMountbooleanfalseObtiene dirección de lat/lng inicial
enableMapPickerbooleantrueMuestra botón de mapa
enableCurrentLocationbooleantrueMuestra botón de ubicación actual
requiredbooleanfalseCampo obligatorio
rulesarray[]Reglas de validación Vuetify

Eventos

EventoDatosDescripción
@change{ address, lat, lng, placeId, source }Cuando cambia la ubicación (source: 'autocomplete' | 'map' | 'geolocation' | 'geocode' | 'clear')
@errorErrorCuando ocurre un error

Métodos (vía ref)

MétodoDescripción
clear()Limpia el campo y los datos
focus()Enfoca el campo de texto
openMapPicker()Abre el selector de mapa
geocodeFromCoordinates(lat, lng)Obtiene dirección desde coordenadas

Ejemplo de Integración Ultra Simple

<template>
  <v-form>
    <GoogleGeoInput
      v-model="cliente.direccion"
      v-model:lat="cliente.lat"
      v-model:lng="cliente.lng"
      label="Dirección"
      required
      @change="guardarUbicacion"
    />
  </v-form>
</template>

<script setup>
const cliente = reactive({
  direccion: '',
  lat: null,
  lng: null
})

const guardarUbicacion = (data) => {
  // data = { address, lat, lng, placeId, source }
  console.log(`Ubicación desde: ${data.source}`)
  // Guardar en BD...
}
</script>

💡 Nota: El evento @change te da todos los datos necesarios: dirección, coordenadas, placeId y la fuente (autocomplete, map, geolocation).