百度地图的使用

本文介绍了如何在前端项目中使用百度地图API,从引入地图到初始化,详细讲解了添加控件、绘制图形、设置标签和信息窗口、搜索地址等功能,并提供了在Vue框架中的使用示例。

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

百度地图的使用

引入

<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=您的密钥"></script>

初始化地图

var map = new BMapGL.Map("container");          // 创建地图实例 
var point = new BMapGL.Point(116.404, 39.915);  // 创建点坐标 
map.centerAndZoom(point, 15);                 // 初始化地图,设置中心点坐标和地图级别

百度地图的常用知识

控件

		var scaleCtrl = new BMapGL.ScaleControl(); // 添加比例尺控件
		map.addControl(scaleCtrl);
		var zoomCtrl = new BMapGL.ZoomControl(); // 添加缩放控件
		map.addControl(zoomCtrl);
		var cityCtrl = new BMapGL.CityListControl(); // 添加城市列表控件
		map.addControl(cityCtrl);

点,线,多边形,圆

		//添加点
		var marjer = new BMapGL.Marker(point)
		//添加覆盖物
		map.addOverlay(marjer)
		//存储多个点
		var line = []
		var markers = []

		//监听事件
		map.addEventListener('click', e => {
			//创建点
			var p = new BMapGL.Point(e.latlng.lng, e.latlng.lat)
			//创建标记
			var m = new BMapGL.Marker(p)
			//添加标记
			map.addOverlay(m)
			//存储点
			line.push(p)
			console.log(e)
		})

		map.addEventListener('dblclick', e => {
			//把第0个点放最后
			line.push(line[0])
			//创建多边形
			var polygone = new BMapGL.Polygon(line, {
			//多边形颜色
				fillColor: 'red',
				//边的颜色
				strokeColor: "blue",
				strokeWeight: 2,
				strokeOpacity: 0.5
			})
			// var polyline = new BMapGL.Polyline(line,{strokeColor:"blue",strokeStyle:"dashed",strokeWeight:2,strokeOpacity:0.5})
			//添加线
			map.addOverlay(polygone)
			//清空点的列表
			line = []
			// stroke线,CoLor颜色,weight粗细,OPacity透明度
			//清空点
			markers.forEach(item => map.removeOverlay(item))
			markers = []
		})

    //绘制圆圈
    var circle = new BMapGL.Circle(point, 1000, { strokeColor: "green" });
    //添加圆圈
    map.addOverlay(circle);

添加标签

   //初始化地图
    var map = new BMapGL.Map("container");
    //准备一个中心点(经度,维度)
    var point = new BMapGL.Point(113.665, 34.784);
    //设置中心点和缩放级别
    map.centerAndZoom(point, 15);
    //鼠标滚轮缩放
    map.enableScrollWheelZoom(true);
    // 创建标注 
    var marker = new BMapGL.Marker(point);
    map.addOverlay(marker);

    var label = new BMapGL.Label("前端学习基地", { //创建文本标注
        position: point, //设置标注的地理位置
        offset: new BMapGL.Size(0, 0) //设置标注的偏移量
    })
    map.addOverlay(label);
    label.setStyle({ //设置label样式
        color: "#000",
        fontSize: "30px",
        border: "1px solid #ccc"
    })

在这里插入图片描述

添加信息窗口

	var map = new BMapGL.Map("container");
		var point = new BMapGL.Point(113.665, 34.784);
		map.centerAndZoom(point, 15);
		map.enableScrollWheelZoom(true);
		var scaleCtrl = new BMapGL.ScaleControl(); // 添加比例尺控件
		map.addControl(scaleCtrl);
		var zoomCtrl = new BMapGL.ZoomControl(); // 添加缩放控件
		map.addControl(zoomCtrl);
		var cityCtrl = new BMapGL.CityListControl(); // 添加城市列表控件
		map.addControl(cityCtrl);		
		// 信息窗口
		var opts = {
		    width: 250,     // 信息窗口宽度
		    height: 100,    // 信息窗口高度
		    title: "Hello"  // 信息窗口标题
		}
		// var infoWindow = new BMapGL.InfoWindow("World", opts);  // 创建信息窗口对象
		var infoWindow = new BMapGL.InfoWindow(`<p>1111</p>`, opts);  // 创建信息窗口对象
		map.openInfoWindow(infoWindow, map.getCenter());        // 打开信息窗口

在这里插入图片描述

搜索地址

引入jQuery

	<script src="jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>

html

<input type="" name="" id="" value="" onchange="search(this)" />
		<div id="container"></div>

js

	var map = new BMapGL.Map("container");
		var point = new BMapGL.Point(113.665, 34.784);
		map.centerAndZoom(point, 15);
		map.enableScrollWheelZoom(true);
		var scaleCtrl = new BMapGL.ScaleControl(); // 添加比例尺控件
		map.addControl(scaleCtrl);
		var zoomCtrl = new BMapGL.ZoomControl(); // 添加缩放控件
		map.addControl(zoomCtrl);
		var cityCtrl = new BMapGL.CityListControl(); // 添加城市列表控件
		map.addControl(cityCtrl);

		//创建点
		var marker = new BMapGL.Marker(point);
		//添加标记
		map.addOverlay(marker);
		//创建一个本地搜索
		var local = new BMapGL.LocalSearch(map, {
			renderOptions: {
				map: map
			}
		})

		function search(e) {
			// 表单值发生变化搜索
			local.search(e.value)
		}

在这里插入图片描述

在vue中使用

在src/public/index.js中引入

<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=ATEscfNlTW0xjpNZfolBYVhGmuIlVxpd"></script>
<template>
    <div>
        <h1>百度地图</h1>
        <input type="text" v-model.lazy="keyword">
        <div id="map" ref="map"></div>
    </div>
</template>

<script>
export default {
    data() {
        return {
            map: null,
            point: null,
            local: null,
            marker: null,
            keyword: '',
        }
    },
    mounted() {
        this.map = new window.BMapGL.Map(this.$refs.map);
        this.point = new window.BMapGL.Point(116.404, 39.915);
        this.map.centerAndZoom(this.point, 15);
        this.map.enableScrollWheelZoom(true);
        this.marker = new window.BMapGL.Marker(this.point);
        this.map.addOverlay(this.marker);
        this.local = new window.BMapGL.LocalSearch(this.map, {
            renderOptions: { map: this.map }
        });
    },
    watch: {
        keyword: {
            handler() {
                if (this.keyword === '') {
                    this.local.clearResults();
                    this.map.centerAndZoom(this.point, 15);
                } else {
                    this.local.search(this.keyword);
                }
            }
        }
    }
}
</script>

<style>
#map {
    width: 100%;
    height: 80vh;
}
</style>

百度地图开发平台地址:https://lbsyun.baidu.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值