项目-// 百度地图API功能

百度API官网链接: linkhttps://lbsyun.baidu.com/

一引入百度API密钥

<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
//一般将密钥放在juqery后面

百度API密钥的两个版本

第一种

<script type="text/javascript" src="//api.map.baidu.com/api?v=1.0&ak=你的密钥"></script>
<script type="text/javascript">
	var map = new BMapGL.Map("container");          // 创建地图实例 
	var point = new BMapGL.Point(116.404, 39.915);  // 创建点坐标 
	map.centerAndZoom(point, 15);//以point坐标为中心
</script>    

第二种

<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
<script type="text/javascript">
	var map = new BMap.Map("allmap");    // 创建Map实例
	var point = new BMap.Point(108.840014,34.217209);// 创建点坐标 
	map.centerAndZoom(point, 14)//以point坐标为中心
</script> 

第一种和第二种引入版本不一样,创建map对象有点区别,其余区别不大这里注重说一下第二种的

初始化地图

	var map = new BMap.Map("allmap");    // 创建Map实例
	var point = new BMap.Point(108.840014,34.217209);// 创建点坐标
	map.centerAndZoom(point, 14);//设置地图以point为中心 地图等级为14
	map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 

创建标注

	map.removeOverlay(marker2);//删除之前添加的标注 之前没有添加过就不用删除
	var marker2 = new BMap.Marker(point);  // 创建标注
	map.addOverlay(marker2);//添加标注

添加删除标注

	map.removeOverlay(marker2);//删除之前添加的标注 

创建比例尺控件

	var scaleCtrl = new BMap.ScaleControl();  // 创建比例尺控件
	map.addControl(scaleCtrl);//添加比例尺控件 一般在地图下方

添加地图点击事件

	map.addEventListener("click", showInfo);
	function showInfo(e){
		map.removeOverlay(marker2);//删除之前添加的标注
		/* e.point.lng 经度
		 * e.point.lat 纬度
		 */
		marker2 = new BMap.Marker(new BMap.Point(e.point.lng,e.point.lat));
		map.addOverlay(marker2);
	} 

创建地理编码实例 --地址解析

指定经纬度解析

var geoc = new BMap.Geocoder();// 创建地理编码实例  --地址解析 指定经纬度解析
	//添加地图点击事件
	map.addEventListener("click", function(e){
		var pt = e.point;//设置坐标
		var aa;
		geoc.getLocation(pt, function(rs){
			var addComp = rs.addressComponents;//获取基本位置
			/*看单词意思都知道意思了
			 * city:城市
			 * district 地区
			 * street 街道
			 * streetNumber 门牌号
			 * province 省份
			 */
			aa = addComp.city+ addComp.district+ addComp.street+ addComp.streetNumber;
			document.getElementById("address").value = aa;
		});
	});

指定地址解析

//创建点击函数
function codeAddress() {
		map.removeOverlay(marker2);//删除之前添加的标注
		geoc.getPoint(document.getElementById("address").value, function(point){
			//document.getElementById("address").value 将这个转化的经纬度
				if (point) {
					map.centerAndZoom(point, 16);
					marker2 = new BMap.Marker(point);
					map.addOverlay(marker2);
					document.getElementById("lng").value=point.lng;
					document.getElementById("lat").value=point.lat;
				}
			},
			"一般写要搜索的市区,不填写的话有时候会搜索不准确");
		}

源码

	<script type="text/javascript" src="../../font/js/jquery-3.6.0.js" ></script>
<body>
	<div style="width: 500px;height: 500px;" id="allmap"></div>
	<input name="lng" id="lng" type="text"/>
	<input name="lat" id="lat" type="text"/>
	<input name="address" id="address" type="text"/>
	<button type="button" onclick="codeAddress()">搜索</button>
</body>
 <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=你的秘钥"></script>
<script type="text/javascript">
	var map = new BMap.Map("allmap");    // 创建Map实例
	var point = new BMap.Point(108.840014,34.217209);//设置point坐标
	map.centerAndZoom(point, 14);//设置地图以point为中心 地图等级为14
	var marker2 = new BMap.Marker(point);  // 创建标注
	map.addOverlay(marker2);//添加标注
	var scaleCtrl = new BMap.ScaleControl();  // 创建比例尺控件
	map.addControl(scaleCtrl);//添加比例尺控件一般在地图下方
	//添加地图点击事件
	map.addEventListener("click", showInfo);
	function showInfo(e){
		map.removeOverlay(marker2);//删除之前添加的标注
		/* e.point.lng 经度
		 * e.point.lat 纬度
		 */
		marker2 = new BMap.Marker(new BMap.Point(e.point.lng,e.point.lat));
		map.addOverlay(marker2);
	} 
	var geoc = new BMap.Geocoder();// 创建地理编码实例  --地址解析 指定经纬度解析
	//添加地图点击事件
	map.addEventListener("click", function(e){
		var pt = e.point;
		var aa;
		geoc.getLocation(pt, function(rs){
			var addComp = rs.addressComponents;//获取基本位置
			/*看单词意思都知道意思了
			 * city:城市
			 * district 地区
			 * street 街道
			 * streetNumber 门牌号
			 * province 省份
			 */
			aa = addComp.city+ addComp.district+ addComp.street+ addComp.streetNumber;
			document.getElementById("address").value = aa;
		});
	});
	
	function codeAddress() {
		map.removeOverlay(marker2);//删除之前添加的标注
		geoc.getPoint(document.getElementById("address").value, function(point){
			//document.getElementById("address").value 将这个转化的经纬度
				if (point) {
					map.centerAndZoom(point, 16);
					marker2 = new BMap.Marker(point);
					map.addOverlay(marker2);
					document.getElementById("lng").value=point.lng;
					document.getElementById("lat").value=point.lat;
				}
			},
			"");
		}
           
</script>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Too_Soup_Soup

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值