OverlayView 類別
google.maps.OverlayView
class
如果您想在地圖上顯示自訂類型的疊加物件,可以實作這個類別。
設定疊加層的原型 (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() 參數:無
傳回值:無
實作此方法,以便繪製或更新疊加層。使用 projection.fromLatLngToDivPixel() 的顯示位置,正確設定與 MapPane 相關聯的覆蓋圖位置。系統會在 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) 參數:
傳回值:無
將疊加層新增至地圖或全景。 |
繼承:
addListener 、bindTo 、get 、notify 、set 、setValues 、unbind 、unbindAll |
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]) 參數:
傳回值:
LatLng|null 從地圖容器中的像素座標計算地理座標。 |
fromDivPixelToLatLng |
fromDivPixelToLatLng(pixel[, noClampNoWrap]) 參數:
傳回值:
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 軸的像素跨距。 |