有时,在我们查找商圈时,或者选中商圈时,需要把 商圈定位到地图的中心点,方便查看:
// 定位商圈,使商圈定位到地图正中
handleSelect (val) {
// 查找符合条件的商圈
let over = overlays.filter(overlay => {
return overlay.tradeName === val.tradeName
})[0]
let lat // 经度
let lng // 纬度
// 如果当前商圈为多边形商圈
if (over.so.length !== 0) {
lat = over.so[0].lat
lng = over.so[0].lng
let latarr = over.so.map(val => {
return val.lat
})
let lngarr = over.so.map(val => {
return val.lng
})
let latMax = Math.max.apply(this, latarr) // 经度最大值
let latMin = Math.min.apply(this, latarr) // 经度最小值
let lngMax = Math.max.apply(this, lngarr) // 纬度最大值
let lngMin = Math.min.apply(this, lngarr) // 纬度最小值
lat = ((latMax - latMin) / 2) + latMin
lng = ((lngMax - lngMin) / 2) + lngMin
} else if (over.hasOwnProperty('point') && over.point.length !== 0) {
// 如果当前商圈为圆形或方形商圈
lat = over.point.lat
lng = over.point.lng
}
// 设置地图中心点
this.map.setCenter(new BMap.Point(lng, lat))
}