正逆地址解析
根据地理位置查询经纬度坐标
//创建地址解析器实例
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