跳到主要内容
版本:v7

@capacitor/google-maps

在 Capacitor 中使用 Google 地图

安装

npm install @capacitor/google-maps@latest-7
npx cap sync

API 密钥

要在任何平台上使用 Google Maps SDK,都需要一个关联了已启用计费账户的 API 密钥。你可以从 Google Cloud Console 获取这些密钥。Android、iOS 和 Javascript 三个平台都需要这个步骤。更多关于获取这些 API 密钥的信息,可以在各个平台的 Google Maps 文档 中找到。

iOS

Google Maps SDK 支持通过 enableCurrentLocation(bool) 显示用户的当前位置。要使用此功能,Apple 要求在 Info.plist 中指定隐私描述:

  • NSLocationWhenInUseUsageDescription (Privacy - Location When In Use Usage Description)

有关在 Xcode 中设置 iOS 权限的更多信息,请参阅 iOS 指南 中的 配置 Info.plist

TypeScript 配置

你的项目还需要在 tsconfig.json 中将 skipLibCheck 设置为 true

从旧版本迁移

现在主 Google Maps SDK 支持在 Apple Silicon Mac 的模拟器上运行,但请确保你已安装最新版本的 Google-Maps-iOS-Utils

如果你之前为获取未发布版本添加了临时解决方案,现在可以通过从 ios/App/Podfile 中删除以下行来移除它:

pod 'Google-Maps-iOS-Utils', :git => 'https://github.com/googlemaps/google-maps-ios-utils.git', :commit => '637954e5bcb2a879c11a6f2cead153a6bad5339f'

然后在 ios/App/ 文件夹中运行 pod update Google-Maps-iOS-Utils

cd ios/App
pod update Google-Maps-iOS-Utils

Android

适用于 Android 的 Google Maps SDK 要求你将 API 密钥添加到项目的 AndroidManifest.xml 文件中。

<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY_HERE"/>

要使用某些定位功能,SDK 还要求将以下权限添加到你的 AndroidManifest.xml 中:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

变量

