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

<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));
			}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值