3D Maps

Map3DElement 類別

class google.maps.maps3d.Map3DElement extends HTMLElement implements Map3DElementOptions
library "maps3d"

Map3DElement 是 3D 地圖檢視畫面的 HTML 介面。請注意,您必須設定 mode,3D 地圖才會開始算繪。

<gmp-map-3d
  autofits-camera-animation="value-name"
  camera-position="lat,lng,altitude"
  center="lat,lng,altitude"
  color-scheme="value-name"
  default-ui-hidden
  description="string"
  fov="number"
  gesture-handling="value-name"
  heading="number"
  internal-usage-attribution-ids="id1 id2"
  map-id="string"
  max-altitude="number"
  max-heading="number"
  max-memory-megabytes="number"
  max-tilt="number"
  min-altitude="number"
  min-heading="number"
  min-tilt="number"
  mode="value-name"
  quality-mode="value-name"
  range="number"
  roll="number"
  tilt="number">
</gmp-map-3d>
const {Map3DElement} = await google.maps.importLibrary("maps3d");
Map3DElement
Map3DElement([options])
參數:
AlphaautofitsCameraAnimation
attr: autofits-camera-animation
輸入類型: AutofitsCameraAnimation optional
輸出類型: AutofitsCameraAnimation optional
預設值: none
自動調整攝影機時使用的動畫。
HTML 屬性: autofits-camera-animation="value-name"
bounds
輸入類型: LatLngBounds|LatLngBoundsLiteral optional
輸出類型: LatLngBounds optional
設定後,攝影機位置會限制在指定的經緯度範圍內。請注意,系統仍會算繪邊界外的物件。邊界可以同時限制經度和緯度,也可以只限制緯度或經度。如要設定僅限緯度的邊界,請分別使用 -180 和 180 的西經和東經。如要設定僅限經度的邊界,請分別使用 90 和 -90 的北緯和南緯。
cameraPosition
attr: camera-position
輸入類型: LatLngAltitude|LatLngAltitudeLiteral|LatLngLiteral optional
輸出類型: LatLngAltitude optional
攝影機位置,以 LatLngAltitude 表示。如果省略,系統會自動衍生。如果省略 center,但指定 cameraPosition,center 會衍生自 cameraPosition.。如果兩者在同一個執行迴圈中更新,系統會優先採用 cameraPosition。在指定共用航向、範圍、滾動和傾斜的情況下,cameraPosition 和 center 欄位可以一對一相互衍生。
HTML 屬性: camera-position="lat,lng,altitude"
center
attr: center
輸入類型: LatLngAltitude|LatLngAltitudeLiteral|LatLngLiteral optional
輸出類型: LatLngAltitude optional
地圖中心點,以 LatLngAltitude 表示,其中高度是以公尺為單位,表示高於平均海平面的高度。請注意,這不一定是攝影機的位置,因為 range 欄位會影響攝影機與地圖中心的距離。如未設定,則預設為 {lat: 0, lng: 0, altitude: 63710000}。63710000 公尺是允許的高度上限 (地球半徑乘以 10)。
HTML 屬性: center="lat,lng,altitude"
BetacolorScheme
attr: color-scheme
輸入類型: ColorScheme optional
輸出類型: ColorScheme optional
指定地圖的色彩配置。如果沒有設定,預設值為 ColorScheme.FOLLOW_SYSTEM。
HTML 屬性: color-scheme="value-name"
defaultUIHidden
attr: default-ui-hidden
輸入類型: boolean optional
輸出類型: boolean
預設值: false
如果為 true,所有預設 UI 按鈕都會隱藏。
HTML 屬性: default-ui-hidden
description
attr: description
輸入類型: string optional
輸出類型: string optional
如果提供無障礙說明 (例如用於螢幕閱讀器),系統會將該說明新增至地圖,並附上提供的值。
HTML 屬性: description="string"
fov
attr: fov
輸入類型: number optional
輸出類型: number optional
指定垂直視野 (以度為單位)。有效值範圍介於 5.0 到 80.0 之間。值越高,可視區域越大,但可能會導致透視失真。預設值:35.0。
HTML 屬性: fov="number"
gestureHandling
attr: gesture-handling
輸入類型: GestureHandling optional
輸出類型: GestureHandling
控制協作手勢處理。如果設為 COOPERATIVE,則必須使用輔助鍵或雙指手勢,才能捲動地圖。如果設為 GREEDY,地圖元素上的使用者事件就無法捲動主機網頁。如果設為 AUTO,手勢處理方式會由主機頁面的捲動功能決定。
HTML 屬性: gesture-handling="value-name"
heading
attr: heading
輸入類型: number optional
輸出類型: number optional
地圖的指南針方向 (以度為單位),正北為零。如果沒有傾斜,任何滾動都會解讀為航向。
HTML 屬性: heading="number"
internalUsageAttributionIds
attr: internal-usage-attribution-ids
輸入類型: Iterable<string> optional
輸出類型: Array<string> optional
在初始化工具中加入用量歸因 ID,協助 Google 瞭解哪些程式庫和範例對開發人員有幫助,例如標記叢集程式庫的使用情形。如要選擇不傳送用量歸因 ID,可以放心刪除這項屬性。系統只會傳送不重複的值。例項化後,系統可能會忽略對這個值的變更。
HTML 屬性: internal-usage-attribution-ids="id1 id2"
language
輸入類型: string optional
輸出類型: string optional
嘗試用來顯示基本地圖的語言。載入 Maps JS API 時,預設會採用開發人員要求的語言。
mapId
attr: map-id
輸入類型: string optional
輸出類型: string optional
指定地圖 ID,用於擷取地圖的雲端式地圖樣式設定。
HTML 屬性: map-id="string"
maxAltitude
attr: max-altitude
輸入類型: number optional
輸出類型: number optional
地圖上顯示的最高海拔高度。有效值介於 0 至 63710000 公尺之間 (地球半徑乘以 10)。
HTML 屬性: max-altitude="number"
maxHeading
attr: max-heading
輸入類型: number optional
輸出類型: number optional
地圖的最大朝向 (旋轉) 角度。有效值介於 0 到 360 度之間。minHeading 和 maxHeading 代表 <= 360 度的間隔,在這個間隔內可使用頭部動作。minHeading = 180 和 maxHeading = 90 可讓您前往 [0, 90] 和 [180, 360]。minHeading = 90 和 maxHeading = 180 將允許在 [90, 180] 中使用標題。
HTML 屬性: max-heading="number"
BetamaxMemoryMegabytes
attr: max-memory-megabytes
輸入類型: number optional
輸出類型: number optional
地圖可用於算繪的記憶體量上限 (以 MB 為單位)。值越低,記憶體用量越少,但視覺細節也會減少;值越高,記憶體中保留的細節越多。有效值範圍介於 64 到 2048 之間。如未設定,系統會根據裝置和地圖大小自動選擇限制。必須在地圖初始化前設定,之後所做的變更會遭到忽略。
HTML 屬性: max-memory-megabytes="number"
maxTilt
attr: max-tilt
輸入類型: number optional
輸出類型: number optional
地圖的最大入射角。有效值介於 0 到 90 度之間。
HTML 屬性: max-tilt="number"
minAltitude
attr: min-altitude
輸入類型: number optional
輸出類型: number optional
地圖上顯示的最低離地高度。有效值介於 0 至 63710000 公尺之間 (地球半徑乘以 10)。
HTML 屬性: min-altitude="number"
minHeading
attr: min-heading
輸入類型: number optional
輸出類型: number optional
地圖的最小朝向 (旋轉) 角度。有效值介於 0 到 360 度之間。minHeading 和 maxHeading 代表 <= 360 度的間隔,在這個間隔內可使用頭部動作。minHeading = 180 和 maxHeading = 90 可讓您前往 [0, 90] 和 [180, 360]。minHeading = 90 和 maxHeading = 180 將允許在 [90, 180] 中使用標題。
HTML 屬性: min-heading="number"
minTilt
attr: min-tilt
輸入類型: number optional
輸出類型: number optional
地圖的最小入射角。有效值介於 0 到 90 度之間。
HTML 屬性: min-tilt="number"
mode
attr: mode
輸入類型: MapMode optional
輸出類型: MapMode optional
指定地圖的算繪模式。如未設定,地圖就不會顯示。
HTML 屬性: mode="value-name"
BetaqualityMode
attr: quality-mode
輸入類型: QualityMode optional
輸出類型: QualityMode optional
指定地圖的算繪品質。設為 QualityMode.PERFORMANCE 即可減少視覺細節,降低記憶體用量。
HTML 屬性: quality-mode="value-name"
range
attr: range
輸入類型: number optional
輸出類型: number optional
攝影機到地圖中心的距離 (以公尺為單位)。
HTML 屬性: range="number"
region
輸入類型: string optional
輸出類型: string optional
嘗試轉譯基本地圖搜尋點的區域。載入 Maps JS API 時,預設為開發人員要求的區域。
roll
attr: roll
輸入類型: number optional
輸出類型: number optional
攝影機圍繞檢視向量的滾動角度,為避免混淆,如果沒有傾斜,任何滾轉都會解讀為航向。
HTML 屬性: roll="number"
tilt
attr: tilt
輸入類型: number optional
輸出類型: number optional
攝影機檢視向量的傾斜角度,如果檢視向量直接向下看地球,傾斜角度會是零度。如果檢視向量指向地球以外的方向,傾斜角度會是 180 度。
HTML 屬性: tilt="number"
defaultUIDisabled
attr: default-ui-disabled
類型: boolean optional
預設值: false
如果設為 true,所有預設 UI 按鈕都會停用。不會停用鍵盤和手勢控制功能。
HTML 屬性: default-ui-disabled
flyCameraAround
flyCameraAround(options)
參數:
傳回值:無
這個方法會讓攝影機在指定時間內繞著指定位置旋轉。動畫可重複播放指定的 FlyAroundAnimationOptions.repeatCount 次數。

