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
实现此方法可绘制或更新叠加层。使用 projects.fromLatLngToDivPixel() 中的位置来正确定位叠加层相对于 MapPanes 的位置。此方法在 onAdd() 之后调用,并在缩放或中心改变时调用。不建议使用此方法执行计算开销很大的工作。 |
getMap |
getMap() 参数:无
|
getPanes |
getPanes() 参数:无
返回值:
MapPanes|null 返回可在其中呈现此 OverlayView 的窗格。在 API 调用 onAdd 之前,窗格不会初始化。 |
getProjection |
getProjection() 参数:无
返回与此 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
接口
此对象可从绘制方法内提供给 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 轴上的像素跨度。 |