跳过主要内容

原生地图 Capacitor 插件

Google Maps 在 Android 上,Apple MapKit 在 iOS 上,Google Maps JS 在 web 上,使用一个标记、摄像头和覆盖物的 API

安装

bun add @capgo/capacitor-native-map bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-native-map
  • pnpm add @capgo/capacitor-native-map
  • yarn add @capgo/capacitor-native-map

指南

如何在 {Capacitor} 中使用 Native Map

使用@capgo/capacitor-native-map

Android上使用Google Maps、iOS上使用Apple MapKit、Web上使用Google Maps JS,仅需一个用于标记、摄像头、形状、聚类和事件的TypeScriptAPI

安装

bun add @capgo/capacitor-native-map
bunx cap sync

此插件暴露的内容

  • create:在DOM元素中嵌入地图,或者 toBack: true :在透明的HTML后面显示地图。
  • updateLayout:调整和重新定位原生地图(CSS像素)。
  • setCamera / fitBounds:控制摄像头和视图。
  • addMarker / addMarkers / removeMarker:添加支持点击和拖拽的标记。
  • enableClustering:将密集的标记集分组。
  • enableCurrentLocation:在允许的情况下显示用户位置点。
  • :多边形、多边线、圆形和瓦片层(根据平台不同)。

示例使用

嵌入式地图

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.

背景地图

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,
});

Wrap HUD 部分 data-map-overlay (参见入门指南) 因此,覆盖层 CSS 可以启用点击事件;透明区域将手势传递给地图。

完整参考

常见问题

原生地图插件常见问题

如何在Capacitor应用中安装原生地图插件?

运行"bun add @capgo/capacitor-native-map"(或"npm install @capgo/capacitor-native-map"),然后运行"bunx cap sync",使iOS和Android项目捕获原生code。从"@capgo/capacitor-native-map"中导入它到你的应用code。

是否@capgo/capacitor-native-map与React、Vue和Angular兼容?

是的。原生地图是一个Capacitor包,因此它与任何在Capacitor中运行的Web框架一起工作,包括Ionic、React、Vue、Angular、Svelte和普通JavaScript。

Which Capacitor version does @capgo/capacitor-native-map support?

Capgo插件遵循Capacitor的主要版本:使用与Capacitor主要版本匹配的插件主要版本(例如插件v8与Capacitor 8)。在GitHub README中列出的兼容性表格列出了维护的版本。

是否@capgo/capacitor-native-map 免费且开源?

是。源码code在GitHub上公开,https://github.com/Cap-go/capacitor-native-map/,并且可以从npm免费安装。欢迎bug报告和pull请求。

是否可以在App Store不经过审查更新code?

安装或升级插件会改变native code,因此需要新建一个商店包。之后,使用Capgo实时更新的JavaScript、HTML和CSS代码可以立即部署。

不必等待应用程序审查就可以将 Native Map 的更改推送到商店

一旦插件在您的商店构建中,Capgo 实时更新将将您的 JavaScript、HTML 和 CSS 更改推送给用户,仅需几分钟。

从 Capgo 开始