bing地图车辆轨迹回放代码
1导入js
<script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript"src="http://dev.ditu.live.com/mapcontrol/mapcontrol.ashx?v=6.2"></script>
2代码
<script type="text/javascript">
var map = null;
var LA = new VELatLong(22.55,114.13);//初始化位置
var shape = null;
var pinPoint = null;
var pinPixel = null;
var longitudeOffset = 0;
var latitudeOffset = 0;
var Counter = 0;
var nAppconfig = 0;
var pointcount = 0;
var point_lon = 0;
var point_lat = 0;
var pointss = new Array();
var vehlon = 0;
var vehlat = 0;
var upstations=new Array();
var downstations=new Array();
/*var blineshow = 0;
var bstationshow = 0;*/
//获得地图
function GetMap()
{
map = new VEMap('myMap');
map.LoadMap(LA, 11, VEMapStyle.Road, false, VEMapMode.Mode2D, true, 1);//初始化加载地图
var layer = new VEShapeLayer();
map.AddShapeLayer(layer);
var layer2 = new VEShapeLayer();
map.AddShapeLayer(layer2);
var layer3 = new VEShapeLayer();
map.AddShapeLayer(layer3);
}
//初始化地图和上先行红线
function oninit()
{
GetMap();//获得加载地图
redLine();//红线轨迹
}
function ShowStation(parms)
{
var layer = map.GetShapeLayerByIndex(2);
var t = new Array();
t = parms.split(';');
for(var i=0;i<t.length;i++)
{
var tt = new Array();
tt=t[i].split(',');
x = Number(tt[4])+vehlon;
y = Number(tt[5])+vehlat;
pinPoint=new VELatLong(y, x);
station = new VEShape(VEShapeType.Pushpin, pinPoint);
station.SetTitle("<div style='border:solid 1px Red;background-color:#DCB5FF'><h3>站点名称:"+tt[2]+"</h3></div>");
station.SetDescription("<div style='font-size:12px;weight:100px;border:solid 1px Red;background-color:#DCB5FF'>线路:"+tt[0]+"路<br>站点编号:"+tt[1]+"<br>方向:"+tt[3]+"</div>");
station.SetCustomIcon("<img src='WebCarSymbol\\station.png'/>");
layer.AddShape(station);
}
}
function ShowWarning()
{
var wrn= document.getElementById("Warning").value;
clearShapes(3);
document.all.bgs.src="";
var layer = map.GetShapeLayerByIndex(3);
if(wrn!="")
{
document.all.bgs.src="WebCarSymbol\\warning.WAV";
var vv = new Array();
vv=wrn.split('|');
for(var i=0;i<vv.length-1;i++)
{
var vvv =new Array();
vvv=vv[i].split(';');
}
}
}
//reload bus
function ReloadMapShapes(e)
{
try
{
clearShapes(0);
var level = map.GetZoomLevel();
for(var i=0;i<e.length;i++)
{
AddPin(e[i]);
}
}
catch(e)
{
}
}
function offset(level)
{
switch(level)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
vehlon = 0.005;
vehlat = -0.0026;
break;
case 12:
vehlon = 0.005;
vehlat = -0.0026;
break;
case 13:
vehlon = 0.005;
vehlat = -0.0026;
break;
case 14:
vehlon = 0.005;
vehlat = -0.0026;
break;
case 15:
vehlon = 0.005;
vehlat = -0.0026;
break;
case 16:
vehlon = 0.005;
vehlat = -0.0026;
break;
case 17:
vehlon = 0.005;
vehlat = -0.0026;
break;
}
}
//清除图层
function clearShapes(layerindex)
{
try
{
switch(layerindex)
{
case 1:
var layer = map.GetShapeLayerByIndex(1);
layer.DeleteAllShapes();
break;
case 99:
map.DeleteAllShapes();
break;
default:
map.DeleteAllShapes();
break;
}
}
catch(e)
{
}
}
function setMapZoomLevel()
{
var level = map.GetZoomLevel();
offset(level);
if(level<12)
{
map.SetZoomLevel(12);
}
}
//设置每次居中
function setMapCenter(latitude,longitude)
{
map.SetCenter(new VELatLong(latitude, longitude));
}
var curr=0;//当前循环下标
var dataarray=null;//查询到的数据
var timer=null;//定时器
var createNum=0;//序号
function showlines(data,time){
dataarray=data;
timer= setInterval("showInterval()", time);//设置定时器 并调用函数
}
function settimespeed(time){
timer= setInterval("showInterval()", time);//设置定时器 并调用函数
}
//画线
function ShowLine(e,index,remark)
{
try
{
var level = map.GetZoomLevel();
offset(level);
var layer = map.GetShapeLayerByIndex(2);
var points=new Array();
offset(level);
for(var i=0;i<index;i++)
{
var x = Number(e[i].o_LONGITUDE)+vehlon;
var y = Number(e[i].o_LATITUDE)+vehlat;
points[i]=new VELatLong(y, x);
}
polyline = new VEShape(VEShapeType.Polyline, points);
if(null!=e[index].stlcu){//有设置轨迹线颜色
if(remark==1){
if(e[i].o_DIRECTION==0){//上行
setcolor(e[index].stlcu);
setMapCenter(e[index].o_LATITUDE,e[index].o_LONGITUDE);//每次画最后一个点都居中显示
}else{//下行
setcolor(e[index].stlcd);
setMapCenter(e[index].o_LATITUDE,e[index].o_LONGITUDE);//每次画最后一个点都居中显示
}
}else{
if(e[i].o_DIRECTION==0){//上行
setcolor(e[index].stlcru);
setMapCenter(e[index].o_LATITUDE,e[index].o_LONGITUDE);//每次画最后一个点都居中显示
}else{//下行
setcolor(e[index].stlcrd);
setMapCenter(e[index].o_LATITUDE,e[index].o_LONGITUDE);//每次画最后一个点都居中显示
}
}
}else{//设置默认颜色
if(remark==1){
if(e[i].o_DIRECTION==0){//上行
polyline.SetLineColor(new VEColor(255,0,0,1.0));//没有设置画线颜色
setMapCenter(e[index].o_LATITUDE,e[index].o_LONGITUDE);//每次画最后一个点都居中显示
}else{//下行
polyline.SetLineColor(new VEColor(0,150,100,1.0));
setMapCenter(e[index].o_LATITUDE,e[index].o_LONGITUDE);//每次画最后一个点都居中显示
}
}else{
polyline.SetLineColor(new VEColor(0,250,100,1.0));
}
}
polyline.SetLineWidth(3);
polyline.HideIcon();
layer.AddShape(polyline);
if(remark==0){
AddPin(e[index]); //添加图标
setMapCenter(e[index].o_LATITUDE,e[index].o_LONGITUDE);//每次画最后一个点都居中显示
}
}
catch(e)
{
}
}
function setcolor(colorval){
if(colorval=="red"){
polyline.SetLineColor(new VEColor(255,0,0,1.0));//设置画线颜色red
}else if(colorval=="dgreed"){
polyline.SetLineColor(new VEColor(0,150,100,1.0));//设置画线颜色深绿
}else if(colorval=="lgreed"){
polyline.SetLineColor(new VEColor(0,250,100,1.0)); //设置画线颜色浅绿
}else{
polyline.SetLineColor(new VEColor(51,92,255,1.0));//设置画线颜色blue
}
}
//添加图标
function AddPin(e)
{
var longitude = Number(e.o_LONGITUDE)+longitudeOffset+vehlon;
var latitude = Number(e.o_LATITUDE)+latitudeOffset+vehlat;
pinPoint=new VELatLong(latitude, longitude);
shape = new VEShape(VEShapeType.Pushpin, pinPoint);
shape.SetTitle("车辆编号:"+e.o_BUSNO+"");
shape.SetDescription("<div style='font-size:12px;border:solid 1px Red'>线路:"+e.o_LINENAME+"路<br/>经度:"+e.o_LONGITUDE+"<br/>纬度:"+e.o_LATITUDE+"<br/>速度:"+e.o_speed+"km/h<br/>运行方向:"+((e.o_DIRECTION==0)?"上行":"下行")+"<br/>经过站点:"+((e.o_STATIONNO==null)?"":e.o_STATIONNO)+"</div>");
if(e.o_DIRECTION==0)
{
shape.SetCustomIcon("<img src='../../frame/images/maps/WebCarSymbol/go/"+Number((((e.o_ANGLE%360)|0)/10 |0))+".png'/><br><div style='font-size:8px;border:solid 1px red;background-color:yellow;width:40px;height:20px;align:center'><font color='#EA0000'>"+e.o_BUSNO+"</font></div>");
}
else
{
shape.SetCustomIcon("<img src='../../frame/images/maps/WebCarSymbol/back/"+Number((((e.o_ANGLE%360)|0)/10 |0))+".png'/><br><div style='font-size:8px;border:solid 1px #0072E3;background-color:yellow;width:40px;height:20px;align:center'><font color='#0072E3'>"+e.o_BUSNO+"</font></div>");
}
map.AddShape(shape);
createNum++;
var html="<tr οnclick=showpoint("+e.o_LATITUDE+","+e.o_LONGITUDE+"); οnmοuseοut=this.style.backgroundColor='white'; οnmοuseοver=this.style.backgroundColor='#E3E3A4'><td>"+createNum+"</td><td>"+e.o_TIME+"</td><td>"+e.o_LONGITUDE+"</td><td>"+e.o_LATITUDE+"</td><td>"+((e.o_STATIONNO==null)?"未知":e.o_STATIONNO)+"</td><td>"+((e.o_DIRECTION==0)?"上行":"下行")+"<td>"+e.o_speed+"</td></td></tr>";
$("#showdata").append(html);
}
function showInterval(){
if(dataarray==null){
return ;
}
if(curr>=dataarray.length-1){
ShowLine(dataarray,curr,0);//行驶轨迹
alert("播放完毕!");
stop();
return;
}else{
var level = map.GetZoomLevel();
clearShapes(level);
}
ShowLine(upstations,upstations.length-1,1);//正常轨迹
ShowLine(downstations,downstations.length-1,1);
ShowLine(dataarray,curr,0);
++curr;
}
//暂停
function stop(){
if(timer!=null){
window.clearInterval(timer);
}
}
//取消
function resetstop(){
curr=0;
stop();
createNum=0;//序号
timeer=null;
var level = map.GetZoomLevel();
clearShapes(level);
$("#pl").css("background", "url('js/play.png')");
$("#pl").css("background-repeat","no-repeat");
$("#pl").val(0);
}
//开始播放
var pans=0;
var panavg=0;
function starts(remark){
if($("#pl").val()==0){
$("#pl").css("background", "url('js/stop.png')");
$("#pl").css("background-repeat","no-repeat");
$("#pl").val(1);
}else{
$("#pl").css("background", "url('js/play.png')");
$("#pl").css("background-repeat","no-repeat");
$("#pl").val(0);
stop();
return;
}
if(curr==0){
$("#showdata").find("tr:gt(0)").remove();
}
alert( $("#plan").val());
$("#plan").val(20);
var bus=$("#busno").val();
var dates=$("#datetime").val();
var begintime=$("#begintime").val();
var endtime=$("#endtime").val();
var speed=$("#speed").val()*200;
$.post("teeee_eee",{"ptb.O_BUSNO":bus,"ptb.O_DATE":dates,"ptb.begintime":begintime,"ptb.endtime":endtime},function(data){
if(data.length>0){
showlines(data,speed);
panavg=data.length/100;
}else{
$("#pl").css("background", "url('js/play.png')");
$("#pl").css("background-repeat","no-repeat");
$("#pl").val(0);
alert("没有数据进行播放!");
}
});
}
//
function showpoint(la,lo)
{
var longitude = Number(lo)+longitudeOffset+vehlon;
var latitude = Number(la)+latitudeOffset+vehlat;
pinPoint=new VELatLong(latitude, longitude);
shape = new VEShape(VEShapeType.Pushpin, pinPoint);
map.AddShape(shape);
map.SetCenter(new VELatLong(la, lo));
}
//jQuery(function() {
// jQuery.fn.CloneTableHeader("showdata", "div1");
//});
//划红线上下行
function redLine(){
var line=$("#linesno").val();
$.post("tttt_wwww",{"ptb.o_LINENO":line},function(data){
if(data.length>0){
upstations=data[0];
downstations=data[1];
ShowLine(upstations,upstations.length-1,1);
ShowLine(downstations,downstations.length-1,1);
}else{
alert("没有画正常轨迹线数据!");
}
});
}
//
--------打印地图
@media print {
#btnprint {
display: none;
}
#myMap {
display: block;
}
}
var map = null;
var shape = null;
var pinCenter = null;
function PrintMap()
{
var printOpt = new VEPrintOptions(true);
map.SetPrintOptions(printOpt);
window.print();
}
bing地图车辆轨迹回放代码相关推荐
- 使用百度地图实现车辆轨迹回放
最近在做的项目有个车辆轨迹回放需求,查资料看到可以使用百度地图的路书功能实现,百度路书功能如下. 点击开始按钮,小车会在地图上移动还原历史轨迹. 具体需求就是通过调用后台接口获取到指定车辆的指定时间段 ...
- 高德地图3D轨迹回放 + 视野跟随功能
高德地图3D轨迹回放 + 视野跟随功能 概述 代码实现步骤 完整代码 (需要添加一个2.0的key) 概述 若有帮助到你,麻烦点一波关注,博主会持续推出Echarts,D3,地图,Three.js方面 ...
- android 基于高德地图的轨迹回放
android 基于高德地图的轨迹回放 前段时间公司项目有一个需求,就是需要看到设备上传之后的轨迹路线,并且可以实现回放的整个过程,功能包括路线回放.地图位置插点.回放之后的轨迹标记颜色.回放加速等功 ...
- 使用腾讯地图API完成车辆轨迹回放,同时能模拟真实的速度和方向
产品需求: 根据能够回放出来车辆的运行轨迹路线.运行方向和速度. 需求分析: 1.首先因为是Web网页端的功能,所以需要用到的是地图模块的API,可以选择百度地图或者腾讯地图. 2.由于需要位置信息, ...
- 车辆轨迹回放中如何实现轨迹信息表格的自动滚动?
TSINGSEE青犀视频目前正在研发基于车载视频监控的新功能,包括轨迹跟踪.轨迹回放等.轨迹跟踪适用于车载监控场景,基于车内的车载监控装置,可以实时记录车辆的位置.行驶轨迹等信息,并且在轨迹回放中,能 ...
- js室内地图开发_如何使用JS来开发室内三维地图的轨迹回放功能
在制作完成室内三维地图的功能后,最经常有的需求就是如何做人员的轨迹回放,一般流程都是从数据库中查询轨迹坐标后,经过后台查询接口返回给前端,接下来的事情都交给JS来完成. 如果想做好一个性能好的轨迹回放 ...
- 小程序实现轨迹回放代码
小程序实现轨迹回放 以下只是实现轨迹回放的步骤和部分的主要代码,其他数据类的我就跳过了,我是用小程序的translateMarker方法来实现轨迹回放. 创建 map 上下文 MapContext 对 ...
- 百度地图的轨迹回放和实时监控
最近写了两个页面,是跟百度地图有关的,本来以为是用的鹰眼的轨迹,才发现没那么麻烦,直接用的是百度地图自带的api. 1 轨迹回放 <template><div class=" ...
- Vue项目引用高德地图实现车辆轨迹回放
一.引入高德地图jsApi 在项目入口index.html页面以cdn方式引入 <script src="https://webapi.amap.com/maps?v=1.4.15&a ...
最新文章
- win7 php 上传文件,在LNMP原来的基础上,win7环境下如何上传PHP文件到Linux环境下...
- security center拒绝访问_Steam被曝出0day提权漏洞,但厂商拒绝修复
- 老鸟对菜鸟的一些建议
- Firefox上打开的标签页太多怎么办?
- Linux Shell变量使用
- WebServce之拦截器
- (7)数据结构-基本队列实现
- esp32之arduino配置下载提速
- 设计模式小例子理解封装、继承、多态
- Windows XP虚拟机到期无法使用的解决方案(救急版)
- 未来教育计算机二级第十八套ppt,未来教育.ppt
- Swift游戏实战-跑酷熊猫 09 移除场景之外的平台
- Linux之ARM(IMX6U)裸机主频和时钟配置
- 三星矫情,重温Galaxy S5发布会收买人心
- 手机 长按删除 html5,移动端长按删除
- 什么是异地双活及应用场景
- VS-c++播放声音
- python作业:有一个学生成绩表,包括学号、姓名、高数、英语,计算机。 录入若干个学生学号、姓名、高数、英语,计算机5项数据。 将学生成绩表数据写入文件,文件名为“学生成绩表.txt
- 初看一脸问号,看懂直接跪下
- 【数论】斐波那契数列求和公式
热门文章
- 时间协议ntp服务器,NTP网络时间协议(HP_UX)
- js原生DOM属性值查找 getAttribute,设置setAttribute,移除removeAttribute
- contenteditable属性将标签变为可编辑状态,可用于在线编辑修改文本
- vueCli脚手架搭建和文件详解(超详细保姆级教学)
- 【汇正财经】短线交易和内幕交易有什么区别?
- IT行业项目管理软件,你知道多少?
- PHPMailer不能连接SMTP服务器的两种常见原因(Could not connect to SMTP host)
- HTML5标准成形:浏览器竞争会消停吗?
- 几种设计模式意图或优势总结
- 浪潮java笔试大题