OverlayView class
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() 的位置,相對於 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)參數:   
 傳回值:無 將疊加層新增至地圖或全景。 | 
| 已繼承: 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 interface
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 軸的像素範圍。 |