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()参数:无 返回值:无 实现此方法以绘制或更新叠加层。使用 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 接口
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 轴上的像素跨度。 |