DOM elements

OverlayView 类

google.maps.OverlayView class
extends MVCObject
library "maps", "streetView"

如果您想在地图上显示自定义类型的叠加层对象,可以实现此类。

通过设置叠加层的原型来继承此类:MyOverlay.prototype = new google.maps.OverlayView();。OverlayView 构造函数保证是一个空函数。

您必须实现三种方法:onAdd()、draw() 和 onRemove()。

  • 在 onAdd() 方法中,您应创建 DOM 对象并将其作为窗格的子级附加。
  • 在 draw() 方法中,您应该放置这些元素。
  • 在 onRemove() 方法中,您应从 DOM 中移除对象。
您必须使用有效的 Map 对象调用 setMap(),以触发对 onAdd() 方法的调用,并调用 setMap(null) 以触发 onRemove() 方法。setMap() 方法可在构建时调用,也可在移除叠加层后需要重新显示叠加层时调用。然后,每当地图属性发生变化(可能会改变元素的位置,例如缩放、中心或地图类型)时,系统都会调用 draw() 方法。

const {OverlayView} = await google.maps.importLibrary("maps");
或
const {OverlayView} = await google.maps.importLibrary("streetView");
OverlayView
OverlayView()
参数:无
创建一个 OverlayView。
preventMapHitsAndGesturesFrom
preventMapHitsAndGesturesFrom(element)
参数:
返回值:无
阻止元素上的点击、点按、拖动和滚轮事件向上冒泡到地图。使用此设置可防止地图拖动和缩放,以及地图“点击”事件。
preventMapHitsFrom
preventMapHitsFrom(element)
参数:
返回值:无
阻止对元素的点击或点按操作冒泡到地图。使用此选项可防止地图触发“点击”事件。
draw
draw()
参数:无
返回值:void
实现此方法可绘制或更新叠加层。使用 projection.fromLatLngToDivPixel() 中的位置,相对于 MapPanes 正确放置叠加层。此方法在 onAdd() 之后调用,并在缩放或中心发生变化时调用。不建议在此方法中执行计算开销较大的工作。
getMap
getMap()
参数:无
getPanes
getPanes()
参数:无
返回值:MapPanes|null
返回可在其中呈现此 OverlayView 的窗格。在 API 调用 onAdd 之前,这些窗格不会初始化。
getProjection
getProjection()
参数:无
返回与此 OverlayView 关联的 MapCanvasProjection 对象。在 API 调用 onAdd 之前,投影不会初始化。
onAdd
onAdd()
参数:无
返回值:void
实现此方法以初始化叠加层 DOM 元素。在使用有效地图调用 setMap() 后,系统会调用此方法一次。此时将会初始化窗格和投影。
onRemove
onRemove()
参数:无
返回值:void
实现此方法可从 DOM 中移除元素。调用 setMap(null) 之后立即调用此方法。
setMap
setMap(map)
参数:
  • map:Map|StreetViewPanorama optional 地图或全景图片。如果为 null,则系统会移除该层。
返回值:无
将叠加层添加到地图或全景图。
继承的方法: 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])
参数:
  • pixel:Point optional
  • noClampNoWrap:boolean optional
返回值:LatLng|null
根据地图容器中的像素坐标计算地理坐标。
fromDivPixelToLatLng
fromDivPixelToLatLng(pixel[, noClampNoWrap])
参数:
  • pixel:Point optional
  • noClampNoWrap:boolean 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 轴上的像素跨度。