DOM elements

OverlayView 類別

google.maps.OverlayView 類別

如果您要在地圖上顯示自訂類型的疊加層物件,就可以實作這個類別。

設定疊加層的原型,以繼承這個類別:MyOverlay.prototype = new google.maps.OverlayView();OverlayView 建構函式保證為空白函式。

您必須實作以下三種方法:onAdd()draw()onRemove()

  • onAdd() 方法中,您應該建立 DOM 物件,然後以窗格子項的形式附加這些物件。
  • draw() 方法中,您應定位這些元素。
  • onRemove() 方法中,您應該從 DOM 移除物件。
必須使用有效的 Map 物件呼叫 setMap(),才能觸發對 onAdd() 方法和 setMap(null) 的呼叫,以便觸發 onRemove() 方法。建構時或疊加層移除後應再次重新顯示時,都可以呼叫 setMap() 方法。這樣一來,每當地圖屬性變更會改變元素位置 (例如縮放、中心或地圖類型) 時,系統就會呼叫 draw() 方法。

這個類別會擴充 MVCObject

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

OverlayView
OverlayView()
參數:
可建立 OverlayView
preventMapHitsAndGesturesFrom
preventMapHitsAndGesturesFrom(element)
參數: 
傳回值:
停止讓元素上浮動的點選、輕觸、拖曳和滾輪事件。您可以運用這個功能,防止地圖拖曳和縮放功能以及地圖的「點擊」事件。
preventMapHitsFrom
preventMapHitsFrom(element)
參數: 
傳回值:
停止點擊或輕觸元素,不再出現在地圖上。使用這個選項可以避免地圖觸發「點擊」事件。
draw
draw()
參數:
傳回值:
實作此方法來繪製或更新疊加層。使用 project.fromLatLngToDivPixel() 中的位置,根據 MapPanes 正確定位疊加層。在 onAdd() 之後會呼叫此方法,並在縮放或中心變更時呼叫此方法。我們不建議在此方法中,執行高成本的運算工作。
getMap
getMap()
參數:
傳回值:  Map|StreetViewPanorama
getPanes
getPanes()
參數:
傳回值:  MapPanes|null
傳回可以轉譯此 OverlayView 的窗格。除非 API 呼叫 onAdd,否則窗格不會初始化。
getProjection
getProjection()
參數:
傳回值:  MapCanvasProjection
傳回與這個 OverlayView 相關聯的 MapCanvasProjection 物件。在 API 呼叫 onAdd 之前,不會初始化投影。
onAdd
onAdd()
參數:
傳回值:
實作此方法來初始化疊加層 DOM 元素。使用有效的地圖呼叫 setMap() 之後,就會呼叫這個方法一次。此時,窗格以及投影就已被初始化。
onRemove
onRemove()
參數:
傳回值:
實作此方法來從 DOM 中移除您的元素。呼叫 setMap(null) 之後就呼叫此方法。
setMap
setMap(map)
參數: 
傳回值:
將疊加層新增至地圖或全景。
沿用: addListenerbindTogetnotifysetsetValuesunbindunbindAll

MapPanes 介面

google.maps.MapPanes 介面

floatPane
類型:  Element
此窗格包含資訊視窗。位於所有地圖疊加層上方 (窗格 4)。
mapPane
類型:  Element
此窗格是最低的窗格,位於地圖方塊之上。這個窗格不會接收 DOM 事件(窗格 0)。
markerLayer
類型:  Element
此窗格包含標記。這個窗格不會接收 DOM 事件(窗格 2)。
overlayLayer
類型:  Element
此窗格包含折線、多邊形、區域疊加層以及地圖方塊的疊加層。這個窗格不會接收 DOM 事件(窗格 1)。
overlayMouseTarget
類型:  Element
此窗格包含用於接收 DOM 事件的元素。(窗格 3)。

MapCanvasProjection 介面

google.maps.MapCanvasProjection 介面

此物件在繪圖方法中可提供給 OverlayView 使用。但在呼叫繪製方法前不保證會初始化。

fromContainerPixelToLatLng
fromContainerPixelToLatLng(pixel[, noClampNoWrap])
參數: 
  • pixelPoint optional
  • noClampNoWrapboolean optional
傳回值:  LatLng|null
從地圖容器中的像素座標計算地理座標。
fromDivPixelToLatLng
fromDivPixelToLatLng(pixel[, noClampNoWrap])
參數: 
  • pixelPoint optional
  • noClampNoWrapboolean optional
傳回值:  LatLng|null
從 div (包含可拖曳的地圖) 中的像素座標計算地理座標。
fromLatLngToContainerPixel
fromLatLngToContainerPixel(latLng)
參數: 
傳回值:  Point|null
計算地圖容器元素中指定地理位置的像素座標。
fromLatLngToDivPixel
fromLatLngToDivPixel(latLng)
參數: 
傳回值:  Point|null
在 DOM 元素 (包含可拖曳的地圖) 的指定地理位置計算像素座標。
getVisibleRegion
getVisibleRegion()
參數:
傳回值:  VisibleRegion|null
地圖的可見區域。如果地圖沒有尺寸,則傳回 null。如果 OverlayView 位於 StreetViewPanorama 上,則傳回 null
getWorldWidth
getWorldWidth()
參數:
傳回值:  number
目前縮放等級的世界寬度 (像素)。如果投影的方向角度為 90 或 270 度,這個值對應 Y 軸的像素時距。