轨迹追踪

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ZwQAeZO1fncN63zUmuYeGU7CLU0mpfdk">
</script>
<title>轨迹动态展示</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
//数据准备,
var points = [];//原始点信息数组
var bPoints = [];//百度化坐标数组。用于更新显示范围。
//创建标注点并添加到地图中
function addMarker(points) {
    //循环建立标注点
    for(var i=0, pointsLen = points.length; i<pointsLen; i++) {
        var point = new BMap.Point(points[i].lng, points[i].lat); //将标注点转化成地图上的点
        var marker = new BMap.Marker(point); //将点转化成标注点
        map.addOverlay(marker);  //将标注点添加到地图上
        //添加监听事件
        (function() {
            var thePoint = points[i];
            marker.addEventListener("click",
                function() {
                showInfo(this,thePoint);
            });
         })();
    }
}

//添加线
function addLine(points){  

    var linePoints = [],pointsLen = points.length,i,polyline;
    if(pointsLen == 0){
        return;
    }
    // 创建标注对象并添加到地图
    for(i = 0;i <pointsLen;i++){
        linePoints.push(new BMap.Point(points[i].lng,points[i].lat));
    }  

    polyline = new BMap.Polyline(linePoints, {strokeColor:"blue", strokeWeight:5, strokeOpacity:1});   //创建折线
    map.addOverlay(polyline);   //增加折线
}

//随机生成新的点,加入到轨迹中。
function dynamicLine(){
    var lng = 112+getRandom(100)*0.01;
    var lat = 26+getRandom(100)*0.01;
    var id = getRandom(1000);
    var point = {"lng":lng,"lat":lat,"status":1,"id":id}
    var makerPoints = [];
    var newLinePoints = [];
    var len;  

    makerPoints.push(point);
    addMarker(makerPoints);//增加对应该的轨迹点
    points.push(point);
    bPoints.push(new BMap.Point(lng,lat));
    len = points.length;
    newLinePoints = points.slice(len-2, len);//最后两个点用来画线。  

    addLine(newLinePoints);//增加轨迹线
    setZoom(bPoints);
    setTimeout(dynamicLine, 1000);
}  

// 获取随机数
function getRandom(n){
    return Math.floor(Math.random()*n+1)
}  

//根据点信息实时更新地图显示范围,让轨迹完整显示。设置新的中心点和显示级别
function setZoom(bPoints){
    var view = map.getViewport(eval(bPoints));
    var mapZoom = view.zoom;
    var centerPoint = view.center;
    map.centerAndZoom(centerPoint,mapZoom);
}  

//创建地图
var map = new BMap.Map("allmap");    

map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);  // 设置中心点
map.centerAndZoom( "衡阳");
map.setCurrentCity("衡阳");          //设置为衡阳
map.addControl(new BMap.MapTypeControl()); //可拖拽
map.enableScrollWheelZoom(true);  //滚轮实现方法缩小
    dynamicLine();

</script>
时间: 2024-10-14 05:22:35

轨迹追踪的相关文章

GPS/轨迹追踪、轨迹回放、围栏控制

折腾一个多月终于弄完了这个项目,起初都未曾接触GPS/轨迹追踪.轨迹回放.圈划围栏...等一些在百度地图或者Googel地图操作的一些业务,后端的业务相对来说简单点 cas单点登录,mongdb灵活的数据存储方式,ActiveMQ消息推送.Redis存储... 这篇的主要篇幅主要来讲述下项目中的一些地图上棘手的问题 接口测试数据: 1.GPS数据接收接口对于日期格式的转化 作为码农都知道Web接口传输的数据都是以Json的数据形式传输,日期格式不同是我们头疼的事情,当然要是我们自己给App端,云

OpenLayers 3 之 实时追踪轨迹-获取最后添加的要素

问题描述 有时,往往有这样的需求:每隔一段时间查询一个物体的位置,然后将这个位置绘制在地图上,中间的点用普通的样式标识,当前位置(也就是最新的点位置)使用一个特殊的样式.我们可以这样实现,查询到一个新位置,将改点添加到地图上的同时,赋予其特殊的样式,当再查询到有新的位置时,获取最后添加的要素,删除其特殊样式,然后添加新的要素点位置. 那么,问题来了:怎么获取最后添加的要素呢? 方法一: getFeatures 首先,我们知道,ol.source.Vector,提供了 getFeatures 方法

Android 百度鹰眼轨迹SDK(v2.1.6)