攝影機會順時針移動。

繞行地點是透過 CameraOptions.center 指定。在環繞動畫中,這個位置會顯示在可視區域中央,攝影機則會繞著這個位置移動。

這個方法是非同步的,因為地圖必須載入到一定程度,動畫才能開始。動畫開始後,方法就會傳回。

如果 FlyAroundAnimationOptions.repeatCount 次數為零,則不會旋轉,動畫會在開始後立即完成。
flyCameraTo
flyCameraTo(options)
參數:
傳回值:無
這個方法會以拋物線方式,在指定時間內將攝影機從目前位置移至指定終點位置。您可以透過 CameraOptions.cameraPosition 指定結束位置,控制攝影機的確切位置,也可以透過 CameraOptions.center 控制地圖的可見可視區域中心。

這個方法是非同步的,因為地圖必須載入到一定程度,動畫才能開始。動畫開始後,方法就會傳回。
stopCameraAnimation
stopCameraAnimation()
參數:無
傳回值:無
這個方法會停止任何可能正在執行的飛行動畫。相機會停留在動畫中間的任何位置,不會傳送到終點。

由於地圖必須載入一定程度後,動畫才能開始或停止,因此這個方法是非同步的。動畫停止後,方法就會傳回。
繼承: addEventListener、removeEventListener
gmp-animationend
function(animationEndEvent)
引數:
  • animationEndEvent: Event optional
