博客中添加足迹地图
足迹地图效果展示足迹地图可以展示你过去到访过的地方,以及到访地点的介绍与图片记录,同时不同地标的半径大小表示了访问该地点的频率高低,如下图所示:
其中每个足迹图标都可以点击,点击会弹出左边的介绍栏及对应的介绍文字与图片。图片点击可以放大显示,如下图所示:
足迹地图使用方式克隆足迹地图项目首先,将足迹地图克隆到本地。
1git clone https://github.com/SUNYunZeng/FootprintMap.git
会得到如下所示的目录结构:
1234567891011121314FootprintMap├─ CNAME├─ css│ ├─ index.css│ └─ jquery-jvectormap-2.0.5.css├─ data│ └─ config.json├─ index.html├─ js│ ├─ index.js│ ├─ jquery-1.9.1.min.js│ ├─ jquery-jvectormap-2.0.5.min.js│ └─ jquery-jvectormap-cn-merc-en. ...
自己第一篇SCI文章: LSI-LSTM——个体出行目的地预测模型
内容导读个体驾驶目的地预测对于个性化服务推荐、出行导航、交通调度等基于位置的服务具有重要的参考意义。然而,个体出行不仅具有长时间依赖性,而且受到出行空间上下文的影响,使得精准实时的驾驶目的地预测面临较大挑战。目前,长时间依赖关系建模已存在一定的技术手段,但空间因素对出行过程的影响仍然较少被考虑到。事实上,出发地与沿途的城市功能区、路网关键节点均一定程度反映并影响着司机的出行意图。为此,本文提出一种基于注意力机制和长短期记忆(LSTM)的个体驾驶目的地实时预测模型LSI-LSTM。该模型在兼顾个体出行长时间依赖性学习的同时,从轨迹点的位置语义、轨迹点与目的地间的空间关联关系两个维度建模空间上下文。具体来说,使用高德POI和TF-IDF算法建立轨迹语义提取方法t-LSE,以获得轨迹点所在区域的城市功能区类型;基于转向角、速度、已行驶距离三类驾驶状态评价轨迹点的位置重要性,并利用轨迹空间注意力机制t-SAM进一步捕获与潜在目的地有强空间关联的轨迹点。基于上述城市功能区类型和位置重要性,LSI-LSTM对轨迹点的空间上下文进行建模,在不需要外部路网数据的情况下实现细粒度空间出行特征的学习。基于 ...
再见2020,你好2021!
这里有东西被加密了,需要输入密码查看哦。
卡尔曼滤波与粒子滤波
卡尔曼滤波卡尔曼滤波解决的是如何从多个不确定数据中提取相对精确的数据。
1) 实践前提是这些数据满足高斯分布。
2) 理论前提是一个高斯斑乘以另一个高斯斑可以得到第三个高斯斑,第三个高斯斑即为提取到相对精确的数据范围。
什么是卡尔曼滤波你可以在任何含有不确定因素的动态系统里使用卡尔曼滤波,而且你应该可以通过某种数学建模对系统下一步动向做一个大概的预测。尽管系统总是会受到一些未知的干扰,但是卡尔曼滤波总是可以派上用场来提高系统预估的精确度,这样你就可以更加准确地知道到底发生了什么事情(系统状态是如何转移的)。而且它可以有效利用多个粗糙数据之间的关系,而单独面对这些数据你可能都无从下手。
卡尔曼滤波尤其适合动态系统。它对于内存要求极低(它仅需要保留系统上一个状态的数据,而不是一段跨度很长的历史数据)。并且它运算很快,这使得它非常适合解决实时问题和应用于嵌入式系统。
卡尔曼滤波我们可以做什么?我们举一个玩具的栗子:你开发了一款小型机器人,它可以在树林里自主移动,并且这款机器人需要明确自己的位置以便进行导航。
我们可以通过一组状态变量 来描述机器人的状态,包括位置和速度:
注意这 ...
工作签约小记
这里有东西被加密了,需要输入密码查看哦。
创建博客带给我的思考
这里有东西被加密了,需要输入密码查看哦。
深入了解JS基础
JS 的 Number 类型精度问题我们知道,Java 语言中的长整型范围为 +2^63-1 ~ -2^63-1,而 JavaScript 的 Number 基本类型采用 64 位浮点型表示,为什么 JS 中整型的最大安全范围不是 +2^63-1 ~ -2^63-1 呢?
Java的 的长整型整数也是采用 64 位表示,除了第一位是符号位,剩下的 63 位都可以表示数字。
而 JavaScript 没有单独的整型类型 (Bigint 除外,且 Bigint 不能参与与 Number 类型的运算),整型、浮点型都统一用 64 位浮点型来表示,采用的是 IEEE754 标准。
IEEE754 规定,64 位的浮点型中,第 1 位表示正负,2~12 位表示指数位 (实际存储的时候必须加上一个偏移值 1023),剩下的 64 - 1- 11 = 52 位表示整数位,因为浮点数采用科学计数法,第一位固定是 1,可以不用表示,但是运算时会加上。
比如:
0 01111111011 0000000000000000000000000000000000000000000000000000
表示的就是 ...
JS中的优化技巧
使用 Promise.all 同时触发多个不互相依赖的异步请求对于互不依赖的多个Promise任务,可以使用 Promise.all 方法使这些方法并行执行,而不是串行执行,这样可以大量的节省任务执行时间。
举例
123456789101112131415161718192021222324252627282930313233343536373839function getData1(){ return new Promise((resolve, reject)=>{ setTimeout(()=>resolve(1), 10000); })}function getData2(){ return new Promise((resolve, reject)=>{ setTimeout(()=>resolve(2), 20000); })}async function oneByOneAsyncFunc(){ const start_time = new ...
JS中的设计模式(下)
命令模式命令模式中的命令(command)指的是一个执行某些特定事情的指令。
命令模式最常见的应用场景是:有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。此时希望用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此之间的耦合关系。
例如前端开发分为界面开发以及代码逻辑开发两部分,界面开发的同学设计了一个刷新按钮,点击可以执行刷新操作。
1234<button id="refreshBtn">刷新</button><script>let refreshBth = document.getElementById('refreshBtn');</script>
但是这时候负责开发实际代码逻辑的同学由于业务比较复杂,因此还没来得及开发完成,此时界面开发的同学不知道如何调用实际的刷新操作。
此时可以利用命令模式,统一规定了命令的执行需要调用 execute 方法。
12345let setCommand = function(button, comman ...
JS中的设计模式(上)
单例模式js 程序中很多情况下只需要创建一个对象,例如全局缓存、widows 对象、线程池、以及界面中具备唯一性的窗口,此时需要利用单例模式来保证对象的唯一性。
使用代理实现 单一职原则 ,将创建单例的 DIV 与管理代理的代码分开。
123456789101112131415161718// 创建 DIV 逻辑CreateDiv = function(html){ this.html = html; this.init();}CreateDiv.prototype.init = function(){ const div = document.createElement('div'); div.innerHtml = this.html; document.body.appendChild(div);}SingletonProxy = (function(){ let instance = null; return function(html){ r ...