信息窗口
介绍
显示内容在地图上方的弹出窗口(通常是文本或图像),在给定位置。信息窗口具有内容区域和锥形茎。茎的尖端连接到地图上的指定位置。 InfoWindow
一个InfoWindow,显示有关澳大利亚位置的信息。
通常,您会将信息窗口附加到 标记上,但也可以将信息窗口附加到特定的纬度/经度,如下面有关添加信息窗口的部分所述。
广义上讲,信息窗口是一种叠加层。有关其他类型的叠加层的信息,请参见 在地图上绘制。
提示:如果要在标记上显示单个文本字符,可以使用 标记标签。
提示:查看“ 商店定位器”解决方案 以获取更多使用信息窗口的示例。
添加信息窗口
所述构造函数采用 对象常量,它指定用于显示信息窗口的初始参数。 InfoWindow InfoWindowOptions
该InfoWindowOptions对象常量包含以下字段:
content 包含要在信息窗口中显示的文本字符串或DOM节点。
pixelOffset包含从信息窗口的尖端到信息窗口锚定位置的偏移量。实际上,您无需指定此字段。您可以将其保留为默认值。
position包含LatLng锚定此信息窗口的位置。注意:InfoWindow可以将an 附加到Marker对象(在这种情况下,其位置取决于标记的位置),也可以附加到指定位置的地图本身LatLng。检索a的一种方法LatLng是使用 地理编码服务。在标记上打开信息窗口会自动更新 position。
maxWidth指定信息窗口的最大宽度(以像素为单位)。默认情况下,信息窗口会扩展以适合其内容,如果信息窗口填满了地图,则会自动换行文本。如果添加一个maxWidth信息窗口,则会自动换行以强制执行指定的宽度。如果达到最大宽度并且屏幕上有垂直空间,则信息窗口可能会垂直扩展。
的内容InfoWindow可能包含文本字符串,HTML片段或DOM元素。要设置内容,InfoWindowOptions请setContent()在或在InfoWindow显式调用 上指定它。
如果希望显式调整内容的大小,则可以将其放在
最佳做法:为了获得最佳的用户体验,任何时候都只能在地图上打开一个信息窗口。多个信息窗口使地图显得混乱。如果一次只需要一个信息窗口,则可以仅创建一个InfoWindow对象,并在地图事件(例如用户单击)时在不同的位置或标记处打开它。如果确实需要多个信息窗口,则可以同时显示多个 InfoWindow对象。
打开信息窗口
创建信息窗口时,它不会自动显示在地图上。要使信息窗口可见,您需要在上调用open() 方法InfoWindow,将其传递Map给要打开的方法,还可以选择将Marker其作为锚定的方法。如果未提供标记,则信息窗口将在其position属性中打开 。
// This example displays a marker at the center of Australia.
// When the user clicks the marker, an info window opens.
function initMap() {
var uluru = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: uluru
});
var contentString = '
'<div id="siteNotice">'+
'</div>'+
'<h1 id="firstHeading" class="firstHeading">Uluru</h1>'+
'<div id="bodyContent">'+
'<p><b>Uluru</b>, also referred to as <b>Ayers Rock</b>, is a large ' +
'sandstone rock formation in the southern part of the '+
'Northern Territory, central Australia. It lies 335 km (208 mi) '+
'south west of the nearest large town, Alice Springs; 450 km '+
'(280 mi) by road. Kata Tjuta and Uluru are the two major '+
'features of the Uluru - Kata Tjuta National Park. Uluru is '+
'sacred to the Pitjantjatjara and Yankunytjatjara, the '+
'Aboriginal people of the area. It has many springs, waterholes, '+
'rock caves and ancient paintings. Uluru is listed as a World '+
'Heritage Site.</p>'+
'<p>Attribution: Uluru, <a href="https://en.wikipedia.org/w/index.php?title=Uluru&oldid=297882194">'+
'https://en.wikipedia.org/w/index.php?title=Uluru</a> '+
'(last visited June 22, 2009).</p>'+
'</div>'+
'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: uluru,
map: map,
title: 'Uluru (Ayers Rock)'
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}
查看示例。
以下示例设置maxWidth信息窗口的: view example。
关闭信息窗口
默认情况下,InfoWindow在用户单击关闭控件(信息窗口右上角的叉号)之前,该控件保持打开状态。如果愿意,可以通过调用其close()方法显式关闭信息窗口。
移动信息窗口
有两种方法可以更改信息窗口的位置:
致电setPosition()信息窗口,或
使用InfoWindow.open()方法将信息窗口附加到新标记 。注意:如果调用时open() 未传递标记,则InfoWindow它将使用通过InfoWindowOptions对象文字构造时指定的位置 。
客制化
本InfoWindow类不提供定制。相反,请参阅 自定义弹出窗口示例, 以了解如何创建完全自定义的弹出窗口。