卫星地图导航的思路

devtools/2024/9/25 15:25:03/

一、背景情况

1、当前卫星定位系统很发达。

2、通过人造卫星定位系统,用一颗卫星无线导航芯片就能实时获取当前的经纬和高度坐标。

3、各大地图导航厂商通过实地定位测绘建筑物和各种交通设施的位置,创建电子地图,就能根据卫星终端实时定位,从而在电子地图中找到对应的经纬位置。


二、卫星地图导航的前提条件

1、建立一套完善的,高精度的卫星导航系统。


2、手机等终端拥有兼容的卫星定位芯片。


3、终端拥有一套方便使用该定位芯片的软件接口库。
例如:JavaScript脚本的定位接口,安卓的卫星定位传感器接口。


4、地图厂商拥有一定区域内的实地定位测绘数据,并且用图形来绘制大厦、湿地、河流等地理标志物。

有的地方需要人工标注,添加介绍信息。
该测绘数据方便用来绘制电子设备中的电子地图。


三、导航APP绘制电子地图的思路

(一)选定一个经纬坐标区域,用默认的比例尺。


(二)、用图形库来绘制各种地理图标。
1、绘制河流,山,公路,建筑。

2、绘制立体图,卫星高清图。

3、绘制商场和大厦每一层的商户信息。

4、如果视角变化,地图也重新绘制。

地图数据一般事先下载存在设备里。
按照顺序,先绘制什么,后绘制什么。

每条河流,可以取几个关键点,最后用贝塞尔曲线来绘制,河水颜色一般都是蓝色,再绘制一个河的名字在中间。


(三)根据用户的操作来不断重新绘制
1、用户调整视角和俯仰方向后,重新计算,重新绘制。

2、用户进行缩放时,根据缩放来隐藏和显示某些地标和单位名。
需要确定地标的等级,显示在相应的缩放级别。


四、需要及时更新地图信息

1、有的时候道路和建筑、经营者每天都在变化和更新。

2、需要地图经营者不断地来实地测绘和调整标注。
工作量很大。


五、怎么进行卫星导航?

(一)用法
1、输入起点和终点,自动根据交通方式来计算出行路线。

2、用户选择路线和交通方式开始导航后,实时跟踪和定位当前位置,提示前进多少米,哪里转向,红绿灯,路口等信息。


(二)具体实现

1、确定节点
把起始位置和终点位置附近的所有公交站点、线路、地铁站、高铁站各自都生成一个节点。

地铁站是一个节点。
路口是一个节点。    
公交站点是一个节点。   
收费站是一个节点。
红绿灯是一个节点。

2、确定节点之间的有向路线
把这些节点构成一个有向图结构。

根据有向图的算法,求两个节点之间的最短路径。
节点和节点之间是有方向的。
在双向马路中出行两边方向相反。


3、根据出行方式和公路等级,筛选出路线和路线的坐标相关信息,最终找到关键的一群节点,也就确定了路线。

常见出现方式:公共交通、智行、骑车、自驾、地铁、走路。

公路等级:国道高速、市级道、城区道、乡村道、人行道。

路线的关键节点:路的起点、终点、方向、弯曲信息、长度。


4、一条最佳导航路线是根据计算获得的。
首先根据交通方式排斥一些路线,例如坐公交肯定排除附近的地铁节点。

然后找出起始节点和终点节点之间的那些交通节点。

一条公路的通行方向,转弯属性,路口通向哪里,路口红绿灯情况也需要判断。


5、指定路线后,开始导航
算法如下:

while(退出导航为假){1、获取一次卫星定位。2、根据定位,及时更新当前在地图上的位置信息。(需要重新绘制)3、判断当前是否在这条导航路线的经纬位置区域中。如果偏离导航,提示您已经偏离路线。还可以提示是否重新规划路线。4、休眠一段时间,可能是5毫秒。}

导航的提示信息一般通过提示框显示,例如直行500米,过路口右转。


六、主要难点

(一)电子地图的绘制

(二)根据地图信息,根据起点和终点的经纬坐标,计算起点和终点两者之间所有可能的路线,选择一条最短的。

(三)实地考察和记录地理位置。

(四)设计文件格式来存放地图的各种要素的信息。
要求根据经纬坐标方便查询位置。

要求能记录道路,记录是否可以行机动车,步行,自行车骑行。

要求记录公交站牌的经纬坐标,每个站点的先后顺序。


http://www.ppmy.cn/devtools/51168.html

相关文章

SSH概念、用途、详细使用方法

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

AI预测福彩3D采取888=3策略+和值012路或胆码测试6月15日新模型预测第5弹

今天咱们继续验证新模型的8码定位3,目前新模型新算法8码定位经过4次测试,已命中3次,9码定位连续命中4次。咱们重点是预测8码定位3+和值012胆码。有些朋友看到我最近几篇文章没有给大家提供缩水后的预测详情,在这里解释…

Excel中多条件判断公式怎么写?

在Excel里,这种情况下的公式怎么写呢? 本题有两个判断条件,按照题设,用IF函数就可以了,这样查看公式时逻辑比较直观: IF(A2>80%, 4, IF(A2>30%, 8*(A2-30%),0)) 用IF函数写公式,特别是当…

IDEA 设置主题、背景图片、背景颜色

一、设置主题 1、点击菜单 File -> Settings : 点击 Settings 菜单 2、点击 Editor -> Color Scheme -> Scheme, 小哈的 IDEA 版本号为 2022.2.3 , 官方默认提供了 4 种主题: Classic Light (经典白) ;Darcula (暗黑主…

最大连续子序列和问题详解

最大连续子序列和问题如下:给定一个数字序列,求i,j,使得最大,输出这个最大和。 这个问题如果用暴力来做,枚举左端点和右端点,需要的复杂度,而计算需要的复杂度,因此总时间复杂度为。…

【C++】C/C++内存管理

C/C内存管理 C/C内存分布C语言中的内存管理方式C中内存管理方式内置类型自定义类型 operator new和operator delete函数new和delete实现原理定位new表达式(placement-new)malloc/free与new/delete的区别内存泄漏何为内存泄漏内存泄漏的分类如何检测内存泄…

opencv 通过滑动条调整阈值处理、边缘检测、轮廓检测、模糊、色调调整和对比度增强参数 并实时预览效果

使用PySimpleGUI库创建了一个图形用户界面(GUI),用于实时处理来自OpenCV摄像头的图像。它允许用户应用不同的图像处理效果,如阈值处理、边缘检测、轮廓检测、模糊、色调调整和对比度增强。用户可以通过滑动条调整相关参数。 完整代码在文章最后,可以运行已经测试; 代码的…

分布式系统中的经典思想实验——两将军问题和拜占庭将军问题

文章目录 一、两将军问题1.1 问题描述1.2 深入理解两将军问题1.3 实验结论 二、拜占庭将军问题2.1 问题描述2.2 深入理解拜占庭将军问题2.3 解决方案 三、两将军和拜占庭问题的关系3.1 区别和联系3.2 应用与现实意义 参考资料 一、两将军问题 1.1 问题描述 两将军问题描述的是…