百度地图(28)-GL 信息窗口

1. 三维GL库的信息窗口也支持多种类型,主要是有InfoWIndow,InfoBox, RichMarker

这次先来学一下 InfoWindow。

 

2. InfoWindow 是 BMapGL 库直接支持的对象,其内容可以是Html内容。所以说内容可以很丰富。

也支持从窗口对象中获取信息内容。

InfoWindow 只能同时显示一个,所以无法对多个对象同时显示信息。

 

3. 代码

 1 /**
 2  * 添加简单信息窗口
 3  */
 4 function addSimpleInfo(){
 5 
 6   var point = new BMapGL.Point(116.404, 39.925);
 7   map.centerAndZoom(point, 15);
 8 
 9   var marker = new BMapGL.Marker(point);  // 创建标注
10   map.addOverlay(marker);              // 将标注添加到地图中
11   var opts = {
12     width : 200,     // 信息窗口宽度
13     height: 100,     // 信息窗口高度
14     title : "故宫博物院" , // 信息窗口标题
15     message:"这里是故宫"
16   }
17   var infoWindow = new BMapGL.InfoWindow("地址:北京市东城区王府井大街88号乐天银泰百货八层", opts);  // 创建信息窗口对象
18   marker.addEventListener("click", function(){
19     map.openInfoWindow(infoWindow, point); //开启信息窗口
20   });
21 }
22 
23 /**
24  * 添加复杂信息框,使用InfoBox时,html中的链接可以打开,而使用Overlay时,链接不可以。
25  * 应该Overlay虽然有链接,但应该整个作为一个marker来处理,不能对其内部进行操作。
26  * @param marker
27  */
28 function addContentInfo() {
29 
30   map.centerAndZoom(new BMapGL.Point(116.404,39.915),15);
31 
32   var marker = new BMapGL.Marker(new BMapGL.Point(116.404, 39.915));
33   map.addOverlay(marker);
34 // 创建图文信息窗口
35   var sContent = "<h4 style='margin:0 0 5px 0;'>天安门</h4>" +
36     "<img style='float:right;margin:0 4px 22px' id='imgDemo' src='../img/gl/tianAnMen.jpg' width='139' height='104'/>"+
37     "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>"+
38     "天安门坐落在中国北京市中心,故宫的南侧,与天安门广场隔长安街相望,是清朝皇城的大门..."+
39     "</p></div>";
40   var infoWindow = new BMapGL.InfoWindow(sContent);
41 // marker添加点击事件
42   marker.addEventListener('click', function () {
43     this.openInfoWindow(infoWindow);
44     // 图片加载完毕重绘infoWindow
45     document.getElementById('imgDemo').onload = function () {
46       infoWindow.redraw(); // 防止在网速较慢时生成的信息框高度比图片总高度小,导致图片部分被隐藏
47     };
48   });
49 }
50 
51 function getInfoContent(){
52   var point = new BMapGL.Point(116.404, 39.925);
53   map.centerAndZoom(point, 15);
54   var opts = {
55     width: 200,
56     height: 100,
57     title: '故宫博物院'
58   };
59   var infoWindow = new BMapGL.InfoWindow('地址:北京市东城区王府井大街88号乐天银泰百货八层', opts);
60   map.openInfoWindow(infoWindow, point);
61 
62   function getInfoContent() {
63     alert(infoWindow.getContent());
64   }
65   getInfoContent();
66 }

 

4. 页面显示

 

 

5. 源码地址

https://github.com/WhatGIS/bdMap

 

posted @ 2021-04-26 16:40  googlegis  阅读(1344)  评论(0编辑  收藏  举报

坐标合肥,非典型GIS开发人员 GitHub