飛行效果動畫結束時,系統會觸發這個事件。這個事件會透過 DOM 樹狀結構向上傳播。
gmp-camerapositionchange
function(cameraPositionChangeEvent)
引數:
  • cameraPositionChangeEvent: Event optional
Map3DElement 的 cameraPosition 屬性變更時,就會觸發這個事件。
gmp-centerchange
function(centerChangeEvent)
引數:
  • centerChangeEvent: Event optional
Map3DElement 的 center 屬性變更時,就會觸發這個事件。
gmp-click
function(clickEvent)
引數:
使用者點選 Map3DElement 元素時,系統會觸發這個事件。
gmp-error
function(mapInitializationErrorEvent)
引數:
  • mapInitializationErrorEvent: Event optional
地圖無法初始化時,就會觸發這個事件。
gmp-fovchange
function(fovChangeEvent)
引數:
  • fovChangeEvent: Event optional
Map3DElement 的 fov 屬性變更時,就會觸發這個事件。
gmp-headingchange
function(headingChangeEvent)
引數:
  • headingChangeEvent: Event optional
Map3DElement 的 heading 屬性變更時,就會觸發這個事件。
gmp-map-id-error
function(mapIdErrorEvent)
引數:
  • mapIdErrorEvent: Event optional
Map3DElement 的 mapId 屬性無效時,就會觸發這個事件。
gmp-rangechange
function(rangeChangeEvent)
引數:
  • rangeChangeEvent: Event optional
