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)参数:
返回值:None
阻止元素上的点击、轻触、拖动和滚轮事件向上冒泡到地图。您可以使用此方法来防止地图拖动和缩放,以及地图“点击”事件。 |
preventMapHitsFrom |
preventMapHitsFrom(element)参数:
返回值:None
阻止点击或点按元素时事件上报到地图。使用此方法可防止地图触发“点击”事件。 |
方法 | |
|---|---|
draw |
draw()参数:无
返回值:None
实现此方法以绘制或更新叠加层。使用 projection.fromLatLngToDivPixel() 中的坐标,以便相对于 MapPane 正确放置叠加层。系统会在 onAdd() 之后调用此方法,并在缩放或居中发生变化时调用此方法。不建议在此方法中执行计算量大的操作。 |
getMap |
getMap()参数:无
返回值:
Map|StreetViewPanorama |
getPanes |
getPanes()参数:无
返回值:
MapPanes|null返回此 OverlayView 可渲染的窗格。只有在 API 调用 onAdd 后,窗格才会初始化。 |
getProjection |
getProjection()参数:无
返回值:
MapCanvasProjection返回与此 OverlayView 关联的 MapCanvasProjection 对象。只有在 API 调用 onAdd 后,投影才会初始化。 |
onAdd |
onAdd()参数:无
返回值:None
实现此方法以初始化叠加层 DOM 元素。在使用有效地图调用 setMap() 后,系统会调用此方法一次。此时将会初始化窗格和投影。 |
onRemove |
onRemove()参数:无
返回值:None
实现此方法可从 DOM 中移除元素。调用 setMap(null) 之后立即调用此方法。 |
setMap |
setMap(map)参数:
返回值:None
将叠加层添加到地图或全景图。 |
继承:
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 接口
此对象会从 draw 方法中提供给 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 轴中的像素跨度。 |