百度地图显示历史轨迹时经纬度的处理方法
2016-07-22 18:22
288 查看
<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); //添加百度label maplet.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)); }
相关文章推荐
- http://jingyan.baidu.com/article/db55b609aac41e4ba30a2f86.html
- Protobuf开发之java和c#通信
- HDU5728 PowMod
- Android PNG透明图片转JPG格式背景变黑
- Swagger UI 使用实例
- 使用FileUtils简化你的文件操作(commons-io.jar)
- 「JavaScript」四种跨域方式详解
- linux(三)-command(operate,network,authentication,resource)
- msyql慢查询日志配置
- Hust oj 1018 Cow Contest(floyd传递闭包)
- vagrant入门教程--添加box到本地仓库(4)
- Android中图片的处理(放大缩小,去色,转换格式,增加水印等)(转)
- vs2010快速定位到某一行快捷键
- 虚幻4 SCOPE_CYCLE_COUNTER
- 计算机网络之子网划分
- TAIGA 部署
- PHP的后期静态绑定
- Scrapy:Python的爬虫框架----原理介绍
- Android APP启动向导 一个非常简单的ViewPager向导:
- Java网络编程学习笔记(三)线程