Map3DElement 的 range 屬性變更時,就會觸發這個事件。
gmp-rollchange
function(rollChangeEvent)
引數:
  • rollChangeEvent: Event optional
Map3DElement 的 roll 屬性變更時,就會觸發這個事件。
gmp-steadychange
function(steadyChangeEvent)
引數:
Map3DElement 的穩定狀態變更時,系統會觸發這個事件。
gmp-tiltchange
function(tiltChangeEvent)
引數:
  • tiltChangeEvent: Event optional
Map3DElement 的 tilt 屬性變更時,就會觸發這個事件。

Map3DElementOptions 介面

介面 google.maps.maps3d.Map3DElementOptions
由 Map3DElement 實作

Map3DElementOptions 物件,用於定義可在 Map3DElement 上設定的屬性。

AlphaautofitsCameraAnimation
選填
類型: AutofitsCameraAnimation optional
詳情請參閱《AlphaMap3DElement.autofitsCameraAnimation》。
bounds
選填
詳情請參閱《Map3DElement.bounds》。
cameraPosition
選填
詳情請參閱《Map3DElement.cameraPosition》。
center
選填
詳情請參閱《Map3DElement.center》。
BetacolorScheme
選填
類型: ColorScheme optional
詳情請參閱《BetaMap3DElement.colorScheme》。
defaultUIDisabled
選填
類型: boolean optional
詳情請參閱《Map3DElement.defaultUIDisabled》。
defaultUIHidden
選填
類型: boolean optional
詳情請參閱《Map3DElement.defaultUIHidden》。
description
選填
類型: string optional
詳情請參閱《Map3DElement.description》。
fov
選填
類型: number optional
詳情請參閱《Map3DElement.fov》。
gestureHandling
選填
類型: GestureHandling optional
詳情請參閱《Map3DElement.gestureHandling》。
heading
選填
類型: number optional
詳情請參閱《Map3DElement.heading》。
internalUsageAttributionIds
選填
類型: Iterable<string> optional
language
選填
類型: string optional
詳情請參閱《Map3DElement.language》。
mapId
選填
類型: string optional
詳情請參閱《Map3DElement.mapId》。
maxAltitude
選填
類型: number optional
詳情請參閱《Map3DElement.maxAltitude》。
maxHeading
選填
類型: number optional
詳情請參閱《Map3DElement.maxHeading》。
BetamaxMemoryMegabytes
選填
類型: number optional
詳情請參閱《BetaMap3DElement.maxMemoryMegabytes》。
maxTilt
選填
類型: number optional
詳情請參閱《Map3DElement.maxTilt》。
minAltitude
選填
類型: number optional
詳情請參閱《Map3DElement.minAltitude》。
minHeading
選填
類型: number optional
詳情請參閱《Map3DElement.minHeading》。
minTilt
選填
類型: number optional
詳情請參閱《Map3DElement.minTilt》。
mode
選填
類型: MapMode optional
詳情請參閱《Map3DElement.mode》。
BetaqualityMode
選填
類型: QualityMode optional
詳情請參閱《BetaMap3DElement.qualityMode》。
range
選填
類型: number optional
詳情請參閱《Map3DElement.range》。
region
選填
類型: string optional
詳情請參閱《Map3DElement.region》。
roll
選填
類型: number optional
詳情請參閱《Map3DElement.roll》。
tilt
選填
類型: number optional
詳情請參閱《Map3DElement.tilt》。

