在开发中,我们经常会遇到定位不准确的问题,只有坐标类型一致的情况下,定位才会准确。
原谅我时间紧急,直接贴代码吧。
<!--creat by 198728 2015-6-17 -->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
#allmap{height:100%;width:100%;}
</style>
<script type="text/javascript">
function re(){
document.getElementById('pointV').value = '';
}
</script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=V6RjjChFXrifV2z41z0sYQEO"></script>
<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
<title>批量定位</title>
</head>
<body>
<div id="r-result"></div>
请输入坐标: <input type="text" id="pointV" />
<input type="button" onclick="re();" value="重新输入" />
<input type="button" onclick="locate();" value="定位" />
<div id="allmap" style="width:100%;height:90%">
</div>
<script type="text/javascript">
// 百度地图API功能
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
map.enableScrollWheelZoom();
var index =0;
var pointV = document.getElementById('pointV');
function locate(){
// 检测输入框是否为空
if (pointV.value.length==0 || pointV.value.length==0 )
{
alert("输入错误");
}else{
//符合要求的才可进行定位
//GPS坐标需要转换成百度坐标
var ponitArray = new Array();
ponitArray=pointV.value.split(",");
var gpsPoint = new BMap.Point(ponitArray[0],ponitArray[1]);
//坐标转换完之后的回调函数
translateCallback = function (point){
var marker = new BMap.Marker(point);
map.addOverlay(marker);
var label = new BMap.Label(pointV.value,{offset:new BMap.Size(20,-10)});
marker.setLabel(label); //添加百度label
map.panTo(point);
}
**BMap.Convertor.translate(gpsPoint,0,translateCallback);** //真实经纬度转成百度坐标
}
}
</script>
</body>
</html>