Guía
Cómo usar Native Map en Capacitor
Uso de @capgo/capacitor-native-map
Google Maps en Android, Apple MapKit en iOS y Google Maps JS en la web con un API de TypeScript para marcadores, cámara, formas, clustering y eventos.
Instalar
bun add @capgo/capacitor-native-map
bunx cap sync
Lo que expone este plugin
create: mapa embebido en un elemento DOM, otoBack: truepara un mapa detrás de HTML transparente.updateLayout: redimensionar y reposicionar el mapa nativo (píxeles CSS).setCamera/fitBounds: control de cámara y viewport.addMarker/addMarkers/removeMarker: marcadores con listeners de tap y drag.enableClustering: agrupar conjuntos densos de marcadores.enableCurrentLocation: punto de ubicación del usuario si hay permiso.- Overlays: polígonos, polilíneas, círculos y capas de tiles (varía según la plataforma).
Ejemplo de uso
Mapa embebido
import { NativeMap } from '@capgo/capacitor-native-map';
const map = await NativeMap.create({
id: 'main-map',
element: document.getElementById('map')!,
apiKey: 'YOUR_GOOGLE_MAPS_API_KEY',
config: {
center: { lat: 37.7749, lng: -122.4194 },
zoom: 12,
},
});
map.setOnMapClickListener((e) => console.log(e.latitude, e.longitude));
// In a framework component, call `await map.destroy()` from your teardown/cleanup hook.
Mapa de fondo con UI en HTML
const map = await NativeMap.create({
id: 'stores-map',
toBack: true,
apiKey: 'YOUR_GOOGLE_MAPS_API_KEY',
config: {
center: { lat: 40.7128, lng: -74.006 },
zoom: 11,
x: 0,
y: 0,
width: window.innerWidth,
height: window.innerHeight,
},
});
await map.updateLayout({
x: 0,
y: 0,
width: window.innerWidth,
height: window.innerHeight,
});
Envolver secciones del HUD con data-map-overlay (consulta la guía de inicio) para que el CSS del overlay habilite los toques; las áreas transparentes pasan los gestos al mapa.
Referencia completa
- GitHub: https://github.com/Cap-go/capacitor-native-map/
- Docs: /docs/plugins/native-map/