GPS经纬度坐标偏移问题。这个是由于中国要求对经纬度进行加密导致的,所以百度和Google的地图上都存在这个问题,即使用手持设备或者导航设备获取到的经纬度在地图上定位发现并不是对应的位置,而存在很大的偏移。
无偏移精准定位
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf8" http-equiv="Content-Type" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
<meta content="定位" name="description" />
<meta content="telephone=no" name="format-detection" />
<link href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">
<script src="http://apps.bdimg.com/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/MapWrapper/1.2/src/MapWrapper.min.js"></script>
<style type="text/css">
*{margin:0px;padding:0px;}
html, body {height: 100%;}
body, button, input, select, textarea, p, div {font: 16px/18px Verdana, Helvetica, Arial, sans-serif;}
p{ width:603px; padding-top:3px;overflow:hidden;}
.btn{width:142px;}
#container{width:100%;height:70%;}
.btn-info{ width:96%;margin:5px 2%;}
</style>
</head>
<script type="text/javascript">
var init = function() {
var map = new BMap.Map("container");
//var map = new BMap.Map("container", {mapType:BMAP_HYBRID_MAP});//卫星地图
map.addControl(new BMap.MapTypeControl({mapTypes: [BMAP_NORMAL_MAP,BMAP_HYBRID_MAP]}));
map.centerAndZoom(new BMap.Point(116.404, 39.915), 10);
map.addControl(new BMap.NavigationControl());
map.enableScrollWheelZoom();
var mapWforGPS = new BMapLib.MapWrapper(map, BMapLib.COORD_TYPE_GPS);
$("#ck").click(function(){
map.clearOverlays();
var p=new BMap.Point(a,b);//a,b是要显示位置的经纬度
var marker = new BMap.Marker(p); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
mapWforGPS.addOverlay(marker);
map.centerAndZoom(marker.getPosition(), map.getZoom());
});
document.getElementById('container').setAttribute("height",document.documentElement.clientHeight-130);
var tim = setInterval(function() {
var zoomnow=map.getZoom();
if (zoomnow>14)
{
//map.setzoom(16);
clearInterval(tim);
}
map.zoomTo((map.getZoom() + 1) % 17);
}, 2000);
}
</script>
<body οnlοad="init()">
<div id="container"></div>
<div class="row " style="overflow:scroll;overflow-x:hidden;overflow-y:hidden;margin:10px 0 0 0;">
<div class="col-xs-12 ">
<button id="ck" class="btn btn-info">查看地图</button>
</div>
</div>
</body>
</html>