闲聊 看过<鹰眼追击>这部电影的读者一定对"鹰眼"这台巨无霸计算机印象深刻,如今我们能够实现自己的鹰眼. 效果图 本篇为百度地图SDK第三篇博文 第一篇实现:Android 百度地图周边雷达(v6.1.3)及覆盖物 第二篇实现:Android 百度定位SDK(v6.1.3)结合方向传感器 本博文为第三篇 使用百度鹰眼轨迹SDK能够实现的功能 轨迹追踪 借助GPS.基站.Wi-Fi和传感器信息,实现室内.外高精度的连续轨迹追踪.总体定位精度50m: GPS:10m(取决于芯片

Android百度鹰眼轨迹

作者:短工邦技术部 - 陈文超 百度地图之百度鹰眼轨迹使用 拿外卖配送为例,配送员从接单开始上传行驶轨迹,用户端可以实时查看配送员的行驶轨迹,对于点外卖的用户来说可以更直接地观察到自己的订单是否在配送过程中,不再需要一遍一遍地拨打商户电话催促. 在思考相关解决方案的时候第一个想到的是在后台不断地获取配送员的经纬度,上传到服务器,然后在用户端实时地刷新这些经纬度数据显示到地图上.这种方法虽说思路很简单,只是数据的上传与刷新,但是轨迹的准确度与定位的精准度有很大关系,如果遇到网络环境较弱等的情况,定

hadoop、spark、hive、solr、es与YDB在车辆即席分析上的对比分析

自2012年以来,公安部交通管理局在全国范围内推广了机动车缉查布控系统(简称卡口系统),通过整合共享各地车辆智能监测记录等信息资源,建立了横向联网.纵向贯通的全国机动车缉查布控系统,实现了大范围车辆缉查布控和预警拦截.车辆轨迹.交通流量分析研判.重点车辆布控.交通违法行为甄别查处及侦破涉车案件等应用.在侦破肇事逃逸案件.查处涉车违法行为.治安防控以及反恐维稳等方面发挥着重要作用. 随着联网单位和接入卡口的不断增加,各省市区部署的机动车缉查布控系统积聚了海量的过车数据.截至目前,全国32个省(区.

UEM用户行为了如指掌!

"千呼万唤始出来",万众期待的UEM正式与宝宝们见面啦~~~ 今天很多人来问小编,Web咋不见了,表急,Web并没有消失,而是重磅升级为UEM啦!!! 什么是UEM呢?UEM全称User Experience Monitoring,通过监测用户端的使用习惯和遇到的挫折,帮助产品团队通过数据驱动产品的数字体验提升. UEM是在原先Web基础上实现PC端.移动端(原生+H5)打通的真实用户体验监控产品,是界内率先打通PC和移动端的产品. UEM全面记录真实用户的操作流,提供大数据样本全面分

【CV论文阅读】Two stream convolutional Networks for action recognition in Vedios

论文的三个贡献 (1)提出了two-stream结构的CNN,由空间和时间两个维度的网络组成. (2)使用多帧的密集光流场作为训练输入,可以提取动作的信息. (3)利用了多任务训练的方法把两个数据集联合起来. Two stream结构 视屏可以分成空间与时间两个部分,空间部分指独立帧的表面信息,关于物体.场景等:而时间部分信息指帧间的光流,携带着帧之间的运动信息.相应的,所提出的网络结构由两个深度网络组成,分别处理时间与空间的维度. 可以看到,每个深度网络都会输出一个softmax层,最后会通过

鹰眼跟踪、限流降级,EDAS的微服务解决之道

本文主要从服务化的起源开始讲起,围绕EDAS介绍这些年来,随着阿里庞大的电商技术平台流量和并发不断攀升过程中,中间件的微服务技术面临的一系列挑战及解决方法.同时,也会向读者介绍历次双十一背后,EDAS服务化技术的演进历程. 服务化的起源 微服务的解决之道 海量微服务的挑战 关于作者 以下为精彩内容整理: 服务化的起源 阿里巴巴前期技术现状 当时阿里巴巴技术团队规模有500人左右,整个技术网站使用单一War应用,基于传统应用开发架构,业务每年翻倍增长. 我们面临着非常多的问题: 上百人维护一个核心

手势识别(一)--手势基本概念和ChaLearn Gesture Challenge

以下转自: http://blog.csdn.net/qq1175421841/article/details/50312565 像点击(clicks)是GUI平台的核心,轻点(taps)是触摸平台的核心那样,手势(gestures)是Kinect应用程序的核心.和图形用户界面中的数字交互不同,手势是现实生活中存在的动作.如果没有电脑我们就不需要鼠标,但是没了Kinect,手势依然存在.从另一方面讲,手势是日常生活中人与人之间相互交流的一部分.手势能够增强演讲的说服力,能够用来强调和传递情感.像