3D Maps

Map3DElement 类

google.maps.maps3d.Map3DElement 类

Map3DElement 是 3D 地图视图的 HTML 接口。请注意,必须设置 mode,3D 地图才能开始渲染。

自定义元素:
<gmp-map-3d center="lat,lng,altitude" default-ui-hidden description="string" gesture-handling="auto" heading="number" internal-usage-attribution-ids="id1 id2" map-id="string" max-altitude="number" max-heading="number" max-tilt="number" min-altitude="number" min-heading="number" min-tilt="number" mode="hybrid" range="number" roll="number" tilt="number" default-ui-disabled></gmp-map-3d>

此类扩展了 HTMLElement。

此类实现 Map3DElementOptions。

通过拨打 const {Map3DElement} = await google.maps.importLibrary("maps3d") 访问。
请参阅 Maps JavaScript API 中的库。

Map3DElement
Map3DElement([options])
参数:
bounds
设置后,会将镜头位置限制在指定的纬度/经度边界内。请注意,边界之外的对象仍会渲染。边界可以同时限制经度和纬度,也可以仅限制纬度或经度。对于仅限纬度的边界,请分别使用 -180 和 180 的西经和东经。对于仅限经度的边界,请分别使用 90 和 -90 的北纬和南纬。
center
地图中心,以 LatLngAltitude 表示,其中海拔高度以地面以上的高度(以米为单位)表示。请注意,这不一定是镜头所在的位置,因为 range 字段会影响镜头与地图中心的距离。如果未设置,则默认为 {lat: 0, lng: 0, altitude: 63170000}。63170000 米是允许的最大海拔高度(地球半径乘以 10)。
HTML 属性:
  • <gmp-map-3d center="lat,lng,altitude"></gmp-map-3d>
defaultUIHidden
类型:boolean optional
默认值:false
如果为 true,则所有默认界面按钮都会隐藏。
HTML 属性:
  • <gmp-map-3d default-ui-hidden></gmp-map-3d>
description
类型:string optional
如果提供了无障碍功能说明(例如,用于屏幕阅读器),则会使用提供的值将该说明添加到地图中。
HTML 属性:
  • <gmp-map-3d description="string"></gmp-map-3d>
gestureHandling
类型:GestureHandling optional
控制协作手势处理。如果设置为 COOPERATIVE,则需要使用辅助键或双指手势才能滚动地图。如果设置为 GREEDY,则无法通过地图元素上的用户事件滚动宿主页面。如果设置为 AUTO,手势处理方式将由托管页面的可滚动性决定。
HTML 属性:
  • <gmp-map-3d gesture-handling="auto"></gmp-map-3d>
  • <gmp-map-3d gesture-handling="cooperative"></gmp-map-3d>
  • <gmp-map-3d gesture-handling="greedy"></gmp-map-3d>
heading
类型:number optional
地图的罗盘航向角(以度为单位),其中正北为零。如果没有倾斜,任何横滚都会被解读为航向。
HTML 属性:
  • <gmp-map-3d heading="number"></gmp-map-3d>
internalUsageAttributionIds
类型:Iterable<string> optional
向初始化程序添加使用情况归因 ID,这有助于 Google 了解哪些库和示例对开发者有帮助,例如标记聚类器库的使用情况。如需选择不发送使用情况归因 ID,您可以安全地删除此属性。系统只会发送唯一值。实例化后对此值所做的更改可能会被忽略。
HTML 属性:
  • <gmp-map-3d internal-usage-attribution-ids="id1 id2"></gmp-map-3d>
language
类型:string optional
尝试呈现基本地图语言时所用的语言。默认情况下,系统会使用开发者在加载 Maps JS API 时请求的语言。
mapId
类型:string optional
指定一个地图 ID,用于提取地图的云端地图样式。初始化地图后,不应设置此属性。因此,我们确保仅在初始化期间设置 mapId,并且不会将此属性发布到面向公众的渠道。
HTML 属性:
  • <gmp-map-3d map-id="string"></gmp-map-3d>
maxAltitude
类型:number optional
地图上将显示的最大海拔高度。有效值介于 0 米和 63170000 米(地球半径乘以 10)之间。
HTML 属性:
  • <gmp-map-3d max-altitude="number"></gmp-map-3d>
