百度地图使用

百度地图使用

百度地图(Baidu Map)是为用户提供包括智能路线规划、智能精准导航(驾车、步行、骑行)、实时路况、实时公交等出行相关服务的平台。

初始化

  1. 注册开发者账号
  2. 导入百度地图script
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=密钥">`
  1. 准备存放地图div
div id="container"></div>
  1. 创建地图
var map = new BMap.Map("container");
  1. 添加中心点和缩放
var point = new BMap.Point(113.665,34.784);
   	// 指定地图的中心和缩放层次
map.centerAndZoom(point,16);

地图控制

// 添加地图的控制
	map.enableScrollWheelZoom(true); //滚轮缩放
	map.addControl(new BMap.NavigationControl()); //地图导航工具
	map.addControl(new BMap.ScaleControl());    //缩放控制
	map.addControl(new BMap.OverviewMapControl());    //是一个可折叠的缩略地图
	map.addControl(new BMap.MapTypeControl()); 	//地图类型

覆盖型

//点的创建
var point = new BMap.Point(经度,纬度);
var marker = new BMap.Marker(point);	
//点的显示
map.addOverlay(marker)
  1. 标注(图标)
//创建点
let icon = new BMap.Icon(
	"./assets/start_point.png",//图片的地址
	new BMap.Size(36,42),//显示图片的大小
	{imageSize:new BMap.Size(36,42),anchor: new BMap.Size(18,42)},
	// 把原始图片缩小为36,42,偏移底部中心 (默认是左上角)
	)
	// 创建一个标注点
	var marker = new BMap.Marker(point,{icon:icon});		
	// 把标注点添加到地图
	 map.addOverlay(marker);
// 添加一个圆圈
		var circle = new BMap.Circle(
			point, //源泉中心点
			500, //半径
			{
				strokeColor : "red" ,
				strokeWeight : 2,
				fillOpacity : 0.4
			}
		)
		// 添加圆圈到地图中
		map.addOverlay(circle);
  1. 多边形
// 添加多边形
		var polygon = new BMap.Polygon([
			new BMap.Point(经度,纬度),
			new BMap.Point(经度,纬度),
			//可以使之形成一个闭环
		],
		{
			strokeColor : "orange" , //闭环边缘的颜色
			strokeWeight : 2, //线条的粗细
			fillOpacity : 0.3, //填充的透明度
			fillColor : "blue" //填充的颜色
		}
		)
		// 添加进地图
		map.addOverlay(polygon);

事件

// 添加地图事件
		map.addEventListener("click",e => {
			console.log(e.point,e);
		})

信息窗口

// 添加信息窗口 (文字信息)
			// 创建一个标注点
			var marker = new BMap.Marker(point);		
			// 把标注点添加到地图
			map.addOverlay(marker);
		 var info = new BMap.InfoWindow(
			`<div>
				<p>前端深似海</p>
				<p>快乐永常在</p>
			</div>`,
			{title : "前端大本营"}
		 )
		 marker.addEventListener("click" ,() => {
			 // 单击弹出窗口
			 map.openInfoWindow(info,point)
		 })
		 // 显示
		 map.openInfoWindow(info,point);

搜索

// 添加搜索功能
		 let local = new BMap.LocalSearch(map,{
		 	renderOptions : {map : map}
		 })
		 // 根据文本框传过来的内容搜索
		 function blurHd(v) {
			 local.search(v);
		 }

导航

// 路径规划,定义一个起始点,用户鼠标单击地图产生一个终点,让两点之间产生驾车,行走,公交路线规划
//起始点可以是初始化的时候的点
		// 定义一个终点
		let end = null;
		// 鼠标点击
		map.addEventListener("click" , e => {
			// 创建一个结束的点,经纬度
			end = new BMap.Point(e.point.lng,e.point.lat);
			// 
			var marker2 = new BMap.Marker(end);
			map.addOverlay(marker2);
			
			// 搜索开车的路径
			driving.search(point,end);
			//driving.search(起始点,结束点);
			
		})
		
		// 假如是开车时 的行车路径
		var driving = new BMap.DrivingRoute(map,{
			renderOptions : {
				map : map,
				autoViewport : true
			},
			
		});

API

通过给请求 api 服务器地址,返回想对应的数据

//获取城市地址的API
http://api.map.baidus.com/location/ip?ak=你的密钥&coor=bd09ll&output=jsonp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值