百度地图 API定位:
博主发现 geolocation 定位很不精确 于是通过API找到以下解决办法:
//首先 获取到 bMap 模块(这个为apiClound的模块) 获取到定位信息 然后设置精确度 。 再根据ip ,新建地址解析器,获取到精确的地址街道信息:
api.require('bMap').getLocation({
accuracy: '5m',
autoStop: true,
filter: 1
}, function(ret, err) {
if(ret.status){
var markerMyPositionIcon = new bmap.Icon("../../../icon/userMarker.png", new bmap.Size(18,32));
var mk = new bmap.Marker(new bmap.Point(ret.lon,ret.lat),{icon:markerMyPositionIcon});
map.addOverlay(mk);
map.panTo(ret);
userInfo.longitude = ret.lon;
userInfo.latitude = ret.lat;
map.centerAndZoom(new bmap.Point(userInfo.longitude,userInfo.latitude),15); //定位到用户当前地点
//地址解析器: 解决 geolocation 定位不精确的问题
new BMap.Geocoder().getLocation(new bmap.Point(ret.lon,ret.lat),function (result,error) {
if(result){
document.getElementById("titleLocation").innerHTML = "中国" + result.address;
}
},{poiRadius:5,numPois:1});
}else {
alert("获取定位失败");
}
});