鼠标点击百度地图获取地址的详解

正逆地址解析
根据地理位置查询经纬度坐标

//创建地址解析器实例

var myGeo = new BMapGL.Geocoder();

// 将地址解析结果显示在地图上,并调整地图视野

myGeo.getPoint(地址字符串(重庆市红旗河沟), function(point){

if(point){

  //point就是经纬度点

}else{

   alert('您选择的地址没有解析到结果!');

}

},可选参数)//可选参数传入城市名称 如果不传则在全球范围内查找 传入城市名称只在这个城市内查找

在这里插入图片描述

 setTimeout(() => {
 this.$nextTick(() => {
	if(!!that.addPoint){
            var map = new BMapGL.Map("containerBox");
            map.clearOverlays();
            map.enableScrollWheelZoom(true);
            var that = this;
            map.centerAndZoom(
              new BMapGL.Point(
                that.addPoint.split(",")[0],
                that.addPoint.split(",")[1]
              ),
              12
            );
		}else{
            var map = new BMapGL.Map("containerBox");
            map.enableScrollWheelZoom(true);
            var that = this;
            //创建地址解析器实例
            var myGeo = new BMapGL.Geocoder();
            // 将地址解析结果显示在地图上,并调整地图视野
            myGeo.getPoint(
              that.searchCity,
              function (point) {
                if (point) {
                //初始化地图,并设置地图中心点
                  map.centerAndZoom(point, 16);
                   // 将标注添加到地图中 
                  map.addOverlay(
                  // 创建标注   
                    new BMapGL.Marker(point, {
                      title: that.address,
                    })
                  );
                } else {
                  alert("您选择的地址没有解析到结果!");
                }
              },
              that.searchCity
            );
            //创建地址解析器实例
            var geoc = new BMapGL.Geocoder();
            //监听标注事件
            map.addEventListener("click", function (e) {
            //清除所有的覆盖物
              map.clearOverlays();
           //拿到点击地图的【经纬度】
              var pt = e.latlng;
           //getLocation()方法对指定的坐标点进行反地址解析
              geoc.getLocation(pt, function (rs) {
                var addComp = rs.addressComponents;
                console.log(
                  addComp.province +
                    ", " +
                    addComp.city +
                    ", " +
                    addComp.district +
                    ", " +
                    addComp.street +
                    ", " +
                    addComp.streetNumber
                );
                that.searchCity = addComp.city;
                //设置中心点坐标和地图级别
                map.centerAndZoom(
                  new BMapGL.Point(e.latlng.lng, e.latlng.lat),
                  15
                );

                that.address =
                  addComp.city +
                  addComp.district +
                  addComp.street +
                  addComp.streetNumber;
              });
              console.log(
                "点击位置经纬度2:" + e.latlng.lng + "," + e.latlng.lat
              );
              that.addPoint = e.latlng.lng + "," + e.latlng.lat;
              // 创建点标记
              var marker1 = new BMapGL.Marker(
                new BMapGL.Point(e.latlng.lng, e.latlng.lat)
              );
              // 在地图上添加点标记
              map.addOverlay(marker1);
            });
            }
             })
 })

一些资料查找对应参考如下


map.centerAndZoom(point, 15);                    //初始化地图,并设置地图中心点
var marker = new BMap.Marker(point);        // 创建标注    
map.addOverlay(marker);                            // 将标注添加到地图中 

如下就是标注
在这里插入图片描述https://lbsyun.baidu.com/index.php?title=jspopular3.0/guide/mark

  map.addEventListener("click", function (e) {
  console.log(e)  //如下图
  })

地图点击事件属性打印
在这里插入图片描述
getLocation()方法 详情请点击
getLocation()方法对指定的坐标点进行反地址解析

var myGeo = new BMap.Geocoder();
//注:第二个参数为回调函数,它的参数是一个GeocoderResult对象;第三个参数options为可选参数,是LocationOptions类型的
myGeo.getLocation(point,function(obj){},options);
// 根据坐标得到地址描述   
var pt = e.latlng;
 geoc.getLocation(pt, function (rs) { //回调函数中的参数rs是一个GeocoderResult对象
        //GeocoderResult对象的addressComponents属性返回了一个结构化的地址描述
        console.log(rs,'rs')
 },

打印如上rs
在这里插入图片描述

map.enableScrollWheelZoom(true);                //开启鼠标滚轮缩放 

参考文档:https://blog.csdn.net/tel13259437538/article/details/79946158

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值