当前位置:首页 > 经验 >

在高德地图如何查找导航历史(高德地图怎么找之前的导航记录)

来源:原点资讯(m.360kss.com)时间:2022-11-07 04:49:28作者:YD166手机阅读>>

在高德地图如何查找导航历史,高德地图怎么找之前的导航记录(1)

实现(轨迹回放)方式有两种:
  • 第一种是使用 JS API 和 AMap.polyline(折线)等图形配合实现。
  • 第二种是使用 JS API 和 AMapUI 组件库 配合使用,利用 PathSimplifier(轨迹展示组件)绘制出行动轨迹。
方案选择

以上两种实现方式我们可以根据两个因素 来决定哪一种更加适合自己:节点数量 的多少、排布的密集度

前者适合节点数量较少,排布比较稀松,例如,出租车轨迹回放,出租车行驶速度快,周期上报的时间也会相对较长。后者更加针对节点数量巨大、排布密集的路径,按秒记录位置的飞机行进轨迹,精细的地理边界等等。

实现流程

无论选择两种方式,我们都需要先收集到客户端上报的信息,这些信息可以自定义,通常我们会包含:经纬度、速度、逆编码之后的地理位置、方向、海拔 等基本地理信息,同时我们也可以加入一些自定义 的信息,例如:人员信息(头像昵称等)、出行信息(订单等)。

实现的流程:

  • 客户端按(时间)周期上报地理信息以及自定义信息。
  • 服务端按时间轴存储客户上报的信息。
  • 按(时间等)条件查询出用户的轨迹,并通过简化算法去除一部分节点(例如,节点距离十分微小、或者多个点都在同一条直线、3点之间,其中一点略有偏差无法绘制成直线等等),最终获得适合绘制的路径(数组)。
  • 根据路径去绘制用户的行动轨迹。
路径简化算法(可选)

客户端上报的数据是按时间周期上报的,也就是说每个时间都对应了一个经纬度,经纬度在地图上就是一个又一个点,将这些点连接时,我们会得到 N 多条折线,为了绘制的轨迹更加美观,行动路线更加明确平滑,通常我们需要一个算法来简化折线。

例如:

  • A 点和 B 点,两者距离不到 1 像素,则可以去掉 B 点,只留 A 点。
  • A,B,C 三点在一条直线上,或者,B 点仅仅稍微偏离 A 点和 C 点构成的线段,那么 B 点就可以去掉。

这里官方也推荐了一种算法库 simplify.js供大家参考,这里不做过多的阐述。

实现示例车辆轨迹回放

这里我们使用第一种方式来实现 - 利用 JS API 和 AMap.Polyline。

在高德地图如何查找导航历史,高德地图怎么找之前的导航记录(2)

实现原理:
  • 在地图上绘制车辆标记(AMap.Marker)。
  • 利用 AMap.PolyLine 绘制出两条轨迹:历史轨迹驾驶途径过的轨迹,以颜色区分。
  • 按照一定的速度使车辆前进,并监听 Maker 移动的事件,在事件回调中,将车辆(Marker)位置设置为地图中心点,给使用者视觉主观上一种车辆在前进的感觉,同时延长驾驶途径过的轨迹
  • 对于实现场景比较复杂的,需要进行自定义处理的比如:
  1. 查看每个节点的数据,我们可以把每个节点给绘制出来,节点被点击时显示该节点的数据。
  2. 移动倍速播放,首先按上报的时间间隔来播放,选择倍速之后,改变 MarKer 移动的 duration。
  3. 其他自定义。
自定义 API

我们可以让车辆:

  • 开始移动
  • 暂停移动
  • 恢复移动
  • 停止移动
代码示例