MapMode 常數

constants google.maps.maps3d.MapMode
library "maps3d"

指定地圖的算繪模式。

這些常數也可以做為字串使用。在 TypeScript 中,字串常值是由 MapModeString 類型定義。

const {MapMode} = await google.maps.importLibrary("maps3d");
HYBRID 這個地圖模式會在衛星或相片寫實圖像上,顯示主要街道的透明圖層。
BetaROADMAP 這個地圖模式會顯示一般街道地圖。
SATELLITE 這個地圖模式會顯示衛星或擬真圖像 (如有)。

QualityMode 常數

constants google.maps.maps3d.QualityMode
library "maps3d"

指定 3D 地圖的算繪品質。

這些常數也可以做為字串使用。在 TypeScript 中,字串常值是由 QualityModeString 類型定義。

const {QualityMode} = await google.maps.importLibrary("maps3d");
FIDELITY 以標準視覺細節算繪地圖。
PERFORMANCE 降低地圖的視覺細節,減少記憶體用量。適用於記憶體受限的裝置,或地圖與其他耗用大量記憶體的內容共用頁面時。

GestureHandling 常數

constants google.maps.maps3d.GestureHandling
library "maps3d"

指定地圖元素應如何處理手勢事件。

這些常數也可以做為字串使用。在 TypeScript 中,字串常值是由 GestureHandlingString 類型定義。

const {GestureHandling} = await google.maps.importLibrary("maps3d");
AUTO 這樣一來,地圖就能選擇要使用協作或貪婪手勢處理。如未指定,則會採用這項預設行為。

如果地圖佔據捲動父項 (通常是主機頁面) 的大部分空間,導致使用者無法捲動離開地圖查看其他內容,地圖就會進入協作模式。
COOPERATIVE 這會強制啟用合作模式,使用者必須使用輔助鍵或雙指手勢才能捲動地圖。
GREEDY 這會強制啟用貪婪模式,主機頁面無法透過地圖元素上的使用者事件捲動。

AutofitsCameraAnimation 常數

constants google.maps.maps3d.AutofitsCameraAnimation
library "maps3d"

指定攝影機移至新位置時的行為,以便根據選擇加入的子項元素置中。

這些常數也可以做為字串使用。在 TypeScript 中,字串常值是由 AutofitsCameraAnimationString 類型定義。

const {AutofitsCameraAnimation} = await google.maps.importLibrary("maps3d");
FLY_TO 飛到新位置。
NONE 貼齊新位置,不顯示動畫。

FlyAroundAnimationOptions 介面

介面 google.maps.maps3d.FlyAroundAnimationOptions

FlyCameraAround 動畫的自訂選項。

camera
類型: CameraOptions
攝影機在軌道動畫期間應注視的中心點。請注意,地圖方向會隨著攝影機繞著這個中心點旋轉而改變。
durationMillis
選填
類型: number optional
一個動畫週期的時間長度 (以毫秒為單位)。
repeatCount
選填
類型: number optional
指定動畫應重複播放的次數。如果數字為零,動畫會在開始後立即完成。如果傳入 Number.Infinity,動畫就會無限重複播放。
rounds
選填
類型: number optional
在指定時間長度內,圍繞中心旋轉的圈數。這項設定可控制整體旋轉速度。如果將負數傳遞至 rounds,攝影機就會逆時針旋轉,而非預設的順時針方向。

