Info Window

InfoWindow 類別

google.maps.InfoWindow 類別

一種疊加層,看起來像泡泡,而且通常連接至標記。

這個類別會擴充 MVCObject

呼叫 const {InfoWindow} = await google.maps.importLibrary("maps")const {InfoWindow} = await google.maps.importLibrary("streetView") 即可存取。請參閱 Maps JavaScript API 中的程式庫

InfoWindow
InfoWindow([opts])
參數: 
使用指定的選項建立資訊視窗。資訊視窗可以根據選項中指定的內容,放到地圖上的特定位置或標記上方。除非停用自動平移,否則資訊視窗會在開啟時平移地圖,讓地圖可以顯示。建立 InfoWindow 之後,您必須呼叫 open,才會在地圖上顯示它。使用者可以按一下資訊視窗上的關閉按鈕,就可以將它從地圖上移除,或者開發人員可以呼叫 close(),達到一樣的效果。
close
close()
參數:
傳回值:
從 DOM 結構移除這個資訊視窗,就能關閉這個資訊視窗。
focus
focus()
參數:
傳回值:
將焦點設為這個 InfoWindow。建議您搭配 visible 事件使用這個方法,確保在設定焦點前,先顯示 InfoWindow。未顯示的 InfoWindow 無法聚焦。
getContent
getContent()
參數:
傳回值:  string|Element|Text|null|undefined 這個資訊視窗的內容。與先前設定的內容相同。
getPosition
getPosition()
參數:
回傳值:  LatLng|null|undefined這個資訊視窗的 LatLng 位置。
getZIndex
getZIndex()
參數:
傳回值:  number 這個資訊視窗的 zIndex。
open
open([options, anchor])
參數: 
  • optionsInfoWindowOpenOptions|Map|StreetViewPanorama optional 這可以是 InfoWindowOpenOptions 物件 (建議使用) 或要在其上顯示此資訊視窗的 map|panorama。
  • anchorMVCObject|AdvancedMarkerElement optional 這個資訊視窗要定位的錨點。如果錨點不是空值,InfoWindow 會位於錨點的正上方。資訊視窗會在相同的地圖或全景上算繪為錨點 (如果有的話)
傳回值:
在指定的地圖上開啟這個資訊視窗。或者,一個 InfoWindow 可以與一個錨點建立關聯。在核心 API 中,唯一的錨點是 Marker 類別。不過,錨點可以是任何會公開 LatLng position 屬性的 MVCObject,以及用於計算 pixelOffset 的「點」anchorPoint 屬性 (請參閱 InfoWindowOptions)。anchorPoint 是從錨點位置到 InfoWindow 小費的偏移值。建議您使用 InfoWindowOpenOptions 介面做為這個方法的單一引數。如要禁止在開啟狀態下變更瀏覽器焦點,請將 InfoWindowOpenOptions.shouldFocus 設為 false
setContent
setContent([content])
參數: 
  • contentstring|Element|Text optional這個資訊視窗顯示的內容。
傳回值:
setOptions
setOptions([options])
參數: 
傳回值:
setPosition
setPosition([position])
參數: 
傳回值:
setZIndex
setZIndex(zIndex)
參數: 
  • zIndexnumber這個資訊視窗的 Z-index。具有較大 Z-index 的 InfoWindow 會顯示在 Z-index 值較低的所有其他 InfoWindows 前面。
傳回值:
沿用: addListenerbindTogetnotifysetsetValuesunbindunbindAll
close
function()
引數:
每當 InfoWindow 關閉時,就會觸發此事件。舉例來說,您可以呼叫 InfoWindow.close 方法、按下 Escape 鍵關閉 InfoWindow,或是按一下關閉按鈕或將 InfoWindow 移至其他地圖。
closeclick
function()
引數:
按一下關閉按鈕時,會引發此事件。
content_changed
function()
引數:
按一下 content 屬性時,會引發此事件。
domready
function()
引數:
當包含 InfoWindow 內容的 <div> 附加至 DOM 時,會觸發此事件。如果您是以動態方式建構資訊視窗內容,您可能希望能監控這個事件。
position_changed
function()
引數:
當 position 屬性變更後,會引發此事件。
visible
function()
引數:
InfoWindow 完整顯示時,會觸發此事件。將 InfoWindow 平移並返回螢幕上時,不會觸發此事件。
zindex_changed
function()
引數:
InfoWindow 的 zIndex 變更時,會觸發這個事件。

InfoWindowOptions 介面

google.maps.InfoWindowOptions 介面

InfoWindowOptions 物件,用來定義可在 InfoWindow 設定的屬性。

ariaLabel optional
類型:  string optional
指派給資訊視窗的 AriaLabel。
content optional
類型:  string|Element|Text optional
要顯示在資訊視窗的內容。可以是 HTML 元素、純文字字串或包含 HTML 的字串。資訊視窗會根據內容而調整大小。如果要另外設定內容的大小,可以將內容設定成該大小的 HTML 元素。
disableAutoPan optional
類型:  boolean optional
預設: false
停用平移地圖,讓資訊視窗開啟時完整顯示。
maxWidth optional
類型:  number optional
不論內容寬度為何,資訊視窗的寬度上限。只有在呼叫 open() 之前已設定這個值,系統才會考慮這個值。如要在變更內容時變更寬度上限,請呼叫 close()setOptions()open()
minWidth optional
類型:  number optional
無論內容的寬度為何,資訊視窗的最小寬度。使用這個屬性時,強烈建議您將 minWidth 設為小於地圖的寬度 (以像素為單位)。只有在呼叫 open() 之前已設定這個值,系統才會考慮這個值。如要在變更內容時變更最小寬度,請呼叫 close()setOptions()open()
pixelOffset optional
類型:  Size optional
地圖上資訊視窗頂端提示的偏移值 (以像素為單位),從資訊視窗固定地理座標的位置。如果使用錨點開啟 InfoWindow,系統會從錨點的 anchorPoint 屬性計算 pixelOffset
position optional
類型:  LatLng|LatLngLiteral optional
要顯示這個資訊視窗的 LatLng。如果使用錨點開啟資訊視窗,會改用錨定標記的位置。
zIndex optional
類型:  number optional
所有 InfoWindows 會依其 zIndex 順序顯示,值較大的資訊視窗會顯示在值較小的 InfoWindows 前面。根據預設,系統根據其緯度顯示資訊視窗,緯度較小的資訊視窗會顯示在緯度較高的資訊視窗前面。資訊視窗會顯示在標記的前面。

InfoWindowOpenOptions 介面

google.maps.InfoWindowOpenOptions 介面

開啟資訊視窗的選項

anchor optional
類型:  MVCObject|AdvancedMarkerElement optional
這個資訊視窗會放置的錨點。如果錨點不是空值,InfoWindow 會位於錨點的正上方。資訊視窗會在相同的地圖或全景上算繪為錨點 (如果有的話)
map optional
類型:  Map|StreetViewPanorama optional
要顯示這個資訊視窗的地圖或全景。
shouldFocus optional
類型:  boolean optional
當焦點開啟時,是否應將焦點移至資訊視窗內。如未設定這個屬性或設為 nullundefined,系統會根據經驗法則判定是否應移動焦點。建議根據需求明確設定這個屬性,因為經驗法則可能會變動,且不一定適用於所有用途。