您的位置:首页 > 其它

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

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));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: