前端定位实现
首先,需要引入百度api
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2&ak=密匙"></script>
在vue项目中需要把api改为getscript
<script type="text/javascript" src="http://api.map.baidu.com/getscript?v=1.2&ak=密匙"></script>
h5定位
function getlocal(getlocalSuccess) {
//首先设置默认城市
var defCity = {
id: '000001',
city: '北京',
province: "",
district: ""
};
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
//获取地理位置成功时所做的处理
var lat = position.coords.latitude;//估计精度
var lon = position.coords.longitude;//估计纬度
var point = new BMap.Point(lon, lat); // 创建点坐标
var gc = new BMap.Geocoder();
gc.getLocation(point, function (rs) {
var addComp = rs.addressComponents;
var curCity = {
id: '',
city: addComp.city,
province: addComp.province,
district: addComp.district
}
if (getlocalSuccess != undefined) {
getlocalSuccess(curCity);
}
})
},
function (error) {
//获取地理位置失败时所做的处理
switch (error.code) {
case 1:
alert("位置服务被拒绝。");
break;
case 2:
alert("暂时获取不到位置信息。");
break;
case 3:
alert("获取位置信息超时。");
break;
default:
alert("未知错误。");
break;
}
}
)
} else {
if (getlocalSuccess != undefined) {
getlocalSuccess(defCity);
}
}
}
百度定位通过ip地址定位
var myCity = new BMap.LocalCity();
myCity.get(relocation);
//初始化定位
function relocation(result) {
that.address = result.name;
}