HTML5定位、百度地图
不知道怎么回事,用百度地图的定位自己用发现定位不准,又用了HTML5的定位,发现定位也不是太理想,暂时懒得改了。
HTML5 Geolocation API 用于获得用户的地理位置。
<script type="text/javascript">
// 百度地图API功能
var map = new BMap.Map("allmap");
//map.centerAndZoom("北京",12);
navigator.geolocation.getCurrentPosition( // 该函数有如下三个参数
function(pos){ // 如果成果则执行该回调函数
var point = new BMap.Point(pos.coords.longitude,pos.coords.latitude);
alert(pos.coords.accuracy);
var myGeo = new BMap.Geocoder();
// 根据坐标得到地址描述
myGeo.getLocation(point, function(result) {
if (result) {
city=result.address;
var addComp = result.addressComponents;
//alert(addComp.province + "省, " + addComp.city + "市," + addComp.district + "县, " + addComp.street + "街道, " + addComp.streetNumber);
$("#dingwei").text("您的位置:"+addComp.city + addComp.district + addComp.street + addComp.streetNumber);
//将获取的信息传至服务器
var date={"PROV":addComp.province,"CITY":addComp.city,"COUNTY":addComp.district};
jg=addComp.district;
$.post(currentUrl+"EmlpoyeeAction/findEmlpoyee",date,function(json){
fwwd(json);
});
}else{
$("#dingwei").text("无法获取您的位置信息");
//map.centerAndZoom(new BMap.Point(116.331398,39.897445),13);
$("allmap").append("<img src=images/ems0.jpg/>");
}
});
}, function(err){ // 如果失败则执行该回调函数
$("#dingwei").text("无法获取您的位置信息");
$("#allmap").append("<img src='images/ems0.jpg' width=100% height=100%/>");//定位失败默认显示此图片
}, { // 附带参数
enableHighAccuracy: false, // 提高精度(耗费资源)
timeout: 6000, // 超过timeout则调用失败的回调函数
maximumAge: 1000 // 获取到的地理信息的有效期,超过有效期则重新获取一次位置信息
}
);
//位置坐标:json_data
function fwwd(data_info){
var pointArray = new Array();
//chengshi={"PROV":addComp.province,"CITY":addComp.city,"COUNTY":addComp.district};
//var zoom=chengshi.COUNTY!=null&&chengshi.COUNTY!=""?chengshi.COUNTY :chengshi.PROV;
if(data_info!=""&&data_info!=null){
for(var i=0;i<data_info.length;i++){
var marker = new BMap.Marker(new BMap.Point(data_info[i][0],data_info[i][1])); // 创建标注
// var image="<img src='images/25.png' width='60' height='60'>";
//var content = data_info[i][2];
var image=data_info[i].length;
if(image!=7){
image="<img src='images/25.png' width='60' height='60'>";
}else{
image="<img width='60' height='60' src='"+currentUrl+"EmlpoyeeAction/findEmployeeImage?sid="+data_info[i][6]+"'>";
}
var content = "<div style='text-align:center' >"+image+"</div>"
+ "<div>联系人:" + data_info[i][2] + "</div>"
+ "<div>电话:" + data_info[i][3] + "</div>"
+ "<div>时间:08:00--17:00</div>"
+ "<div>地址:" + data_info[i][4] + "</div>"
+ "<div style='text-align:center'><a href='tel:" + data_info[i][3] + "'><img src='images/23.png' width='100' height='45' ></a>    <a href='sms:" + data_info[i][3] + "'><img src='images/24.png' width='100' height='45' ></a></div>";
map.addOverlay(marker);
addClickHandler(content,marker);
pointArray[i] = new BMap.Point(data_info[i][0], data_info[i][1]);
}
$("#chaxujg").text("附近快递员:共"+data_info.length+"个");
map.setViewport(pointArray);
}else{
$("#chaxujg").text("附近快递员:共0个");
map.centerAndZoom(jg,11);
}
}
$('#touming').show();
function addClickHandler(content,marker){
marker.addEventListener("click",function(e){
openInfo(content,e)}
);
}
//定义窗体格式
var opts = {
width : 260, // 信息窗口宽度
height: 220, // 信息窗口高度
//title : "信息窗口" , // 信息窗口标题
enableMessage:false//设置不允许信息窗发送短息
};
$('#touming').show();
function addClickHandler(content,marker){
marker.addEventListener("click",function(e){
openInfo(content,e)}
);
}
function openInfo(content,e){
var p = e.target;
var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
var infoWindow = new BMap.InfoWindow(content,opts); // 创建信息窗口对象
map.openInfoWindow(infoWindow,point); //开启信息窗口
}
</script>