vue 中自動定位
<template>
<baidu-map class="map" :zoom="zoom" :center="center" @ready="handler">
<bm-geolocation
anchor="BMAP_ANCHOR_BOTTOM_RIGHT"
:showAddressBar="true"
:autoLocation="true"
></bm-geolocation>
</baidu-map>
</template>
//js代碼//--------------------------------------//
data() {
return {
center: { lng: 0, lat: 0 },
zoom:15//必須寫上,自己因為忘記寫一直無法自動定位
};
},
/*-------------------------地圖插件准備好后觸發事件---------------------------------------*/
handler({ BMap, map }) {
const that = this;
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
that.center.lng = r.longitude;
that.center.lat = r.latitude;
console.log(that.center);
} else {
alert("failed" + this.getStatus());
}
});
}
獲取用戶詳細地址
<script type="text/javascript">
var map = new BMap.Map("allmap");//創建Map實例,注意頁面中一定要有個id為allmp的div
var point = new BMap.Point(116.331398,39.897445);//創建定坐標
map.centerAndZoom(point,12);//// 初始化地圖,設置中心點坐標和地圖級別
var geolocation = new BMap.Geolocation();
var gc = new BMap.Geocoder();//創建地理編碼器
// 開啟SDK輔助定位
geolocation.enableSDKLocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
alert('您的位置:' + r.point.lng + ',' + r.point.lat);
var pt = r.point;
map.panTo(pt);//移動地圖中心點
//alert(r.point.lng);//X軸
//alert(r.point.lat);//Y軸
gc.getLocation(pt, function(rs){
var addComp = rs.addressComponents;
//alert(addComp.city);
alert(addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber);
});
}
else {
alert('failed'+this.getStatus());
}
});
</script>
四、通過瀏覽器定位獲取當前經緯度:
<script type="text/javascript">
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.331398,39.897445);
map.centerAndZoom(point,12);
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
alert('您的位置:'+r.point.lng+','+r.point.lat);
}
else {
alert('failed'+this.getStatus());
}
});
</script>
五、ip定位獲取當前所在城市
<script type="text/javasript">
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.331398,39.897445);
map.centerAndZoom(point,12);
function myFun(result){
var cityName = result.name;
map.setCenter(cityName);
alert("當前定位城市:"+cityName);
}
var myCity = new BMap.LocalCity();
myCity.get(myFun);
</script>