百度地图多标注显示以及自定义图标

**

百度地图多标注显示以及自定义图标

**

效果图:
在这里插入图片描述

HTML部分

<style>
	*{
		margin:0px;
		padding:0px
	}			
	html{
		font-size: 100%;
	}  
	body{
		font-size:1em;
	} 
	
	 body,html,#container {
		width: 100%;
		height: 100%;
		overflow: hidden;
		margin: 0;
		position: absolute;
	}
</style>
<div id="container"></div>

JS部分

<script type="text/javascript" src="js/jquery-1.10.2.js" ></script>
var markerArr = [
		{
			name:"设备1",
			location:"上海市浦东新区东方路2000号东视大厦",
			lng: "121.51",
			lat: "31.24",
			isOpen:0,icon:{w:21,h:21,l:0,t:0,x:6,lb:5}
		},
		{
			name:"设备2",
			location:"上海市浦东新区世纪大道1号",
			lng: "121.4095",
			lat: "31.24",
			isOpen:0,icon:{w:21,h:21,l:0,t:0,x:6,lb:5}
		},
		{
			name:"设备3",
			location:"上海市静安区老沪太路203甲",
			lng: "121.4095",
			lat: "31.1796",
			isOpen:0,icon:{w:21,h:21,l:0,t:0,x:6,lb:5}
		},
		{
			name:"设备4",
			location:"上海市浦东新区东方路2000号东视大厦",
			lng: "121.4095",
			lat: "31.2000",
			isOpen:0,icon:{w:21,h:21,l:0,t:0,x:6,lb:5}
		},
 ];

    
 function map_init() {
 var map = new BMap.Map("container"); // 创建Map实例
        
        var point = new BMap.Point(121.4095,31.1796); //地图中心点,广州市
        map.centerAndZoom(point, 13); // 初始化地图,设置中心点坐标和地图级别。
        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].lng; //
            var p1 = markerArr[i].lat; //按照原数组的point格式将地图点坐标的经纬度分别提出来
            var myIcon1 = new BMap.Icon("/intelControlManage/img/CCD.png", new BMap.Size(32,32));
            point[i] = new window.BMap.Point(p0, p1); //循环生成新的地图点
            marker[i] = new window.BMap.Marker(point[i],{icon:myIcon1}); //按照地图点坐标生成标记
            map.addOverlay(marker[i]);
            var label = new window.BMap.Label(markerArr[i].name, { offset: new window.BMap.Size(20, -20) });
            label.setStyle({
				 color : "#2c2c2c",
				 fontSize : "12px",
				 paddingLeft :'10px',
				 paddingRight :'10px',
				 border: 'none',
				 height : "20px",
				 lineHeight : "20px",
				 fontFamily:"微软雅黑"
			 });
            marker[i].setLabel(label);
            info[i] = new window.BMap.InfoWindow("<p style=’font-size:12px;line-height:1.8em;’>" + markerArr[i].name + "</br>地址:" + markerArr[i].location  + "</br></p>"); // 创建信息窗口对象
			addInfo(info[i].content,marker[i]);

        }(i);
        map.setViewport(markerArr) //让所有点在视野范围内
        //点击标注显示内容
        function addInfo(txt,marker){
		    let infoWindow = new BMap.InfoWindow(txt); //这里一定要使用let声明,否则显示出来的都是最后一条信息
		    marker.addEventListener("click", function(){
		    	this.openInfoWindow(infoWindow);
		    });
		}
	 }
	 //异地调用百度地图API
	 function map_load() {
        var load = document.createElement('script');
        load.src = "http://api.map.baidu.com/api?v=3.0&ak=你的百度API秘钥&callback=map_init";
        document.body.appendChild(load);
    }
    window.onload = map_load;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用UniGUI调用百度地图添加标注点并变更标注图标,可以按照以下步骤进行: 1. 首先,确保已经在UniGUI项目中添加了TUniWebBrowser组件,该组件可以用来加载百度地图。 2. 在UniGUI的项目代码中,找到需要加载百度地图的位置,并在相应的事件或方法中执行以下代码: ```delphi UniWebBrowser1.ViewContent := '<html>' + '<head><script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=your_ak"></script></head>' + '<body>' + '<div id="map" style="width:100%; height:100%;"></div>' + '<script type="text/javascript">' + 'var map = new BMap.Map("map");' + 'var point = new BMap.Point(116.404, 39.915);' + 'map.centerAndZoom(point, 15);' + 'var marker = new BMap.Marker(point);' + 'map.addOverlay(marker);' + '</script>' + '</body></html>'; ``` 这段代码中,`your_ak`需要替换为自己申请的百度地图AK。 3. 上述代码中,`BMap.Point(116.404, 39.915)`表示标注点的经纬度坐标,可以根据需要进行修改。 4. 如果需要更改标注图标,可以在`BMap.Marker(point)`之后添加以下代码,将默认图标替换为自定义图标: ```delphi 'var myIcon = new BMap.Icon("custom_icon_url", new BMap.Size(30, 30));' + 'marker.setIcon(myIcon);' ``` 其中`custom_icon_url`需要替换为你自定义图标的地址。 5. 最后,注意在UniGUI程序中设置相应的权限,确保百度地图可以正常加载和使用。 以上就是使用UniGUI调用百度地图添加标注点并变更标注图标的简要步骤。希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值