您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
百度地图完美定位
发布时间:2016-11-20 13:26:58编辑:雪饮阅读()
需要一个需要定位的项目,项目中用了百度地图,但有一处需要精确定位,百度地图定位不是太准。于是我用html5的gps定位结合百度地图的经纬度转换为百度的经纬度。
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=s9vYSVwPjtPFv00vuxKzoNxD"></script>
<script type="text/javascript">
var map;
var ycjd="";
var ycwd="";
function showPosition(position)
{
alert("gps经度:"+position.coords.longitude);
alert("gps纬度:"+position.coords.latitude);
ycjd=position.coords.longitude;
ycwd=position.coords.latitude;
if(ycjd!="" && ycwd!=""){
var ggPoint = new BMap.Point(ycjd,ycwd);
//坐标转换完之后的回调函数
translateCallback = function (data){
if(data.status === 0) {
console.log(data.points[0]);
alert("百度经度:"+data.points[0].lng);
alert("百度纬度:"+data.points[0].lat);
document.getElementById("jd").value=data.points[0].lng;
document.getElementById("wd").value=data.points[0].lat;
map.setCenter(data.points[0]);
var marker = new BMap.Marker(data.points[0]);
map.addOverlay(marker);
}
};
setTimeout(function(){
var convertor = new BMap.Convertor();
var pointArr = [];
pointArr.push(ggPoint);
convertor.translate(pointArr, 1, 5, translateCallback)
}, 1000);
}
}
function InitMap(){
map=new BMap.Map("container");
var point=new BMap.Point(116.331398,39.897445);
map.centerAndZoom(point,18);
map.enableScrollWheelZoom();
map.addControl(new BMap.NavigationControl());//添加坐标转换类
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition);
}
else{
alert("您的手机不支持gps定位");
}
}
function hqzb(){
var geocoder=new BMap.Geocoder();
var xx=document.getElementById("street").value;
//正向地址解析(给定地址名称解析地理位置)
if(xx==""){
zddw();
}
else{
geocoder.getPoint(xx,function(point){
if(point!=null){
console.log(point);
map.setCenter(point);
var marker=new BMap.Marker(point);
map.addOverlay(marker);
alert("经度:"+point.lng);
alert("纬度:"+point.lat);
document.getElementById("jd").value=point.lng;
document.getElementById("wd").value=point.lat;
}
else{
zddw();
}
},"西安市");
}
return true;
//正向解析完成
}
function zddw(){
var positionOptions={
enableHighAccuracy:true,
timeout:3000,
maximumAge:0
};
var geolocation=new BMap.Geolocation();
geolocation.getCurrentPosition(function(geolocationResult){
if(geolocationResult!=null){
var point=geolocationResult.point;
document.getElementById("jd").value=point.lng;
document.getElementById("wd").value=point.lat;
//alert("定位的结果是:"+point);
//alert("定位的精确度是:"+geolocationResult.accuracy+"米");
var marker=new BMap.Marker(point);
map.addOverlay(marker);
map.setCenter(point);
}
},positionOptions);
}
</script>
关键字词:百度地图,gps定位,经纬度转换
相关文章
-
无相关信息