<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html, #allmap { width: 100%; height: 100%; overflow: hidden; margin: 0; font-family: "微软雅黑"; } </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=EVi8PXiYpKBGvBr7tgGMzcbdwzWWNf2o"></script> <title>野火GPS地图</title> </head> <body> <div id="allmap"></div> </body> </html> <script type="text/javascript"> try { // 百度地图API功能 var map = new BMap.Map("allmap", {mapType:BMAP_SATELLITE_MAP}); // 创建Map实例 //添加拖拽和缩放功能 map.enableScrollWheelZoom(true); map.enableDragging(); //添加控件和比例尺 var top_right_control = new BMap.ScaleControl({ anchor: BMAP_ANCHOR_BOTTOM_LEFT });// 左下角,添加比例尺 var top_right_navigation = new BMap.NavigationControl({ anchor: BMAP_ANCHOR_BOTTOM_LEFT }); //左下角,添加默认缩放平移控件 map.addControl(top_right_control); map.addControl(top_right_navigation); //添加地图类型 var mapType1 = new BMap.MapTypeControl({ mapTypes: [BMAP_HYBRID_MAP, BMAP_NORMAL_MAP] }); var mapType2 = new BMap.MapTypeControl({ anchor: BMAP_ANCHOR_TOP_LEFT }); //添加地图类型和缩略图 map.addControl(mapType1); //2D图,卫星图 map.addControl(mapType2); //左上角,默认地图控件 var drawtrail = 0; var grotation = 0; //创建点 //map.clearOverlays(); var point = new BMap.Point(117.355, 39.066); var markerCur = new BMap.Marker(point); var markerObj = new BMap.Marker(point); var havepointlast = 0; var pointlast = new BMap.Point(116,39); var pointobj = new BMap.Point(116,39); var bobjset = 0; var gtracelist = []; var gtraceraw = []; var tracenow = 0; var tracenum = 0; map.centerAndZoom(point, 18); var convertor = new BMap.Convertor(); var polylineTrace; /* var polylineTrace =new BMap.Polyline(gtracelist, { enableEditing: false,//是否启用线编辑,默认为false enableClicking: false,//是否响应点击事件,默认为true strokeWeight:'4',//折线的宽度,以像素为单位 strokeOpacity: 0.8,//折线的透明度,取值范围0 - 1 strokeColor:"red" //折线颜色 });*/ //var marker = new BMap.Marker(point); // 创建标注 //map.addOverlay(marker); // 将标注添加到地图中 //根据IP定位城市 function myFun(result) { var cityName = result.name; map.setCenter(cityName); } var myCity = new BMap.LocalCity(); myCity.get(myFun); var icon = new BMap.Icon('car.png',new BMap.Size(15,30)); icon.imageSize = new BMap.Size(15,30); icon.anchor = new BMap.Size(8,15); //showalert(testmsg); //对传入的经纬度进行标注:纬度,经度 // var Latt = 116.404; // var Lott = 39.915; // theLocation(Latt, Lott); // testAlert(); function SetDrawTrail(x) { if(x == 1)drawtrail = 1; else drawtrail = 0; } function clear() { gtracelist = []; } // 用经纬度设置地图中心点 function objLocation(Longitude,Latitude) { var gpsPoint = new BMap.Point(Longitude, Latitude); var pointArr = []; pointArr.push(gpsPoint); convertor.translate(pointArr, 1, 5, translateCallbackobj) //gps坐标纠偏 // BMap.Convertor.translate(gpsPoint, 0, translateCallbackobj); //真实经纬度转成百度坐标 } // 用经纬度设置地图中心点 function theLocation(Longitude,Latitude,rotation) { grotation = rotation; var gpsPoint = new BMap.Point(Longitude, Latitude); //gps坐标纠偏 var pointArr = []; pointArr.push(gpsPoint); convertor.translate(pointArr, 1, 5, translateCallback) //convertor.translate(gpsPoint, 0, translateCallback); //真实经纬度转成百度坐标 // BMap.Convertor.translate(gpsPoint, 0, translateCallback); //真实经纬度转成百度坐标 //map.clearOverlays(); //var new_point = new BMap.Point(Longitude,Latitude ); //var marker = new BMap.Marker(new_point); // 创建标注 //map.addOverlay(marker); // 将标注添加到地图中 //map.panTo(new_point); //marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 } function settrace(numlist,num2list) //仅把qt传来的数组转换成可用的list { //alert(numlist); var num_list,num2_list; //以下为格式转换,分割成可用的数组 num_list = numlist.substring(1,numlist.length-1); num2_list = num2list.substring(1,num2list.length-1); num_list = num_list.split(","); num2_list = num2_list.split(","); //alert("the num_list is: "+num_list[0]+" "+num_list[1]); gtraceraw = []; gtracelist = []; for(i=0;i<num_list.length;i++) { point= new BMap.Point(num_list[i],num2_list[i]); gtraceraw.push(point); } tracenum = num_list.length; tracenow = 0; setTimeout("converttrace()", 30);// 调用画轨迹的函数 } function converttrace() { var tracelist = []; //为轨迹做准备,把所有的点扔里面,但不对每个点标注 var index = 0; for(i=tracenow;i<tracenum;i++) { tracelist.push(gtraceraw[i]); index++; if(index>=10)break; } if(index>0) { convertor.translate(tracelist, 1,5,translateCallbacktrace); //真实经纬度转成百度坐标 } } translateCallbacktrace = function (data){ if(data.status == 0) { for (var i = 0; i < data.points.length; i++) { gtracelist.push(data.points[i]); } tracenow = tracenow + data.points.length; } map.removeOverlay(polylineTrace); polylineTrace =new BMap.Polyline(gtracelist, { enableEditing: false,//是否启用线编辑,默认为false enableClicking: false,//是否响应点击事件,默认为true strokeWeight:'4',//折线的宽度,以像素为单位 strokeOpacity: 0.8,//折线的透明度,取值范围0 - 1 strokeColor:"red" //折线颜色 }); map.addOverlay(polylineTrace); //增加折线 setTimeout("converttrace()", 250);// 调用画轨迹的函数 } // 用经纬度设置地图中心点 function testAlert(msg) { var str = new String; str = msg.toString() // str = "test" alert(str); } function enableZoomDrag() { //添加拖拽和缩放功能 map.enableScrollWheelZoom(true); map.enableDragging(); } //坐标转换完之后的回调函数 translateCallbackmap = function (point) { gtracelist.push(point); // map.setCenter(point); // marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 } //坐标转换完之后的回调函数 translateCallbacktr = function (point) { gtracelist.push(point); // map.setCenter(point); // marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 } //坐标转换完之后的回调函数 translateCallbackobj = function (data) { if(data.status === 0) { var point = data.points[0]; pointobj = point; bobjset = 1; // map.clearOverlays(); map.removeOverlay(markerObj); markerObj = new BMap.Marker(point); map.addOverlay(markerObj); } // map.setCenter(point); // marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 } //坐标转换完之后的回调函数 translateCallback = function (data) { if(data.status === 0) { var point = data.points[0] map.removeOverlay(markerCur); markerCur = new BMap.Marker(point); if(havepointlast == 1) { if(drawtrail == 1) { var line = new BMap.Polyline([pointlast, point], {strokeColor: "green", strokeWeight: 1, strokeOpacity: 1}); map.addOverlay(line); line.disableMassClear(); } } pointlast = point; havepointlast = 1; markerCur.setOffset(-30,-30); markerCur.setIcon(icon); markerCur.setShadow(icon) markerCur.setRotation(grotation); map.addOverlay(markerCur); map.setCenter(point); } // return; // map.clearOverlays(); /* if(bobjset == 1) { map.removeOverlay(markerObj); markerObj = new BMap.Marker(pointobj); map.addOverlay(markerObj); } */ // marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 } } catch (e) { //alert("地图加载失败,请检查网络!"); } </script>