maxHeading
类型:number optional
地图的最大朝向(旋转)角度。有效值介于 0 度和 360 度之间。minHeading 和 maxHeading 表示允许进行航向手势操作的区间(<= 360 度)。minHeading = 180 和 maxHeading = 90 将允许在 [0, 90] 中使用标题,在 [180, 360] 中使用标题。minHeading = 90 和 maxHeading = 180 将允许在 [90, 180] 中使用标题。
HTML 属性:
  • <gmp-map-3d max-heading="number"></gmp-map-3d>
maxTilt
类型:number optional
地图的最大入射角。有效值介于 0 度和 90 度之间。
HTML 属性:
  • <gmp-map-3d max-tilt="number"></gmp-map-3d>
minAltitude
类型:number optional
地图上显示的最低海拔高度。有效值介于 0 米和 63170000 米(地球半径乘以 10)之间。
HTML 属性:
  • <gmp-map-3d min-altitude="number"></gmp-map-3d>
minHeading
类型:number optional
地图的最小航向角(旋转角度)。有效值介于 0 度和 360 度之间。minHeading 和 maxHeading 表示允许进行航向手势操作的区间(<= 360 度)。minHeading = 180 和 maxHeading = 90 将允许在 [0, 90] 中使用标题,在 [180, 360] 中使用标题。minHeading = 90 和 maxHeading = 180 将允许在 [90, 180] 中使用标题。
HTML 属性:
  • <gmp-map-3d min-heading="number"></gmp-map-3d>
minTilt
类型:number optional
地图的最小入射角。有效值介于 0 度和 90 度之间。
HTML 属性:
  • <gmp-map-3d min-tilt="number"></gmp-map-3d>
mode
类型:MapMode optional
指定地图的呈现模式。如果未设置,则不会呈现地图。
HTML 属性:
  • <gmp-map-3d mode="hybrid"></gmp-map-3d>
  • <gmp-map-3d mode="satellite"></gmp-map-3d>
range
类型:number optional
从镜头到地图中心的距离(以米为单位)。
HTML 属性:
  • <gmp-map-3d range="number"></gmp-map-3d>
region
类型:string optional
尝试渲染基本地图的地图注点时所用的区域。默认情况下,系统会使用开发者在加载 Maps JS API 时请求的区域。
roll
类型:number optional
相机围绕视图矢量的滚转角,以度为单位。为消除歧义,在没有倾斜的情况下,任何横滚都会被解读为航向。
HTML 属性:
  • <gmp-map-3d roll="number"></gmp-map-3d>
tilt
类型:number optional
摄像头视图矢量的倾斜度(以度为单位)。直视地球的视图向量的倾斜度为 0 度。背离地球的视图矢量的倾斜度为 180 度。
HTML 属性:
  • <gmp-map-3d tilt="number"></gmp-map-3d>
defaultUIDisabled
类型:boolean optional
默认值:false
如果为 true,则所有默认界面按钮都会停用。不会停用键盘和手势控制。
HTML 属性:
  • <gmp-map-3d default-ui-disabled></gmp-map-3d>
addEventListener
addEventListener(type, listener[, options])
参数:
  • type:string一个区分大小写的字符串,表示要监听的事件类型。
  • listener:EventListener|EventListenerObject 接收通知的对象。这必须是函数或具有 handleEvent 方法的对象
  • options:boolean|AddEventListenerOptions optional请参阅选项。自定义事件仅支持 capture 和 passive。
返回值:void
设置一个函数,每当指定事件传递到目标时,系统都会调用该函数。请参阅 addEventListener。
flyCameraAround
flyCameraAround(options)
参数:
返回值:无
此方法可让镜头在指定时长内围绕指定位置旋转。动画可以重复指定的 FlyAroundAnimationOptions.repeatCount 次。

摄像头将顺时针移动。

该方法是异步的,因为只有在地图加载了最少内容后,动画才能开始。动画启动后,该方法会返回。

如果 FlyAroundAnimationOptions.repeatCount 次数为零,则不会发生旋转,动画会在开始后立即完成。
flyCameraTo
flyCameraTo(options)
参数:
返回值:无
此方法会在指定时长内,将镜头以抛物线轨迹从当前位置移动到指定结束位置。

