百度地图显示历史轨迹时经纬度的处理方法

来源:互联网 发布:win10 php 编辑:程序博客网 时间:2024/06/11 09:47

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">后台实现将gps</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">经纬度转换为百度地图经纬度,也可以在前台实现。</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在后台实现的代码:#我使用的Python+django</span>

##这里必须要注意 坐标转换服务每日请求次数上限为10万次,每次最多支持100个坐标点的转换,若需更高配额,请申请开发者认证以获取更高配额和更及时技术支持。

def baidu(s_list):    b = ';'.join(s_list)    print b    url="http://api.map.baidu.com/geoconv/v1/?coords="+str(b)+"&from=1&to=5&ak=你的秘钥&output=json"    fd=urllib2.urlopen(url)    data=fd.read()    a=simplejson.loads(data,encoding="utf-8")    list1=[]    list2=[]    list=[list1,list2]    for obj in a["result"]:        list1.append(obj['x'])        list2.append(obj['y'])    return list

在前台实现的代码:

注意先引入百度地图相关的API文件

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的秘钥"></script><script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>

translateCallback = function (point){var marker = new BMap.Marker(point);arr.push(new BMap.Point(point.lng, point.lat));for(var i = 0; i < msg.hislist.length; i++){var marker=new BMap.Marker(new BMap.Point(point.lng, point.lat),{icon:new BMap.Icon("/static/image/car"+parseInt((msg.hislist[i].GPS_DIRECTION+22.5)/45)%8+".png",new BMap.Size(25,25))});var infoWindow = new BMap.InfoWindow("<font size='2' color='#0066FF'>定位位置:</font> "+"<font size='2'>"+msg.hislist[i].address+"</font>"+"<hr style='color:#0066FF'><font size='2' color='#0066FF'>定位时间:</font> "+"<font size='2'>"+msg.hislist[i].GPS_UTC+"</font>"+"<hr style='color:#0066FF'><font size='2' color='#0066FF'>速度:</font> "+"<font size='2'>"+msg.hislist[i].GPS_SPEED+"</font>"+"<font size='2'>公里/小时</font><hr style='color:#0066FF'>");marker.infoWindow=infoWindow;marker.addEventListener("click",function(e){this.openInfoWindow(e.target.infoWindow)});maplet.addOverlay(marker);}var label = new BMap.Label("我是百度标注哦",{offset:new BMap.Size(20,-10)});marker.setLabel(label); //添加百度labelmaplet.setCenter(point);//maplet.centerAndZoom(point), zoom);//alert("转化为百度坐标为:"+point.lng + "," + point.lat);                                  };var arr = new Array();var arrpoints = new Array();for (var i = 0; i < msg.hislist.length; i++) {arrpoints.push({'lng':msg.hislist[i].GPS_LONG,'lat':msg.hislist[i].GPS_LAT});} for (var i = 0; i < arrpoints.length; i++) {BMap.Convertor.translate((arrpoints[i],0,translateCallback));}

0 0
原创粉丝点击