AMap.plugin('AMap.MoveAnimation', function(){ var marker, lineArr = [[116.478935,39.997761],[116.478939,39.997825],[116.478912,39.998549],[116.478912,39.998549],[116.478998,39.998555],[116.478998,39.998555],[116.479282,39.99856],[116.479658,39.998528],[116.480151,39.998453],[116.480784,39.998302],[116.480784,39.998302],[116.481149,39.998184],[116.481573,39.997997],[116.481863,39.997846],[116.482072,39.997718],[116.482362,39.997718],[116.483633,39.998935],[116.48367,39.998968],[116.484648,39.999861]]; var map = new AMap.Map("container", { resizeEnable: true, center: [116.397428, 39.90923], zoom: 17 }); marker = new AMap.Marker({ map: map, position: [116.478935,39.997761], icon: "https://a.amap.com/jsapi_demos/static/demo-center-v2/car.png", offset: new AMap.Pixel(-13, -26), }); // 绘制历史轨迹 var polyline = new AMap.Polyline({ map: map, path: lineArr, showDir:true, strokeColor: "#28F", //线颜色 // strokeOpacity: 1, //线透明度 strokeWeight: 6, //线宽 // strokeStyle: "solid" //线样式 }); // 驾驶途径过的轨迹 var passedPolyline = new AMap.Polyline({ map: map, strokeColor: "#AF5", //线颜色 strokeWeight: 6, //线宽 }); // 监听车辆移动事件 marker.on('moving', function (e) { // 延长驾驶途径过的轨迹 passedPolyline.setPath(e.passedPath); // 将车辆位置设置为地图中心点 map.setCenter(e.target.getPosition(),true) }); map.setFitView(); // 开始移动 window.startAnimation = function startAnimation () { marker.moveAlong(lineArr, { // 每一段的时长 duration: 500,//可根据实际采集时间间隔设置 // JSAPI2.0 是否延道路自动设置角度在 moveAlong 里设置 autoRotation: true, }); }; // 暂停移动 window.pauseAnimation = function () { marker.pauseMove(); }; // 恢复移动 window.resumeAnimation = function () { marker.resumeMove(); }; // 停止移动 window.stopAnimation = function () { marker.stopMove(); }; });

参考链接:https://lbs.amap.com/demo/jsapi-v2/example/marker/replaying-historical-running-data

飞机航班的轨迹回放

使用 JS API 和 AMapUI 组件库 配合使用,利用 PathSimplifier(轨迹展示组件)绘制出行动轨迹,这种方案比较简单,只需要进行一些配置即可,例如说方案一中的倍速播放就需要计算,同时还存在不能动态改变倍速的弊端,但是方案二却不会存在。

实现原理:
  • 在地图上绘制飞机标记(AMap.Marker)。
  • 利用 AMap.PolyLine 绘制出两条轨迹:历史轨迹驾驶途径过的轨迹,以颜色区分。
  • 配置轨迹的颜色,动画的速度等等。
  • 对于实现场景比较复杂的,需要进行自定义处理的,可以在PathSimplifier 提供的回调中进行配置及处理。
示例代码

//加载PathSimplifier,loadUI的路径参数为模块名中 'ui/' 之后的部分 AMapUI.load(['ui/misc/PathSimplifier'], function(PathSimplifier) { if (!PathSimplifier.supportCanvas) { alert('当前环境不支持 Canvas!'); return; } //启动页面 initPage(PathSimplifier); }); function initPage(PathSimplifier) { //创建组件实例 var pathSimplifierIns = new PathSimplifier({ zIndex: 100, map: map, //所属的地图实例 getPath: function(pathData, pathIndex) { //返回轨迹数据中的节点坐标信息,[AMap.LngLat, AMap.LngLat...] 或者 [[lng|number,lat|number],...] return pathData.path; }, getHoverTitle: function(pathData, pathIndex, pointIndex) { //返回鼠标悬停时显示的信息 if (pointIndex >= 0) { //鼠标悬停在某个轨迹节点上 return pathData.name ',点:' pointIndex '/' pathData.path.length; } //鼠标悬停在节点之间的连线上 return pathData.name ',点数量' pathData.path.length; }, renderOptions: { //轨迹线的样式 pathLineStyle: { strokeStyle: 'red', lineWidth: 6, dirArrowStyle: true } } }); //这里构建两条简单的轨迹,仅作示例 pathSimplifierIns.setData([{ name: '轨迹0', path: [ [100.340417, 27.376994], [108.426354, 37.827452], [113.392174, 31.208439], [124.905846, 42.232876] ] }, { name: '大地线', //创建一条包括500个插值点的大地线 path: PathSimplifier.getGeodesicPath([116.405289, 39.904987], [87.61792, 43.793308], 500) }]); //创建一个巡航器 var navg0 = pathSimplifierIns.createPathNavigator(0, //关联第1条轨迹 { loop: true, //循环播放 speed: 1000000 }); navg0.start(); }

参考链接:https://lbs.amap.com/demo/amap-ui/demos/amap-ui-pathsimplifier/index

在高德地图如何查找导航历史,高德地图怎么找之前的导航记录(3)

栏目热文

高德地图以前导航的信息在哪看(高德地图在哪里找导航记录)

高德地图以前导航的信息在哪看(高德地图在哪里找导航记录)

手机导航除了输入目的地,点击导航,告诉你左转右转这种最基本的用法之外,其实还有一些挺实用的小功能、小技巧。就好像说:蛋炒...

2022-11-07 05:04:55查看全文 >>

高德地图历史导航记录在哪里看(高德怎么看上次导航记录)

高德地图历史导航记录在哪里看(高德怎么看上次导航记录)

相信有很多小伙伴和小编一样,出行少不了高德地图,最近高德地图也为用户们准备了年度大数据报告,通过报告大家可以看看自己今年...

2022-11-07 05:27:25查看全文 >>

高德地图历史导航记录怎么查(高德地图导航过的记录哪里找)

高德地图历史导航记录怎么查(高德地图导航过的记录哪里找)

11月18日,高德地图推出ADAS预警导航功能,可以通过调用手机摄像头或者连接行车记录仪,借助软件内的AI计算,帮助驾驶...

2022-11-07 05:23:08查看全文 >>

高德地图导航记录在哪里(高德地图过去的导航记录怎么找到)

高德地图导航记录在哪里(高德地图过去的导航记录怎么找到)

最新版本的高德地图已经投入使用,相比之前的版本还是有些用不惯,但是又有一一项新的功能,就是你的出行记录已经被曝光了!你之...

2022-11-07 05:20:23查看全文 >>

高德地图有导航历史记录吗怎么找(高德地图能找到以前的导航记录吗)

高德地图有导航历史记录吗怎么找(高德地图能找到以前的导航记录吗)

蓝鲸TMT频道1月17日讯,今日,记者从高德处获悉,高德地图近日推出了停车记录功能,开启该功能后,导航结束时在用户授权的...

2022-11-07 04:52:07查看全文 >>

高德地图怎么查找导航历史记录(高德地图如何看以前的导航记录)

高德地图怎么查找导航历史记录(高德地图如何看以前的导航记录)

南都记者获悉,7月14日,高德上线了“家人地图”功能,可以让家人之间随时看到彼此的位置,特别是针对空巢老人家庭、子女忙于...

2022-11-07 05:07:56查看全文 >>

怎样查看高德地图以前的导航地址(高德地图的导航记录哪里找)

怎样查看高德地图以前的导航地址(高德地图的导航记录哪里找)

真的没有想到,佩洛西访台后,还能带这样的变化,连地图都有修改的空间。今天(8月5日),我驾车出门,打开高德地图的导航。无...

2022-11-07 05:00:13查看全文 >>

奥克兰哪个区最好(奥克兰房价一览表)

奥克兰哪个区最好(奥克兰房价一览表)

资料整理:天下达观奥克兰(Auckland),新西兰北部的滨海城市和新西兰最大城市,面积1086平方公里,人口146万,...

2022-11-07 05:23:01查看全文 >>

新西兰所有城市(新西兰所有城市列表)

新西兰所有城市(新西兰所有城市列表)

属温带海洋性气候,四季温差不大。由于在南半球,新西兰与北半球的中国四季相反。夏季平均气温20℃左右,冬季平均气温10℃...

2022-11-07 05:16:39查看全文 >>

新西兰哪个城市最好(新西兰房价折合人民币)

新西兰哪个城市最好(新西兰房价折合人民币)

最新出炉的《2022生活质量调查》你看了吗?新西兰哪个城市的居民幸福指数最高?生活质量调查》每两年进行一次,访问新西兰九...

2022-11-07 05:28:57查看全文 >>

文档排行