该方法是异步的,因为只有在地图加载了最少内容后,动画才能开始。动画启动后,该方法会返回。
removeEventListener
removeEventListener(type, listener[, options])
参数:
返回值:void
从目标中移除之前使用 addEventListener 注册的事件监听器。请参阅 removeEventListener。
stopCameraAnimation
stopCameraAnimation()
参数:无
返回值:无
此方法会停止可能正在运行的任何飞行效果动画。相机停留在动画中间的任何位置;它不会传送到终点。

该方法是异步的,因为只有在地图加载了最少量的元素后,动画才能开始或停止。动画停止后,该方法会返回。
gmp-animationend
function(animationEndEvent)
参数: 
  • animationEndEvent:Event
此事件会在飞行动画结束时触发。此事件会通过 DOM 树向上冒泡。
gmp-centerchange
function(centerChangeEvent)
参数: 
  • centerChangeEvent:Event
当 Map3DElement 的 center 属性发生变化时,会触发此事件。
gmp-click
function(clickEvent)
参数: 
当用户点击 Map3DElement 元素时,系统会触发此事件。
gmp-error
function(mapInitializationErrorEvent)
参数: 
  • mapInitializationErrorEvent:Event
此事件会在地图初始化失败时触发。
gmp-headingchange
function(headingChangeEvent)
参数: 
  • headingChangeEvent:Event
当 Map3DElement 的 heading 属性发生变化时,会触发此事件。
gmp-map-id-error
function(mapIdErrorEvent)
参数: 
  • mapIdErrorEvent:Event
当 Map3DElement 的 mapId 属性无效时,会触发此事件。
gmp-rangechange
function(rangeChangeEvent)
参数: 
  • rangeChangeEvent:Event
当 Map3DElement 的 range 属性发生变化时,会触发此事件。
gmp-rollchange
function(rollChangeEvent)
参数: 
  • rollChangeEvent:Event
当 Map3DElement 的 roll 属性发生变化时,会触发此事件。
gmp-steadychange
function(steadyChangeEvent)
参数: 
当 Map3DElement 的稳定状态发生变化时,会触发此事件。
gmp-tiltchange
function(tiltChangeEvent)
参数: 
  • tiltChangeEvent:Event
当 Map3DElement 的倾斜度属性发生变化时,会触发此事件。

Map3DElementOptions 接口

google.maps.maps3d.Map3DElementOptions 接口

Map3DElementOptions 对象,用于定义可在 Map3DElement 上设置的属性。

bounds optional
请参阅 Map3DElement.bounds。
center optional
请参阅 Map3DElement.center。
defaultUIDisabled optional
类型:boolean optional
defaultUIHidden optional
类型:boolean optional
description optional
类型:string optional
gestureHandling optional
类型:GestureHandling optional
heading optional
类型:number optional
internalUsageAttributionIds optional
类型:Iterable<string> optional
language optional
类型:string optional
mapId optional
类型:string optional
请参阅 Map3DElement.mapId。
maxAltitude optional
类型:number optional
maxHeading optional
类型:number optional
maxTilt optional
类型:number optional
minAltitude optional
类型:number optional
minHeading optional
类型:number optional
minTilt optional
类型:number optional
mode optional
类型:MapMode optional
请参阅 Map3DElement.mode。
range optional
类型:number optional
请参阅 Map3DElement.range。
region optional
类型:string optional
请参阅 Map3DElement.region。
roll optional
类型:number optional
请参阅 Map3DElement.roll。
tilt optional
类型:number optional
请参阅 Map3DElement.tilt。

MapMode 常量

google.maps.maps3d.MapMode 常量

指定地图的渲染模式。

通过拨打 const {MapMode} = await google.maps.importLibrary("maps3d") 访问。
请参阅 Maps JavaScript API 中的库。

HYBRID 此地图模式会在卫星图像或真实感图像上显示一个透明的主要街道图层。
SATELLITE 此地图模式会显示卫星图像或仿真图像(如有)。

GestureHandling 常量

google.maps.maps3d.GestureHandling 常量

指定应如何在地图元素上处理手势事件。

通过拨打 const {GestureHandling} = await google.maps.importLibrary("maps3d") 访问。
请参阅 Maps JavaScript API 中的库。