FlyToAnimationOptions 介面

介面 google.maps.maps3d.FlyToAnimationOptions

FlyCameraTo 動畫的自訂選項。

endCamera
類型: CameraOptions
動畫結束時,攝影機應指向的位置。
durationMillis
選填
類型: number optional
動畫的時間長度 (以毫秒為單位)。如果時間長度為 0,攝影機會直接跳到結束位置。

CameraOptions 介面

介面 google.maps.maps3d.CameraOptions

CameraOptions 物件,用於定義可在相機物件上設定的屬性。攝影機物件可以是任何具有攝影機位置的物件,例如目前的地圖狀態,或未來要求的動畫狀態。

altitudeMode
選填
類型: AltitudeMode optional
列舉,指定如何解譯指定 CameraOptions 物件的高度值。這會重複使用現有的 AltitudeMode 列舉。
cameraPosition
選填
詳情請參閱《Map3DElement.cameraPosition》。
center
選填
詳情請參閱《Map3DElement.center》。
fov
選填
類型: number optional
詳情請參閱《Map3DElement.fov》。
heading
選填
類型: number optional
詳情請參閱《Map3DElement.heading》。
range
選填
類型: number optional
詳情請參閱《Map3DElement.range》。
roll
選填
類型: number optional
詳情請參閱《Map3DElement.roll》。
tilt
選填
類型: number optional
詳情請參閱《Map3DElement.tilt》。

SteadyChangeEvent 類別

class google.maps.maps3d.SteadyChangeEvent extends Event
library "maps3d"

這個事件是透過監控 Map3DElement 的穩定狀態建立。這個事件會透過 DOM 樹狀結構向上傳播。

const {SteadyChangeEvent} = await google.maps.importLibrary("maps3d");
isSteady
類型: boolean
指出 Map3DElement 是否穩定 (即目前場景的所有算繪作業皆已完成)。

LocationClickEvent 類別

類別 google.maps.maps3d.LocationClickEvent 擴充 Event
由 PlaceClickEvent 擴充
程式庫 "maps3d"

點按 Map3DElement 時,會建立這個事件。

const {LocationClickEvent} = await google.maps.importLibrary("maps3d");
position
類型: LatLngAltitude optional
事件發生時,游標下方的緯度/經度/高度。請注意,如果層級較粗略,傳回的資料準確度會較低。此外,從較高的相機位置點選水面時,系統可能會傳回海床海拔高度值。這個事件會透過 DOM 樹狀結構向上傳播。

LocationPointerEvent 類別

class google.maps.maps3d.LocationPointerEvent extends Event
library "maps3d"

當使用者在互動式 Map3DElement 上進行指標互動時,系統會建立這個事件。

const {LocationPointerEvent} = await google.maps.importLibrary("maps3d");
position
類型: LatLngAltitude optional
事件發生時,游標下方的緯度/經度/高度。請注意,如果層級較粗略,傳回的資料準確度會較低。此外,從較高的相機位置點選水面時,系統可能會傳回海床海拔高度值。這個事件會透過 DOM 樹狀結構向上傳播。

PlaceClickEvent 類別

class google.maps.maps3d.PlaceClickEvent extends LocationClickEvent, Event
library "maps3d"

使用者在Map3DElement上點選地點圖示時,就會觸發這項事件。如要避免顯示預設彈出式視窗,請對這個事件呼叫 preventDefault() 方法,防止 Map3DElement 處理該事件。

const {PlaceClickEvent} = await google.maps.importLibrary("maps3d");
placeId
類型: string
地圖地圖項目的地點 ID。
沿用: position
fetchPlace
fetchPlace()
參數:無
傳回值: Promise<Place>
擷取這個地點 ID 的 Place。在產生的 Place 物件中,系統會填入 id 屬性。之後可透過 Place.fetchFields() 要求其他欄位,但須遵守 Places API 的一般啟用和計費規定。如果擷取 Place 時發生錯誤,系統會拒絕承諾。