百度/高德地图多点标注,多个信息窗口

13 篇文章 2 订阅
8 篇文章 0 订阅

效果:

1.百度地图
百度地图

百度地图多点标注,多个信息窗口

2.高德地图
高德地图

高德地图多点标注,多个信息窗口

说明:前面用的百度,后面英文站没找到百度的英文版改了高德;
如果客户没有特别要求可以直接使用高德,高德有语言切换就不用写两遍了;
只一点建议看需求来

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>地图多点标注</title>
		<link rel="stylesheet" type="text/css" href="css/index.css"/>
		<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
		<style>
			body{width: 100%;box-sizing: border-box;padding: 1px 0;height: auto;}
			.mapwrap{width: 60%;height: 400px;position: relative;margin: 50px auto;}
			.mapcont{width: 100%;height: 100%;}
			/*.amap-icon*/
			.amap-icon img{transform:scale(0.6);}
			.amap-info-content p{font-size: 14px;line-height: 24px;color: #333333;}
			.amap-info-content p span{font-size: 18px;color: #333333;font-weight: bold;text-align: center;margin-bottom: 20px;}
			.amap-info-content{padding: 20px;}
		</style>
	</head>
	<body>
		
		<!-- map百度 -->
		<div class="mapwrap">
			<div class="mapcont" id="allmap"></div>
			<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=9gFLRLFljLV2FZNruahblQLIG2WLhGIr"></script>
			<script>
				var markerArr = [  
						{ title: "公司地址01", point: "106.593759,29.571931", address: "地址:重庆市渝中区朝天门街道接圣街8号"},  
						{ title: "公司地址", point: "112.886249,28.241908", address: "地址:中国 湖南长沙岳麓区旺龙路万为科"},
					];
					var map = new BMap.Map("allmap"); // 创建Map实例  
					var point = new BMap.Point(112.886249,28.241908); //地图中心点,广州市  
					map.centerAndZoom(point, 7); // 初始化地图,设置中心点坐标和地图级别。  
					map.enableScrollWheelZoom(true); //启用滚轮放大缩小  
					//向地图中添加缩放控件  
					var ctrlNav = new window.BMap.NavigationControl({  
						anchor: BMAP_ANCHOR_TOP_LEFT,  
						type: BMAP_NAVIGATION_CONTROL_LARGE  
					});  
					map.addControl(ctrlNav);  
				  
					//向地图中添加缩略图控件  
					var ctrlOve = new window.BMap.OverviewMapControl({  
						anchor: BMAP_ANCHOR_BOTTOM_RIGHT,  
						isOpen: 1  
					});  
					map.addControl(ctrlOve);  
				  
					//向地图中添加比例尺控件  
					var ctrlSca = new window.BMap.ScaleControl({  
						anchor: BMAP_ANCHOR_BOTTOM_LEFT  
					});  
					map.addControl(ctrlSca);  
				  
					var point = new Array(); //存放标注点经纬信息的数组  
					var marker = new Array(); //存放标注点对象的数组  
					var info = new Array(); //存放提示信息窗口对象的数组  
					for (var i = 0; i < markerArr.length; i++) {  
						var p0 = markerArr[i].point.split(",")[0]; //  
						var p1 = markerArr[i].point.split(",")[1]; //按照原数组的point格式将地图点坐标的经纬度分别提出来  
						point[i] = new window.BMap.Point(p0, p1); //循环生成新的地图点  
						marker[i] = new window.BMap.Marker(point[i]); //按照地图点坐标生成标记  
						map.addOverlay(marker[i]);  
						marker[i].setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画  
						//标注点
						
							// var content = "<h3>" + markerArr[i].title + "</h3>" + "<p>" + markerArr[i].address + "</p>"
							// var label = new window.BMap.Label(content, { offset: new window.BMap.Size(20, -10) });
							// marker[i].setLabel(label);
						  
						//标注点end
						
						var opts = {
						    width: 250,     // 信息窗口宽度
						    height: 100,    // 信息窗口高度
						};
						info[i] = new window.BMap.InfoWindow("<h3 style=font-size:20px;line-height:1.8em;color:#222;font-weight:bold;>" + markerArr[i].title + "</h3><p style=font-size:14px;line-height:1.6em;>地址:" + markerArr[i].address + "</p>",opts); // 创建信息窗口对象  
					}
					marker[0].openInfoWindow(info[0]);//默认打开第一个窗口
					marker[0].addEventListener("mousedown", function () {  
						this.openInfoWindow(info[0]);  
					});  
					marker[1].addEventListener("mousedown", function () {  
						this.openInfoWindow(info[1]);  
					});
					
			</script>
			
		</div>
		
		<!-- map高德 -->
		<div class="mapwrap">
			<div class="mapcont" id="gdmap"></div>
			<script src="https://webapi.amap.com/maps?v=1.4.11&key=e22196035aaa10db3b0b6eb1ab64619e"></script>
			<script src="http://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
			 <script>
				//初始化地图
				var map = new AMap.Map('gdmap', {
				  resizeEnable: true,
				  center: [112.886249,28.241908],
				  zoom: 6,
				  lang: "en" //可选值:en,zh_en, zh_cn
				});
				
				var markerArr = [{"title":"map01","point":"106.593759,29.571931","address":"Address: No. 8 Jiesheng Street, Chaotianmen Street, Yuzhong District, Chongqing"},{"title":"map02","point":"112.886249,28.241908","address":"Address: Room 1702, Building 1, Wanwei Science and Technology Industrial Park, Wanglong Road, Yuelu District, Changsha, Hunan, China"}];
				// 添加一些分布不均的点到地图上,地图上添加二个点标记,作为参照
				var infoWindow = new AMap.InfoWindow({offset: new AMap.Pixel(15, -20)});
				for (var i = 0, marker; i < markerArr.length; i++) {
					var marker = new AMap.Marker({
						position: [markerArr[i].point.split(",")[0],markerArr[i].point.split(",")[1]],
						map: map,
						icon:"//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png"
					});
					marker.content = "<p>" + "<span>" +  markerArr[i].title + "</span>" + "</br>" + markerArr[i].address + "</p>";
					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>
		</div>
		
		
	</body>
</html>

要在Vue2中实现高德地图多点标注,你可以按照以下步骤进行操作: 1. 在Vue组件中引入高德地图的API,可以通过在`<head>`标签中添加`<script>`标签来引入高德地图的JavaScript API。 2. 在Vue组件中创建一个地图实例,可以使用`new AMap.Map`来实例化一个地图对象,并将其绑定到一个指定的DOM元素上。你可以使用以下代码创建地图实例: ```javascript map = new AMap.Map("container", { viewMode: "2D", zoom: 10, center: [83.28636635754393, 45.44533368853938], mapStyle: 'amap://styles/normal' }); ``` 这里的`"container"`是一个DOM元素的ID,表示地图将被渲染到该DOM元素中。 3. 在Vue组件中添加多个标记点,你可以使用`new AMap.Marker`来创建一个标记点对象,并将其添加到地图上。你需要为每个标记点指定一个位置(经纬度)和一个标记的图标。以下是一个添加标记点的示例代码: ```javascript marker1 = new AMap.Marker({ icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png", position: [116.406315, 39.908775], offset: new AMap.Pixel(-13, -30) }); marker2 = new AMap.Marker({ icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png", position: [经度, 纬度], offset: new AMap.Pixel(-13, -30) }); // 依次添加标记点到地图上 marker1.setMap(map); marker2.setMap(map); ``` 这里的`icon`表示标记点的图标,`position`表示标记点的位置(经纬度),`offset`表示标记点图标相对于位置的偏移量。 4. 最后,在Vue组件中显示地图和标记点。你可以在模板中添加一个包含地图的DOM元素,并将其样式设置为适当的大小。例如: ```html <template> <div id="map-container"></div> </template> <style> #map-container { width: 100%; height: 400px; } </style> ``` 这里的`map-container`是地图容器的ID,通过设置其宽度和高度来控制地图的大小。 通过按照以上步骤操作,你就可以在Vue2中实现高德地图多点标注了。记得先引入高德地图的API,然后创建地图实例,并添加标记点到地图上。最后,在模板中显示地图容器即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue3实现高德地图多点标注(so easy)](https://blog.csdn.net/dyk11111/article/details/131002815)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值