AUTO 这样,地图便可选择是使用协作式还是贪婪式手势处理。如果未指定,则这是默认行为。

如果地图占据了其滚动父级(通常是宿主页面)的大部分空间,导致用户无法从地图滚动到其他内容,则会导致地图进入协作模式。
COOPERATIVE 这会强制进入合作模式,在该模式下,需要使用辅助键或双指手势才能滚动地图。
GREEDY 这会强制启用贪婪模式,在这种模式下,用户在地图元素上执行的操作无法滚动宿主页面。

FlyAroundAnimationOptions 接口

google.maps.maps3d.FlyAroundAnimationOptions 接口

FlyCameraAround 动画的自定义选项。

camera
类型:CameraOptions
相机在轨道动画期间应看向的中心点。请注意,地图朝向会随着镜头围绕此中心点旋转而发生变化。
durationMillis optional
类型:number optional
一个动画周期的时长(以毫秒为单位)。
repeatCount optional
类型:number optional
指定动画应重复的次数。如果该数字为零,动画将在开始后立即完成。
rounds optional
类型:number optional
在指定时长内围绕中心旋转的圈数。此设置用于控制整体旋转速度。向 rounds 传递负数会导致镜头逆时针旋转,而不是默认的顺时针旋转。

FlyToAnimationOptions 接口

google.maps.maps3d.FlyToAnimationOptions 接口

FlyCameraTo 动画的自定义选项。

endCamera
类型:CameraOptions
相机在动画结束时应指向的位置。
durationMillis optional
类型:number optional
动画的时长(以毫秒为单位)。如果时长为 0,镜头将直接跳转到结束位置。

CameraOptions 接口

google.maps.maps3d.CameraOptions 接口

CameraOptions 对象,用于定义可在相机对象上设置的属性。镜头对象可以是具有镜头位置的任何对象,例如当前地图状态或未来请求的动画状态。

center optional
请参阅 Map3DElement.center。
heading optional
类型:number optional
range optional
类型:number optional
请参阅 Map3DElement.range。
roll optional
类型:number optional
请参阅 Map3DElement.roll。
tilt optional
类型:number optional
请参阅 Map3DElement.tilt。

SteadyChangeEvent 类

google.maps.maps3d.SteadyChangeEvent 类

此事件是通过监控 Map3DElement 的稳定状态而创建的。此事件会通过 DOM 树向上冒泡。

此类扩展了 Event。

通过拨打 const {SteadyChangeEvent} = await google.maps.importLibrary("maps3d") 访问。
请参阅 Maps JavaScript API 中的库。

isSteady
类型:boolean
指明 Map3DElement 是否稳定(即当前场景的所有渲染是否已完成)。

LocationClickEvent 类

google.maps.maps3d.LocationClickEvent 类

此事件是通过点击 Map3DElement 创建的。

此类扩展了 Event。

通过拨打 const {LocationClickEvent} = await google.maps.importLibrary("maps3d") 访问。
请参阅 Maps JavaScript API 中的库。

position
类型:LatLngAltitude optional
事件发生时位于光标下方的纬度/经度/海拔。请注意,在较粗略的级别,系统返回的数据准确性较低。此外,从较高的相机位置点击水面时,系统可能会返回海底海拔高度作为海拔高度值。此事件会通过 DOM 树向上冒泡。

PlaceClickEvent 类

google.maps.maps3d.PlaceClickEvent 类

此事件是在点击 Map3DElement 上的地点图标时创建的。如需阻止显示默认弹出式窗口,请对此事件调用 preventDefault() 方法,以防止其由 Map3DElement 处理。

此类扩展了 LocationClickEvent。

通过拨打 const {PlaceClickEvent} = await google.maps.importLibrary("maps3d") 访问。
请参阅 Maps JavaScript API 中的库。

placeId
类型:string
地图项的地点 ID。
继承: position
fetchPlace
fetchPlace()
参数:无
返回值:Promise<Place>
提取此地点 ID 的 Place。在生成的 Place 对象中,系统会填充 id 属性。随后,您可以通过 Place.fetchFields() 请求其他字段,但需遵守正常的 Places API 启用和结算流程。如果提取 Place 时出错,则 promise 会被拒绝。