且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Google地图官方API-在地图上绘图(弹出信息窗口)

更新时间:2022-02-16 04:14:42

信息窗口

介绍
显示内容在地图上方的弹出窗口(通常是文本或图像),在给定位置。信息窗口具有内容区域和锥形茎。茎的尖端连接到地图上的指定位置。 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显式调用 上指定它。

如果希望显式调整内容的大小,则可以将其放在

元素中并
使用CSS设置样式。您也可以使用CSS启用滚动。请注意,如果您未启用滚动并且内容超出了信息窗口中的可用空间,则内容可能会溢出信息窗口。

***做法:为了获得***的用户体验,任何时候都只能在地图上打开一个信息窗口。多个信息窗口使地图显得混乱。如果一次只需要一个信息窗口,则可以仅创建一个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&#160;km (208&#160;mi) '+
  'south west of the nearest large town, Alice Springs; 450&#160;km '+
  '(280&#160;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类不提供定制。相反,请参阅 自定义弹出窗口示例, 以了解如何创建完全自定义的弹出窗口。