高德地图-展示多个信息窗口

本文介绍如何使用高德地图API在地图上设置图标并显示相关信息。通过JavaScript代码实现地图加载、设置标记及信息窗口的打开功能。该示例展示了如何结合地理位置数据和人员信息来创建交互式地图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、问题背景

高德地图,设置小图标,并点击图标显示信息


2、实现源码

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
    <title>高德地图展示多个信息窗口</title>
    <link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>
    <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=key值"></script>
    <script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script>
    
</head>
<body>
	<div id="container"></div>
	<script type="text/javascript">
	    //初始化地图对象,加载地图
	    var map = new AMap.Map("container", {
	    	      resizeEnable: true,
	    	       zoom:10
	            });
	    
	    //经度纬度
	    var lnglats = [
	        [114.069919,30.564255],
	        [114.461307,30.618634],
	        [114.509372,30.492096],
	        [114.525165,30.742646],
	        [114.620609,30.712543],
	        [114.547138,30.412779],
	        [113.902378,30.396789],
	        [114.15163,30.779228],
	        [114.676227,30.857067],
	        [114.162616,30.96782]
	    ];
	    
	    //人员信息
	    var student = [
	    	{name:"张思",age:"22",sex:"女"},
	    	{name:"李磊",age:"21",sex:"男"},
	    	{name:"吴雪",age:"22",sex:"女"},
	    	{name:"思雨",age:"23",sex:"女"},
	    	{name:"赵华",age:"24",sex:"男"},
	    	{name:"孙杨",age:"26",sex:"男"},
	    	{name:"钱思思",age:"20",sex:"女"},
	    	{name:"郑武",age:"22",sex:"男"},
	    	{name:"胡迪",age:"21",sex:"男"},
	    	{name:"司马云",age:"22",sex:"女"}
	    ];
	    
	    //初始化信息窗口
	    var infoWindow = new AMap.InfoWindow({offset: new AMap.Pixel(0, -30)});
	    
	    //循环遍历
	    for (var i = 0, marker; i < lnglats.length; i++) 
	    {
	        var marker = new AMap.Marker({
	            position: lnglats[i],
	            map: map
	        });
	        marker.content = "人员位置<br><br>姓名:"+student[i].name+"<br>年龄:"+student[i].age+"<br>性别:"+student[i].sex;
	        marker.on('click', markerClick);
	        marker.emit('click', {target: marker});
	    }
	    
	    //点击事件
	    function markerClick(e) 
	    {
	        infoWindow.setContent(e.target.content);
	        infoWindow.open(map, e.target.getPosition());
	    }
	    map.setFitView();
	</script>
</body>
</html>

3、实现结果


### 高德地图API标记点显示自定义信息窗口高德地图中,为了增强用户体验并提供更丰富的交互功能,在标记点(Marker)上展示自定义信息窗口是一个常见需求。这不仅能够美化界面,还能传递更多关于位置的具体数据给用户。 #### 创建基础的地图实例 首先初始化一个基本的地图对象,并设定中心坐标以及缩放级别: ```javascript var map = new AMap.Map('container', { zoom: 10, center: [116.397428, 39.90923] // 设置地图中心点为北京天安门广场 }); ``` #### 添加带有点击事件监听器的标记点 接着创建一个新的`AMap.Marker`实例作为地图上的标记点,并为其绑定单击事件处理程序以便触发信息窗口显示: ```javascript // 定义要添加到地图上的标记点 var marker = new AMap.Marker({ position: new AMap.LngLat(116.397428, 39.90923), title: '这是一个测试标记' }); // 将此标记添加至地图 map.add(marker); // 给标记添加click事件监听器 marker.on('click', function() { infoWindow.open(map, marker.getPosition()); }) ``` #### 构建自定义的信息窗口内容 利用HTML字符串构建想要呈现的内容结构,这里可以加入图片、链接或者其他任何合法的DOM元素;当然也支持直接传入已存在的DOM节点[^4]: ```html <div id="custom-info-window"> <h3>欢迎来到美丽的首都</h3> <p><strong>当前位置:</strong>北京市东城区长安街</p> <img src="path/to/image.jpg" alt="风景图"/> </div> ``` #### 实例化并配置信息窗口组件 最后一步就是根据前面准备好的内容来新建一个`InfoWindow`实例,并指定其样式和其他选项: ```javascript var content = document.getElementById('custom-info-window').innerHTML; var infoWindow = new AMap.InfoWindow({ isCustom: true,// 使用自定义窗体 offset: new AMap.Pixel(16, -45), content: content }); ``` 以上代码片段展示了如何结合JavaScript与HTML共同作用于高德地图平台之上,完成从简单地理坐标的可视化表达向更具吸引力且实用性的交互式UI转变的过程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值