本插件将使用以下项目变量(定义在应用的 variables.gradle 文件中):

  • googleMapsPlayServicesVersioncom.google.android.gms:play-services-maps 的版本(默认值:18.2.0
  • googleMapsUtilsVersioncom.google.maps.android:android-maps-utils 的版本(默认值:3.8.2
  • googleMapsKtxVersioncom.google.maps.android:maps-ktx 的版本(默认值:5.0.0
  • googleMapsUtilsKtxVersioncom.google.maps.android:maps-utils-ktx 的版本(默认值:5.0.0
  • kotlinxCoroutinesVersionorg.jetbrains.kotlinx:kotlinx-coroutines-androidorg.jetbrains.kotlinx:kotlinx-coroutines-core 的版本(默认值:1.7.3
  • androidxCoreKTXVersionandroidx.core:core-ktx 的版本(默认值:1.12.0
  • kotlin_versionorg.jetbrains.kotlin:kotlin-stdlib 的版本(默认值:1.9.10

使用方法

Google Maps Capacitor 插件附带了一个 Web 组件,你必须在应用中使用它来渲染地图,因为它能让我们在 iOS 上更有效地嵌入原生视图。插件会自动注册此 Web 组件以供你在应用中使用。

对于 Angular 用户,Angular 编译器会提示错误,警告此 Web 组件未知。可以通过修改声明组件的模块以允许自定义 Web 组件来解决此问题。

import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';

@NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})

在你的 HTML 中包含此组件并为其分配一个 ID,以便稍后可以轻松查询该元素引用。

<capacitor-google-map id="map"></capacitor-google-map>

在 Android 上,地图渲染在整个 WebView 下方,并使用此组件在滚动事件期间管理其定位。这意味着作为开发者,你必须确保 WebView 从上到下的各层都是透明的。在一个典型的 Ionic 应用中,这意味着需要为 IonContent 和根 HTML 标签等元素设置透明,以确保可以看到地图。如果在 Android 上看不到你的地图,这应该是你首先检查的地方。

在 iOS 上,我们将地图直接渲染到 WebView 中,因此不需要相同的透明效果。我们仍在研究 Android 的替代方法,并希望在未来的更新中更好地解决此问题。

Google 地图元素本身没有样式,因此你应该为其设置样式以适合页面结构的布局。因为我们正在向此槽中渲染一个视图,所以元素本身没有宽度或高度,请务必显式设置它们。

capacitor-google-map {
display: inline-block;
width: 275px;
height: 400px;
}

接下来,我们应该创建地图引用。这是通过从 Capacitor 插件导入 GoogleMap 类并调用 create 方法,并传入所需的参数来完成的。

import { GoogleMap } from '@capacitor/google-maps';

const apiKey = 'YOUR_API_KEY_HERE';

const mapRef = document.getElementById('map');

const newMap = await GoogleMap.create({
id: 'my-map', // 此地图实例的唯一标识符
element: mapRef, // 对 capacitor-google-map 元素的引用
apiKey: apiKey, // 你的 Google Maps API 密钥
config: {
center: {
// 地图渲染的初始位置
lat: 33.6,
lng: -117.9,
},
zoom: 8, // 地图渲染的初始缩放级别
},
});

至此,你的地图应该已在应用程序中创建。使用返回的地图引用,你可以通过多种方式轻松地与地图交互,这里展示其中几种。

const newMap = await GoogleMap.create({...});

// 向地图添加标记
const markerId = await newMap.addMarker({
coordinate: {
lat: 33.6,
lng: -117.9
}
});

// 以编程方式移动地图
await newMap.setCamera({
coordinate: {
lat: 33.6,
lng: -117.9
}
});

// 启用标记聚类
await newMap.enableClustering();

// 处理标记点击事件
await newMap.setOnMarkerClickListener((event) => {...});

// 清理地图引用
await newMap.destroy();

完整示例### Angular

import { GoogleMap } from '@capacitor/google-maps';

@Component({
template: `
<capacitor-google-map #map></capacitor-google-map>
<button (click)="createMap()">创建地图</button>
`,
styles: [
`
capacitor-google-map {
display: inline-block;
width: 275px;
height: 400px;
}
`,
],
})
export class MyMap {
@ViewChild('map')
mapRef: ElementRef<HTMLElement>;
newMap: GoogleMap;

async createMap() {
this.newMap = await GoogleMap.create({
id: 'my-cool-map',
element: this.mapRef.nativeElement,
apiKey: environment.apiKey,
config: {
center: {
lat: 33.6,
lng: -117.9,
},
zoom: 8,
},
});
}
}

React

import { GoogleMap } from '@capacitor/google-maps';
import { useRef } from 'react';

const MyMap: React.FC = () => {
const mapRef = useRef<HTMLElement>();
let newMap: GoogleMap;

async function createMap() {
if (!mapRef.current) return;

newMap = await GoogleMap.create({
id: 'my-cool-map',
element: mapRef.current,
apiKey: process.env.REACT_APP_YOUR_API_KEY_HERE,
config: {
center: {
lat: 33.6,
lng: -117.9
},
zoom: 8
}
})
}

return (
<div className="component-wrapper">
<capacitor-google-map ref={mapRef} style={{
display: 'inline-block',
width: 275,
height: 400
}}></capacitor-google-map>

<button onClick={createMap}>创建地图</button>
</div>
)
}

export default MyMap;

Vue

<script lang="ts" setup>
import { ref, shallowRef, useTemplateRef } from 'vue'
import { GoogleMap } from '@capacitor/google-maps'

const mapRef = useTemplateRef<HTMLElement>('mapRef')
const newMap = shallowRef<GoogleMap>()

async function createMap() {
if (!mapRef.value) return

newMap.value = await GoogleMap.create({
id: 'my-cool-map',
element: mapRef.value,
apiKey: import.meta.env.VITE_YOUR_API_KEY_HERE,
config: {
center: {
lat: 33.6,
lng: -117.9,
},
zoom: 8,
},
})
}
</script>

<template>
<capacitor-google-map
ref="mapRef"
style="display: inline-block; width: 275px; height: 400px"
></capacitor-google-map>
<button @click="createMap()">创建地图</button>
</template>

请确保您已启用识别原生自定义元素 功能,例如:

// vite.config.mts > plugins
Vue({
template: {
compilerOptions: {
isCustomElement: (tag) => tag.startsWith('capacitor-')
},
},
}),

JavaScript

<capacitor-google-map id="map"></capacitor-google-map>
<button onclick="createMap()">创建地图</button>

<style>
capacitor-google-map {
display: inline-block;
width: 275px;
height: 400px;
}
</style>

<script>
import { GoogleMap } from '@capacitor/google-maps';

const createMap = async () => {
const mapRef = document.getElementById('map');

const newMap = await GoogleMap.create({
id: 'my-map', // 该地图实例的唯一标识符
element: mapRef, // 引用 capacitor-google-map 元素
apiKey: 'YOUR_API_KEY_HERE', // 您的 Google Maps API 密钥
config: {
center: {
// 地图初始渲染的中心位置
lat: 33.6,
lng: -117.9,
},
zoom: 8, // 地图初始渲染的缩放级别
},
});
};
</script>

API

create(...)

create(options: CreateMapArgs, callback?: MapListenerCallback<MapReadyCallbackData> | undefined) => Promise<GoogleMap>
参数类型
options
CreateMapArgs
callback
MapListenerCallback<MapReadyCallbackData>

返回值: Promise<GoogleMap>


enableTouch()

enableTouch() => Promise<void>

启用触摸交互。


disableTouch()

disableTouch() => Promise<void>

禁用触摸交互。

--------------------### enableClustering(...)

enableClustering(minClusterSize?: number | undefined) => Promise<void>
参数类型说明
minClusterSizenumber可以聚合成一个标记簇的最小标记数量。默认值为 4 个标记。

disableClustering()

disableClustering() => Promise<void>

addTileOverlay(...)

addTileOverlay(tileOverlay: TileOverlay) => Promise<{ id: string; }>
参数类型
tileOverlay
TileOverlay

返回值: Promise<{ id: string; }>


removeTileOverlay(...)

removeTileOverlay(id: string) => Promise<void>
参数类型
idstring

addMarker(...)

addMarker(marker: Marker) => Promise<string>
参数类型
marker
Marker

返回值: Promise<string>


addMarkers(...)

addMarkers(markers: Marker[]) => Promise<string[]>
参数类型
markersMarker[]

返回值: Promise<string[]>


removeMarker(...)

removeMarker(id: string) => Promise<void>
参数类型
idstring

removeMarkers(...)

removeMarkers(ids: string[]) => Promise<void>
参数类型
idsstring[]

addPolygons(...)

addPolygons(polygons: Polygon[]) => Promise<string[]>
参数类型
polygonsPolygon[]

返回值: Promise<string[]>


removePolygons(...)

removePolygons(ids: string[]) => Promise<void>
参数类型
idsstring[]

addCircles(...)

addCircles(circles: Circle[]) => Promise<string[]>
参数类型
circlesCircle[]

返回值: Promise<string[]>


removeCircles(...)

removeCircles(ids: string[]) => Promise<void>
参数类型
idsstring[]

addPolylines(...)

addPolylines(polylines: Polyline[]) => Promise<string[]>
参数类型
polylinesPolyline[]

返回值: Promise<string[]>


removePolylines(...)

removePolylines(ids: string[]) => Promise<void>
参数类型
idsstring[]

destroy()

destroy() => Promise<void>

setCamera(...)

setCamera(config: CameraConfig) => Promise<void>
参数类型
config
CameraConfig

getMapType()

getMapType() => Promise<MapType>

获取当前地图类型

返回值:

Promise<MapType>


setMapType(...)

setMapType(mapType: MapType) => Promise<void>
参数类型
mapType
MapType

enableIndoorMaps(...)

enableIndoorMaps(enabled: boolean) => Promise<void>
参数类型
enabledboolean

enableTrafficLayer(...)

enableTrafficLayer(enabled: boolean) => Promise<void>
参数类型
enabledboolean

enableAccessibilityElements(...)

enableAccessibilityElements(enabled: boolean) => Promise<void>
参数类型
enabledboolean

enableCurrentLocation(...)

enableCurrentLocation(enabled: boolean) => Promise<void>
参数类型
enabledboolean

setPadding(...)

setPadding(padding: MapPadding) => Promise<void>
参数类型
padding
MapPadding

getMapBounds()

getMapBounds() => Promise<LatLngBounds>

获取地图当前视口的经纬度边界。

返回值: Promise<LatLngBounds>

--------------------### fitBounds(...)

fitBounds(bounds: LatLngBounds, padding?: number | undefined) => Promise<void>

将地图视口调整到包含指定边界范围。

参数类型描述
boundsLatLngBounds要适配到视口中的边界范围。
paddingnumber可选的内边距(以像素为单位)。边界将被适配到去除内边距后剩余的地图区域内。

setOnBoundsChangedListener(...)

setOnBoundsChangedListener(callback?: MapListenerCallback<CameraIdleCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<CameraIdleCallbackData>

setOnCameraIdleListener(...)

setOnCameraIdleListener(callback?: MapListenerCallback<CameraIdleCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<CameraIdleCallbackData>

setOnCameraMoveStartedListener(...)

setOnCameraMoveStartedListener(callback?: MapListenerCallback<CameraMoveStartedCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<CameraMoveStartedCallbackData>

setOnClusterClickListener(...)

setOnClusterClickListener(callback?: MapListenerCallback<ClusterClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<ClusterClickCallbackData>

setOnClusterInfoWindowClickListener(...)

setOnClusterInfoWindowClickListener(callback?: MapListenerCallback<ClusterClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<ClusterClickCallbackData>

setOnInfoWindowClickListener(...)

setOnInfoWindowClickListener(callback?: MapListenerCallback<MarkerClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<MarkerClickCallbackData>

setOnMapClickListener(...)

setOnMapClickListener(callback?: MapListenerCallback<MapClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<MapClickCallbackData>

setOnMarkerClickListener(...)

setOnMarkerClickListener(callback?: MapListenerCallback<MarkerClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<MarkerClickCallbackData>

setOnPolygonClickListener(...)

setOnPolygonClickListener(callback?: MapListenerCallback<PolygonClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<PolygonClickCallbackData>

--------------------### 设置圆形点击监听器

setOnCircleClickListener(callback?: MapListenerCallback<CircleClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<CircleClickCallbackData>

设置折线点击监听器

setOnPolylineClickListener(callback?: MapListenerCallback<PolylineCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<PolylineCallbackData>

设置标记拖拽开始监听器

setOnMarkerDragStartListener(callback?: MapListenerCallback<MarkerClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<MarkerClickCallbackData>

设置标记拖拽监听器

setOnMarkerDragListener(callback?: MapListenerCallback<MarkerClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<MarkerClickCallbackData>

设置标记拖拽结束监听器

setOnMarkerDragEndListener(callback?: MapListenerCallback<MarkerClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<MarkerClickCallbackData>

设置我的位置按钮点击监听器

setOnMyLocationButtonClickListener(callback?: MapListenerCallback<MyLocationButtonClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<MyLocationButtonClickCallbackData>

设置我的位置点击监听器

setOnMyLocationClickListener(callback?: MapListenerCallback<MapClickCallbackData> | undefined) => Promise<void>
参数类型
callback
MapListenerCallback<MapClickCallbackData>

接口#### CreateMapArgs

一个包含创建地图时所使用选项的接口。

属性类型描述默认值
idstring地图实例的唯一标识符。
apiKeystringGoogle Maps SDK API 密钥。
config
GoogleMapConfig
地图的初始配置设置。
elementHTMLElementGoogle 地图视图将挂载的 DOM 元素,它决定了地图的大小和位置。
forceCreateboolean如果已存在具有相同 id 的地图实例,则销毁并重新创建一个新实例。false
regionstring区域参数会改变您的应用,使其提供不同的地图图块或对应用进行偏置(例如将地理编码结果偏向该区域)。仅适用于 web 端。
languagestring语言参数会影响控件名称、版权声明、驾驶路线和控制标签,以及服务请求的响应。仅适用于 web 端。

在 Web 端,所有 JavaScript Google Maps 配置选项均可使用,因为 GoogleMapConfig 继承自 google.maps.MapOptions。 而在 iOS 和 Android 端,只有 GoogleMapConfig 中声明的配置选项才可用。| 属性 | 类型 | 说明 | 默认值 | 引入版本 | | ---------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ----- | | width | number | 覆盖原生地图的宽度。 | | | | height | number | 覆盖原生地图的高度。 | | | | x | number | 覆盖原生地图的绝对 x 坐标位置。 | | | | y | number | 覆盖原生地图的绝对 y 坐标位置。 | | | | center |

LatLng
| 相机指向的地球默认位置。 | | | | zoom | number | 设置地图的缩放级别。 | | | | androidLiteMode | boolean | 在 Android 上启用基于图像的轻量模式。 | false | | | devicePixelRatio | number | 覆盖原生地图的像素比。 | | | | styles | MapTypeStyle[] | null | 应用于每种默认地图类型的样式。注意:对于卫星、混合和地形模式,这些样式仅适用于标签和几何图形。 | | 4.3.0 | | mapId | string | 与特定地图样式或功能关联的地图 ID。 使用地图 ID 仅适用于 Web。 | | 5.4.0 | | androidMapId | string | 与特定地图样式或功能关联的地图 ID。 使用地图 ID 仅适用于 Android。 | | 5.4.0 | | iOSMapId | string | 与特定地图样式或功能关联的地图 ID。 使用地图 ID 仅适用于 iOS。 | | 5.4.0 | | maxZoom | number | null | 地图上显示的最大缩放级别。如果省略或设为 null,则使用当前地图类型的最大缩放级别。有效的缩放值是零到支持的 最大缩放级别 之间的数字。 | | | | minZoom | number | null | 地图上显示的最小缩放级别。如果省略或设为 null,则使用当前地图类型的最小缩放级别。有效的缩放值是零到支持的 最大缩放级别 之间的数字。 | | | | mapTypeId | string | null | 初始地图类型 ID。默认为 ROADMAP。 | | || heading | number | null | 航拍影像的朝向,以正北方向为基准,按顺时针方向以度数计量。朝向会被自动调整至拥有可用影像的最近角度。 | | | | restriction | MapRestriction | null | 定义限制用户可访问地图区域的边界。设置后,用户只能在相机视图保持在该边界限制范围内时进行平移和缩放操作。 | | |#### LatLng

一个表示经纬度坐标对的接口。

属性类型描述
latnumber坐标纬度,以度为单位。取值范围为 [-90, 90]。
lngnumber坐标经度,以度为单位。取值范围为 [-180, 180]。

MapReadyCallbackData

属性类型
mapIdstring

TileOverlay

图块覆盖层是在特定缩放级别下覆盖在地图顶部的图像。支持 iOS、Android 和 Web 平台。

属性类型描述默认值
urlstring表示图块 URL 的字符串。应包含 {x}{y}{z} 占位符,以便替换为实际的 x、y 和缩放级别值。支持 iOS、Android 和 Web 平台。
opacitynumber图块覆盖层的不透明度,范围在 0(完全透明)到 1 之间(包含)。支持 iOS、Android 和 Web 平台。undefined
visibleboolean控制此图块覆盖层是否可见。仅支持 Android 平台。undefined
zIndexnumber图块覆盖层的 zIndex 层级。支持 iOS 和 Android 平台。undefined

Marker

标记是放置在地图表面特定点的图标。

属性类型描述默认值自版本
coordinate
LatLng
标记位置
opacitynumber设置标记的不透明度,范围在 0(完全透明)到 1 之间(包含)。1
titlestring标题,覆盖层的简短描述。
snippetstring摘要文本,在选中时显示在信息窗口的标题下方。
isFlatboolean控制此标记是平贴在地球表面还是面向摄像机的广告牌。false
iconUrlstring要渲染的标记图标路径。可以是相对于 Web 应用公共目录的路径,也可以是远程标记图标的 https URL。原生平台不支持 SVG 格式。4.2.0
iconSize
Size
控制通过 iconUrl 设置的标记图像的缩放尺寸。4.2.0
iconOrigin
Point
图像在精灵图(如果有)中的位置。默认情况下,原点位于图像的左上角。4.2.0
iconAnchor
Point
用于将图像锚定到地图上标记位置的对应点。默认情况下,锚点位于图像底边的中心点。4.2.0
tintColor{ r: number; g: number; b: number; a: number; }自定义默认标记图像的颜色。每个值必须在 0 到 255 之间。仅支持 iOS 和 Android 平台。4.2.0
draggableboolean控制此标记是否可以通过交互方式拖动。false
zIndexnumber指定此标记相对于地图上其他标记的堆叠顺序。z-index 较高的标记会绘制在 z-index 较低的标记之上。0

Size

属性类型
widthnumber
heightnumber

Point

属性类型
xnumber
ynumber

在 Web 平台上,所有 JavaScript Polygon 选项均可用,因为 Polygon 继承了 google.maps.PolygonOptions。
在 iOS 和 Android 平台上,只有 Polygon 上声明的配置选项可用。| 属性 | 类型 | 说明 | | ------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | paths | any[] | MVCArray<any> | 用于定义闭合环路的坐标序列。与折线不同,多边形可以由一条或多条路径组成。因此,paths 属性可以指定一个或多个 <code>LatLng</code> 坐标数组。路径会自动闭合;无需将路径的第一个顶点重复作为最后一个顶点。简单多边形可以使用单个 <code>LatLng</code> 数组定义。更复杂的多边形可以指定数组的数组。任何简单数组都会被转换为 <code><a href="#MVCArray">MVCArray</a></code>。从 <code>MVCArray</code> 中插入或删除 <code>LatLng</code> 坐标会自动更新地图上的多边形。 | | strokeColor | string | 描边颜色。支持所有 CSS3 颜色,但扩展命名颜色除外。 | | strokeOpacity | number | 描边不透明度,取值范围为 0.0 到 1.0。 | | strokeWeight | number | 描边宽度,单位为像素。 | | fillColor | string | 填充颜色。支持所有 CSS3 颜色,但扩展命名颜色除外。 | | fillOpacity | number | 填充不透明度,取值范围为 0.0 到 1.0。 || geodesic | boolean | 当设为 <code>true</code> 时,多边形的边将被解释为测地线并会跟随地球的曲率。当设为 <code>false</code> 时,多边形的边将在屏幕空间内渲染为直线。请注意,测地线多边形的形状在被拖动时可能会发生变化,因为其尺寸是相对于地球表面保持的。 | | clickable | boolean | 指示此 <code>Polygon</code> 是否处理鼠标事件。 | | title | string | 标题,即覆盖物的简短描述。某些覆盖物(例如标记)会在地图上显示标题。标题也是默认的无障碍文本。仅在 iOS 上可用。 | | tag | string | |#### Circle 圆形

在 Web 平台上,所有 JavaScript Circle 选项都可用,因为 Circle 继承自 google.maps.CircleOptions。 在 iOS 和 Android 平台上,只有 Circle 中声明的配置选项可用。

属性类型描述
fillColorstring填充颜色。支持所有 CSS3 颜色,但扩展命名颜色除外。
fillOpacitynumber填充不透明度,范围在 0.0 到 1.0 之间。
strokeColorstring描边颜色。支持所有 CSS3 颜色,但扩展命名颜色除外。
strokeWeightnumber描边宽度(以像素为单位)。
geodesicboolean
clickableboolean指示此 <code&gtCircle</code> 是否处理鼠标事件。
titlestring标题,即覆盖物的简短描述。某些覆盖物(例如标记)会在地图上显示标题。标题也是默认的无障碍访问文本。仅在 iOS 上可用。
tagstring

Polyline 折线

在 Web 平台上,所有 JavaScript Polyline 选项都可用,因为 Polyline 继承自 google.maps.PolylineOptions。 在 iOS 和 Android 平台上,只有 Polyline 中声明的配置选项可用。

属性类型描述
strokeColorstring描边颜色。支持所有 CSS3 颜色,但扩展命名颜色除外。
strokeOpacitynumber描边不透明度,范围在 0.0 到 1.0 之间。
strokeWeightnumber描边宽度(以像素为单位)。
geodesicboolean当为 <code>true</code> 时,多边形的边将被解释为测地线并会跟随地球曲率。当为 <code>false</code> 时,多边形的边将在屏幕空间中渲染为直线。请注意,测地线多边形的形状在被拖动时可能会发生变化,因为其尺寸相对于地球表面保持不变。
clickableboolean指示此 <code&gtPolyline</code> 是否处理鼠标事件。
tagstring
styleSpansStyleSpan[]用于指定折线一个或多个线段的颜色。styleSpans 属性是一个 StyleSpan 对象数组。设置此属性是更改折线颜色的首选方法。仅在 iOS 和 Android 上可用。

StyleSpan 样式跨度

描述折线某个区域的样式。

属性类型描述
colorstring描边颜色。支持所有 CSS3 颜色,但扩展命名颜色除外。
segmentsnumber此跨度的长度(以线段数量表示)。

Google 地图摄像头的配置属性

属性类型描述默认值
coordinate
LatLng
摄像头指向的地球位置。
zoomnumber设置地图的缩放级别。
bearingnumber摄像头的方位角,以真北方向为基准,顺时针角度计算。0
anglenumber摄像头与天底(垂直向下指向地球)的角度,单位为度。仅允许的值为 0 和 45。0
animateboolean是否以动画方式过渡到新的摄像头属性。false
animationDurationnumber此配置选项当前未被使用。

MapPadding

用于设置视图"可见"区域的内边距控件。

属性类型
topnumber
leftnumber
rightnumber
bottomnumber

CameraIdleCallbackData

属性类型
mapIdstring
boundsLatLngBounds
bearingnumber
latitudenumber
longitudenumber
tiltnumber
zoomnumber

CameraMoveStartedCallbackData

属性类型
mapIdstring
isGestureboolean

ClusterClickCallbackData

属性类型
mapIdstring
latitudenumber
longitudenumber
sizenumber
itemsMarkerCallbackData[]

MarkerCallbackData

属性类型
markerIdstring
latitudenumber
longitudenumber
titlestring
snippetstring

MarkerClickCallbackData

属性类型
mapIdstring

MapClickCallbackData

属性类型
mapIdstring
latitudenumber
longitudenumber

PolygonClickCallbackData

属性类型
mapIdstring
polygonIdstring
tagstring

CircleClickCallbackData

属性类型
mapIdstring
circleIdstring
tagstring

PolylineCallbackData

属性类型
polylineIdstring
tagstring

MyLocationButtonClickCallbackData

属性类型
mapIdstring

类型别名

MapListenerCallback

地图事件触发时调用的回调函数。

(data: T): void

Marker

支持"传统"或"高级"类型的标记。

google.maps.Marker | google.maps.marker.AdvancedMarkerElement

枚举

MapType

成员描述
Normal'Normal'基础地图。
Hybrid'Hybrid'卫星图像叠加道路和标签。
Satellite'Satellite'无标签的卫星图像。
Terrain'Terrain'地形数据。
None'None'无底图瓦片。