前面我们学习了地图和标记的创建。那么今天我们来学习怎样在地图上显示一个窗口(infowindow)
infowindow构造函数为:InfoWindow(opts?:InfoWindowOptions)。
InfoWindowOptions对象指定用于显示信息窗口的初始化参数。
InfoWindowOptions对象属性:
content:包含一个文本字符串或信息窗口中显示DOM节点。
pixelOffset:表示信息窗口的位置偏移。
position:infowindow显示的位置(经纬度)。
maxWidth:指定的像素信息窗口的最大宽度。
下面我们来创建一个infowindow:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <title>Info windows</title> <style> html, body { height: 100%; margin: 0; padding: 0; } #map { height: 100%; } </style> </head> <body> <div id="map"></div> <script> // 初始化地图 function initMap() { var uluru = {lat: -25.363, lng: 131.044}; var map = new google.maps.Map(document.getElementById('map'), { zoom: 4, center: uluru }); //infowindow要显示的内容 var contentString = "this is a infowindow!" //定义infowindow var infowindow = new google.maps.InfoWindow({ content: contentString }); //定义marker var marker = new google.maps.Marker({ position: uluru, map: map, title: 'Uluru (Ayers Rock)' }); //为marker添加一个点击事件的监听函数(即点即marker后将infowindow显示出来) marker.addListener('click', function() { infowindow.open(map, marker); }); } </script> <script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> </script> </body> </html>
以上就是创建infowindow的代码,当我们点击地图上的marker时,infowindow就显示出来了!
当我们想改变infowindow的内容时,我们可以使用 "infowindow.setContent("要改变的内容");"来改变infowindow的内容,同时我们也可以使用infowindow.getContent()来获取infowindow的内容。