基于QT的电子地图设计与实现
毕业设计是基于QT的电子地图设计与实现 ,用于C语言的开发。2010届本科生毕业设计目录摘要ABSTRACT前言.1.1概述1.2研究背景1.3研究目标1.4需求分析1.41用户需求分析1.4.2功能需求分析1.5本章小结2qT简介2.1QT的背景介绍2.2qT实现的结构原理.2.3 QT GraphicsⅤ iew Framework简介2.3.1 Graphics view层次结构2.3. 2 QGraphicsItem2.4QT应用程序的实现2.5本章小结3 mapinfo绘制电了地图3.1 Mapinfo professiona1简介122010届本科生毕业设计3.2 Mapinfo地图图表3.3 Mapinfo地图图层与图元.143.3.1地图图层.3.3.2地图图元3.4地图的来源3.5电了地图绘制3.5.1 Mapinfo professional地图绘制工具3.5.2 Mapinfo professional绘制地图3.6来MIF和求.MID文件3.7本章小结204系统框架描述214.1系统模块申非214.2主要功能4.3平台简介224.4UP- TECHPXA270-S核心模块资源234.5本章小结.....245详细设计,,255.1程序流程图...255.2界面设计.....275.2.1主窗体设计..,,,,.275.2.2子窗休设计285.3地图的显示..,,,,,,..,,.292010届本科生毕业设计5.3.1地图坐标转换5.3.2地图图元的显示305.3.3显示效果设计.,,,,,,,,,,335.4单源最短路径算法365.4.1 Dijkstra(迪杰斯特拉)算法365.4.2路径节点的存储,,,,,,,375.5木章小结416测试及运行结果6.1测试目标6.2测试预期结果426.3运行结果.6.3.1地图浏览功能.....436.3.2路径规划功能446.4木章小结看鲁457论文总结46参考文献.47谢辞482010届本科生毕业设计前言1.1概述随着新的ARM芯片不断问世以及这些芯片的价格下降,嵌入式产品开始潜移默化的取代早期的些单片机,并在社会各行各业中占有越来越重要的位置,嵌入式产品也由此成为众多工程师选择开发高端产品的芯片首选。QT具备跨平台,易扩展,界面华丽,性能稳定等优点。因此,以嵌入式处理器作为使件半台,以QT作为程序框架,两者的完美结合必将成为未来技术的发展方向1.2研究背景现在,汽车正在普及,道路不断建设,城际间的经济往来更加频繁,活动的区域也越来越大。为了提高生活质量,大量的休活动、探险活动的举行使我并不局限在自己认识的一小块区域中,不认识道路,找不到目的地的情况也屡有发生。就此,各种各样的导航仪逐渐走进我们的生活。无论仆么导航仪最主要的部分都是电子地图。开发电子地图成为了导航仪的关键。根据调査,电了地图制作困难而且价格相当昂贵,给导航伩的开发带来了很多不便。自主绘制电子地图,编写电子地图应用程疗,不管是从经济上还是研究上都具有非常大的意义市面上的嵌入式产品各式各样,用到的嵌入式操作系统自然也是有所不同。如果拥有一个跨平台的程序的话,那将会给我们的开发节省了大量的时间。QT正是一个支持多平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Q是完仝面向对象的很容易扩展,并且允许真正地组件编程。所以使用QT作为应用程序框架是一个不错的选择1.3研究目标基于上述背景,开发一个电子地图项目,使用 windOws cD5.0搭配PXA270开发板来构建这个项目。仗用 mapinfo电子地图绘制软件自主绘制电子地图。利用QT4作为系统应用层的程序框架。根据系统的需求,裁减、移植 windOwsce内核。分析系统功能和接口,添加各种驱动程序,如:USB驱动,(∽M口驱动等根据应用程序屮的钶个功能模块,分析各个模块的用户界面接口和对人机交互图2010届本科生毕业设计形化用户界面的接口设计。1.4需求分析1.4.1用户需求分析目前,我们可以通过各种途径接触电子地图,例如以网页形式的电子地图,如 Google地图、 Google earth、百度地图等,以车载GPS导航仪的电子地图,如 garmin饪我游、纽曼、新科、城际通等,还有以手机导航功能出现的电子地图,越来越多的亍杋将支持导航功能,诺基亚2010年在大规模普及手机导航对此,本顶目采用免费版的QT作为程序框架,并且可以跨平台使用,在廾发成本上有着很大的优势。未来几年,配备电子地图的电子产品市场将逐渐走向成熟,市场需求和产品销量会保持大幅增长,产品供应链中的各类企业将获得曰大商机。尤其是随着产品价格的不断下降,这种快速发展的态势公愈加明显。电子地图在中国市场必然会获得更大的发展空间。由此,本项日也适应用户需求,开发电子地图的相关功能:地图显示功能卫星定位功能、路径导航功能、语音提示功能等。1.4.2功能需求分析根据用户需求,和对产品的定位,划分以下功能表1-1用户需求功能支持功能所需硬件1地图显示2实时定位UP- TECHPXA270-S为硬件开发平台3路径导航4语音提示2010届本科生毕业设计攴持功能分析:1.地图显示:显示当前位置地理信息,包括道路、河流、建筑物,以及标志性建筑的名称,可以通过地图了解的所在位置的周边情况。实时定位:通过不断对对COⅧM凵接收到的信息进行分析,获取当前所在位置并且显示在地图的相应位置上3.路径导航:可以设置日的地点,系统将通过路径优先算法显示最优路径,完成导航功能。4.语音提示:通过简单的语言提示来配合路径导航。所需硬件分析:需要的硬件模块在UP一 TECHPXA270-S硬件实验平台上已一应俱全。在此平台上还配制了8英寸的TFT真彩液晶屏,支持640*480的分辨率。UP一 TECHPXA270S在存储系统方面也有着很高的配置,内置了高性能价格比的 NAND FLASH6M内存,支持大谷量的用户差异图形图片和媒休文件的存储。CPU的能力当然是毋庸置疑的, Intel xscale结构芯片的PXA270在各方面都表现了很强悍的能力,在日前市场上来说也是一款很先进的处理器芯片PXA270处理器是 Intel公司目前性能最为强劲的移动处理器,已经成为高端移动设备屮最受欢迎的处理器之一。PXA270最高主频可达624Mz,它引入了X86架构奔腾4系列上的多媒体技术——MⅨ技术,能够大大提升多媒体处理能力,用户通过该技术可以在VGA上面播放高质量的MPG4视频:同时加入了 Inte lSpeedstep动态电源管理技术,在保证CPU性能的情况下,最大限度地降低移动设备功耗。1.5本章小结木章主要介绍本项目的选题背景、意义,选题目标和项目需求分析,根据品市场和本人技术水平情况,按需求划分软件功能模块,还根据软件功能和现有瓷源的性能对使件需求做」详细分析。2010届本科生毕业设计20T简介2.1QT的背景介绍Qt/ Embedded是著名的Qt库开发商 Trolltech公司开发的面向嵌入式系统的Qt版本,开发人员多为KDE项日的核心开发人员。许多基于Qt的XWindow程序可以非常方便地移植到Qt/ Embedded上,与X11版本的Qt在最大程度上接口兼容,延续了在Ⅹ上的强大功能,在底层彻底摒弃了X1ib,仅米用 framebuffer作为底层图形接口。Qt/ Embedded类库完全采用C++封装。丰富的控件资源和较好的可移植性是Qt/ Embedded最为优秀的·方面,使用Ⅹ下的开发工具 Qt Designer可以直接开发基于Qt/ Embedded的UI(用户操作接口)界面。越来越多的第三方软件公司也开始采用Qt/ Embedded廾发嵌入式下的应用软件。2.20T实现的结构原理Qt/ Embedded是 Trolltech公司开发的面向嵌入式系统的Qt版本,与Ⅹ11版本的Qt在最大程度上接口兼容,采用帧缓存( framebuffer)作为底层图形接口。Qt/ Embedded类库完全采用C艹+封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/ Embedded apl可用于多种开发项∏。Qt/ Embedded的实现结构如下:QT的应用程序QT的图形事件QT/EmbeddedFrameBuffer设备驱动操作系统硬件平台图21QT的实现结构图2010届本科生毕业设计Qt/ Embedded的底层图形引擎基于 framebuffer。 Framebuffer驱动程序的实现分为两个方面:一方面是对LCD及其相关部分的初始化,包括画在缓冲区的创建和对DMA通道的设置;另外一方面是对画面缓冲区的读写,具体到代码为read、 write、 Iseek等系统调用接凵。至于将画面缓冲区的内容输出到LCD显示屏上,则由硬件自动完成。对于软件来说是透明的。当对于DMA通道和画面缓冲区设置完成后,DMA开始正常工作,并将缓冲区中的内容不断发送到LCD上。这个过程是基于DMA对于LCD的不断刷新的基于该特性, framebuffer驱动程序必须将画面缓冲区的存储空间(物理空间)重新映射到一个不加高缓存和写缓存的虚拟地址区间中,这样能才保证应用程序通过map将该缓存映射到用户空间后,对于该画面缓存的写操作能够实时的体现在LCD上。QT程序是基于C+编写的,图形用户界面编程同时需要运行效率和高水平的灵活性。Qτ通过结合C+的速度为这一领域提供了Qt对象模型。Qt把下面这些特性添加到了C++当中和被称为信号和槽的非常强大的机制;可查询和可设计的属性项;强大的事件和事件过滤器:根据上下文进行国际化的字符串翻译;完善的时间间隔驱动的计时器等。许多Qt的特性是基于Q0 bject的继承,通过标准C++投术实现的。Q^ pplication是必须构造的吐t主对象,需要在一开始的时候就构造这个对象,并把命令行参数传递给这个对象,每个Qt应用程序有且仪有一个APplication对象,该对象必须在做其他事之前创建,这个对象处理一些底层操作,如事件处理、字符串本地化和控制界面外观等。信号和信号处理函数是(UⅠ应用程序用来响应用户输入的基本机制,乜是所有GUI库的核心特征,Qt的信号处理机制由信号( signa1)和槽(slot)构成,它们相当于GTK+中的信号和回调函数。在Qt中回调函数就叫做槽。信号和槽用于对象间的通讯,它的基本语法为:connect(objectl, signal, object2, slot1)2.3 QT Gr aphics view Framework简介2.3.1 Graphics view层次结构Graphics view提供一个强人的自定义2D平面图元并处理它们之间相互作用的接口,以及将一个这些图元视化的view控件,它支持旋转和缩放。该框架还包含个事件传递机制,允许画布和画布上的图元之问精确
- 2020-12-08下载
- 积分:1
史上最全最详细的flink 中文教程(一千多页pdf).pdf
最全最详细的flink 中文教程,详细介绍各个接口,并附带demo(一千多页pdf)最全最详细的flink 中文教程,详细介绍各个接口,并附带demo(一千多页pdf)执行配置1.5.7.1程序打包和分布式执行1.5.7.2并行执行1.5.73执行计划1.5.74重启策略1.5.7.5类库158FlinkCeP-Fink的复杂事件处理1.5.8.1风暴兼容性Beta158.2Gelly Flink Graph AP158.3图AP1.5.84迭代图处理1.5.8.4.1类库方法1.584.2图算法1.5.8.4.3图形生成器1.5.844二分图1584.5FlinkML- Flink的机器学习1.5.85快速入门指南1.5.8.5.1如何贡献5.8.5.2交义验证1.58.5.3Distance metrics5.8.54K-Nearest Neighbors关联158.55MinMax scaler1.5.8.5.6Multiple Linear regression1.5.8.5.7在管道的引擎盖下看158.5.8Polynomial Features158.59随机异常值选择1.5.8.5.10Standard scaler158.5.11Alternating Least squares1.5.8.5.12SVM using COCoA1.58.5.13最佳实践1.59AP迁移指南1.5.10部署和运营集群和部署1.6.1独立群集1.6.1.1YARN设置1.6.1.2Mesos设置1.6.1.3Kubernetes设置1.6.14Docker设置1.6.1.5亚马逊网络服务(AWS)1.6.1.6Google Compute Engine设置1.6.1.7MapR设置1.6.1.8Hadoop集成1.6.19JobManager高可用性(HA)1.6.2状态和容错16.3检查点1.6.3.1保存点1.6.3.2状态后台1.6.3.3调整检查点和大状态1.6.3.4配置1.64生产准备清单1.6.5命令行界面166Scala REPl1.6.7Kerberos身份验证设置和配置168SSL设置6.9文件系统1.6.10升级应用程序和Fnk版本1.6.11调试和监控度量1.7.1如何使用日志记录1.7.2历史服务器1.7.3监控检查点1.74监测背压1.7.5监控 REST AP1.7.6调试 Windows和事件时间1.7.7调试类加载1.7.8应用程序分析1.7.9Flink Development1.8将 Flink导入|DE1.8.1从 Source建立Fink8.2内幕组件堆栈1.9.1数据流容错19.2工作和调度19.3任务生命周期194文件系统19.55Apache Flink文档Apache Flink文档译者: flink. sob.cn在线阅读●PDF格式EP∪B格式●MOB格式代码仓库本文档适用于 Apache Flink17 SNAPSHOT版。这些页面的建立时间为09/08/18,中部标准时同07:53:00°Apache Flink是一个用于分布式流和批处理数据处理的开源平台Fnk的核心是流数据流引擎’为数据流上的分布式计算提供数据分发’通信和容错。 Flink在流引擎之上构建批处理’覆盖本机达代支持,托管内存和程序优化。第一步概念∶从Fink的教据流编程模型和分布式运行时环境的基本概念开始。这将有助于您了解文档的其他部分·包括设置和编程指南σ我们建议您先闖读这些部分教程:o实现并运行 Data strean应用程序o设置本地Fink群集编程指南:您可以阅读我们关于基本AP|概念和 Data Stream A門或 Data Set APl的指南’以了解如何编写您的第一个Fink程序。部署在将Fink工作投入生产之前,请阅读生产准备清单发行说明发行说明涵盖了Fink版本之间的重要更改。如果您计划将Fink设置升级到更高版本,请仔细阅读这些说明。Fink1.6发行说明Fink1.5发行说明。外部资源6Apache Flink文档● Flink Forward: Flink forward网站和 You tube上提供了以往会议的讲座。使用 Apache Flink进行强大的流处理是一个很好的起点●培训∷数据工匠的培训材料包括幻灯片·练习和示例解決方案。·博客: Apache Flink和数据工匠博客发布了有关Fink的频繁深入的技术文章概念概念数据流编程模型数据流编程模型译者: flink. sob.cn抽象层次Flink提供不同级别的抽象来开发流/批处理应用程序SQLHigh-level LanguageTable AplDeclarative dslDataStream/Data Set APICore aplsStateful Stream ProcessingLoW-level building blockstreams, state, [event] time)●最低级抽象只提供有状态流。它通过卩 rocess Function嵌入到 Datastream aF丨中。它允许用户自由处理来自一个或多个流的事件,并使用一致的容错状态此外,用户可以注册事件时间和处理时间回调,允许程序实现复杂的计算实际上,大多数应用程序不需要上逑低级抽象,而是针对 Core a叫编程,如Data stream AP(有界/无界流)和 Data set ap(有界数据集)。这些流畅的A門提供了用于数据处理的通用构建坎’例如各种形式的用户指定的转换’连接’聚合’窗口’状态等。在这些AP丨中处理的数据类型在相应的编程语言中表示为类低级尸 rocess function与 Data stream A尸/集成’因此只能对某些算子操作进行低级抽象。该数据集A尸隈提供的有限数据集的其他原语,如循环/迭代。●该 Table ap是为中心的声明性DSL表,其可被动态地改变的表(表示流时)。该 Table a門遵循(扩展)关系模型:表有一个模式连接(类似于在关系数据库中的表)和A門|提供可比的算子操作·如选择,项目,连接,分组依据’聚合等 Table a門程序以声明方式定乂应该执行的逻辑算子操作,而不是准确指定算子操作代码的外观。虽然 Table ap丨可以通过各种类型的用户定义西数进行扩展’但它的表现力不如 Core AP’但使用更简洁(编写的代码更少)。此外, Table a門l程序还会通过优化程序·在执行之前应用优化规则。可以在衣和 Data strean/ Data set之同无缝转换’允许程序混合7 ble aP以及Data Stream u Data Set API数据流编程模型Flink提供的最高级抽象是SQL。这种抽象在语义和表达方面类似于7ab/eA門·但是将程序表示为SQL查询表达式。在SQL抽象与 Table apl紧密地相互作用’和SQL查询可以通过定义表来执行7ab/eA尸程序和数据流Flink程序的基夲构建块是流和转换。(请注意,Fink的 Data set a|中使用的Data Set也是内部流-稍后会详细介绍。)从概念上讲·流是(可能水无止境的数据记录流’而转换是将一个或多个流作为一个或多个流的算子操作。输入’并产生一个或多个输出流。执行时’Fink程序映射到流数据流’由流和转换算亍纽成σ毎个数据流都以一个或多个源开头,并以一个或多个接收器结東。数据流类似于任意有向无环图(DAG)°尽管通过迭代结构允许特殊形式的循环,但为了简单起见’我们将在大多数情况下对此进行掩饰。Datastream lines env. addsourceSourrenew FlinkKafkaconsumer>(.)Datastream Event> events =lines. map((line)-> carse(line)了FBs∫n?ato胃Datastrearrs-atis-.cs> statskerby (id"!fransformationtimewindow (Time, seconds(10)apply(new MyWNindowAggregationFurction();stas. addsink(new Rolling sink(path),SinkLsourceT! ansforratio门sinkperatorOperatorsOperatorkey By(/Sourcemap() window()SinkapplystreamStreaming Datarow通常,程序中的转換与数据流中的算子之同存在一对一的对应关系。但是,有时一个转换可能包含多个转换算子源流和接收器记录在流连接器和批处理连接器文档中。 Data Stream算子和 Data Set转换中记录了转换。10
- 2020-11-04下载
- 积分:1