资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
基于QT的电子地图设计与实现
摘 要
人们生活质量不断提高, 城际间的往来更加频繁, 导航仪成为了生活中不可缺少的部分。电子地图是导航仪最主要的部分, 而电子地图的绘制工作颇为繁琐, 价格也比较昂贵, 给导航仪的开发带来了很大的麻烦。如果掌握了电子地图的绘制方法, 那么不但带研发上具有重要意义, 而且将带来更大的经济效益。就此, 本课题对电子地图的绘制和相关程序的编写开展了研究。
课题对Trolltech公司的QT/Embedded的深入分析和研究的基础上, 开发了基于Intel Pxa270的电子地图。地图的数据来源于实际, 利用Mapinfo9.5自主绘制电子地图。经过QT的API与Mapinfo图表数据结合, 把地图显示在QT的程序框架上。进而进行了相关的功能的设计, 主要包括地图引擎的设计、 路径规划设计、 实时定位设计等。
关键词: Mapinfo9.5 QT/Embedded 电子地图
QT-based Design and Implementation of Electronic Map
ABSTRACT
People constantly improve the quality of life, inter-city exchanges between the more frequent, navigation has become an indispensable part of life. Navigation electronic map is the most important part, the electronic map will work quite complicated, the price is also more expensive, to navigation systems development is a big trouble. If the master electronic map drawing method, then not only with research and development of great significance, and will bring greater economic benefits. In this connection, the subject of the e-map rendering and related research carried out the preparation procedures.
Subject to the Trolltech's QT / Embedded-depth analysis and research based on the development of a digital map based on Intel Pxa270. Map data from the actual use of Mapinfo9.5 own digital maps drawing. QT's API through the chart data combined with Mapinfo, the map shows the procedure in the QT framework. Then carried out the functions related to the design, including the design of the engine map, path planning, real-time location and design.
Key words: Mapinfo9.5 QT/Embedded Electronic map
目 录
摘 要 I
ABSTRACT II
1 前言 1
1.1概述 1
1.2研究背景 1
1.3研究目标 1
1.4需求分析 2
1.4.1用户需求分析 2
1.4.2功能需求分析 2
1.5 本章小结 3
2 QT简介 4
2.1 QT的背景介绍 4
2.2 QT实现的结构原理 4
2.3 QT Graphics View Framework简介 5
2.3.1 Graphics View层次结构 5
2.3.2 QGraphicsItem 8
2.4 QT应用程序的实现 10
2.5 本章小结 11
3 mapinfo绘制电子地图 12
3.1 MapInfo Professional简介 12
3.2 MapInfo地图图表 13
3.3 MapInfo地图图层与图元 14
3.3.1地图图层 14
3.3.2地图图元 14
3.4 地图的来源 15
3.5 电子地图绘制 17
3.5.1 MapInfo Professional地图绘制工具 17
3.5.2 MapInfo Professional绘制地图 17
3.6 *.MIF和*.MID文件 18
3.7本章小结 20
4 系统框架描述 21
4.1系统模块 21
4.2主要功能 21
4.3平台简介 22
4.4 UP-TECHPXA270-S核心模块资源 23
4.5 本章小结 24
5 详细设计 25
5.1程序流程图 25
5.2界面设计 27
5.2.1主窗体设计 27
5.2.2 子窗体设计 28
5.3 地图的显示 29
5.3.1地图坐标转换 29
5.3.2地图图元的显示 30
5.3.3显示效果设计 33
5.4 单源最短路径算法 36
5.4.1 Dijkstra(迪杰斯特拉)算法 36
5.4.2 路径节点的存储 37
5.5 本章小结 41
6 测试及运行结果 42
6.1 测试目标 42
6.2 测试预期结果 42
6.3 运行结果 42
6.3.1 地图浏览功能 43
6.3.2 路径规划功能 44
6.4 本章小结 45
7 论文总结 46
参考文献 47
谢 辞 48
1 前言
1.1概述
随着新的ARM芯片不断问世以及这些芯片的价格下降, 嵌入式产品开始潜移默化的取代早期的一些单片机, 并在社会各行各业中占有越来越重要的位置, 嵌入式产品也由此成为众多工程师选择开发高端产品的芯片首选。QT具备跨平台, 易扩展, 界面华丽, 性能稳定等优点。因此, 以嵌入式处理器作为硬件平台, 以QT作为程序框架, 两者的完美结合必将成为未来技术的发展方向。
1.2研究背景
现在, 汽车正在普及, 道路不断建设, 城际间的经济往来更加频繁, 活动的区域也越来越大。为了提高生活质量, 大量的休闲活动、 探险活动的举行使我们并不局限在自己认识的一小块区域中, 不认识道路, 找不到目的地的情况也屡有发生。就此, 各种各样的导航仪逐渐走进我们的生活。
无论什么导航仪最主要的部分都是电子地图。开发电子地图成为了导航仪的关键。根据调查, 电子地图制作困难而且价格相当昂贵, 给导航仪的开发带来了很多不便。自主绘制电子地图, 编写电子地图应用程序, 不论是从经济上还是研究上都具有非常大的意义。
市面上的嵌入式产品各式各样, 用到的嵌入式操作系统自然也是有所不同。如果拥有一个跨平台的程序的话, 那将会给我们的开发节省了大量的时间。QT正是一个支持多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展, 而且允许真正地组件编程。因此使用QT作为应用程序框架是一个不错的选择。
1.3研究目标
基于上述背景, 开发一个电子地图项目, 使用windows CE5.0搭配PXA270开发板来构建这个项目。使用mapinfo电子地图绘制软件自主绘制电子地图。利用QT4作为系统应用层的程序框架。根据系统的需求, 裁减、 移植windowsCE内核。分析系统功能和接口, 添加各种驱动程序, 如: USB驱动, COM口驱动等。根据应用程序中的每个功能模块, 分析各个模块的用户界面接口和对人机交互图形化用户界面的接口设计。
1.4需求分析
1.4.1用户需求分析
当前, 我们能够经过各种途径接触电子地图, 例如以网页形式的电子地图, 如Google地图、 Google Earth、 百度地图等, 以车载GPS导航仪的电子地图, 如garmin任我游、 纽曼、 新科、 城际通等, 还有以手机导航功能出现的电子地图, 越来越多的手机将支持导航功能, 诺基亚 在大规模普及手机导航。
对此, 本项目采用免费版的QT4作为程序框架, 而且能够跨平台使用, 在开发成本上有着很大的优势。
未来几年, 配备电子地图的电子产品市场将逐渐走向成熟, 市场需求和产品销量会保持大幅增长, 产品供应链中的各类企业将获得巨大商机。特别是随着产品价格的不断下降, 这种快速发展的态势会愈加明显。电子地图在中国市场必然会获得更大的发展空间。
由此, 本项目也适应用户需求, 开发电子地图的相关功能: 地图显示功能、 卫星定位功能、 路径导航功能、 语音提示功能等。
1.4.2功能需求分析
根据用户需求, 和对产品的定位, 划分以下功能:
表1-1 用户需求功能
支持功能
所需硬件
1 地图显示
2 实时定位
3 路径导航
4 语音提示
UP-TECHPXA270-S为硬件开发平台
支持功能分析:
1. 地图显示: 显示当前位置地理信息, 包括道路、 河流、 建筑物, 以及标志性建筑的名称, 能够经过地图了解的所在位置的周边情况。
2. 实时定位: 经过不断对对COM口接收到的信息进行分析, 获取当前所在位置, 而且显示在地图的相应位置上。
3. 路径导航: 能够设置目的地点, 系统将经过路径优先算法显示最优路径, 完成导航功能。
4. 语音提示: 经过简单的语言提示来配合路径导航。
所需硬件分析:
需要的硬件模块在UP-TECHPXA270-S硬件实验平台上已一应俱全。在此平台上还配制了8英寸的TFT真彩液晶屏, 支持640*480的分辨率。UP-TECHPXA270-S在存储系统方面也有着很高的配置, 内置了高性能价格比的NAND FLASH 64M内存, 支持大容量的用户差异图形图片和媒体文件的存储。
CPU的能力当然是毋庸置疑的, Intel Xscale结构芯片的PXA270在各方面都表现了很强悍的能力, 在当前市场上来说也是一款很先进的处理器芯片。PXA270处理器是Intel公司当前性能最为强劲的移动处理器, 已经成为高端移动设备中最受欢迎的处理器之一。PXA270最高主频可达624MHz, 它引入了X86架构奔腾4系列上的多媒体技术——MMX技术, 能够大大提升多媒体处理能力, 用户经过该技术能够在VGA上面播放高质量的MPGE4视频; 同时加入了Intel SpeedStep动态电源管理技术, 在保证CPU性能的情况下, 最大限度地降低移动设备功耗。
1.5 本章小结
本章主要介绍本项目的选题背景、 意义, 选题目标和项目需求分析, 根据产品市场和本人技术水平情况, 按需求划分软件功能模块, 还根据软件功能和现有资源的性能对硬件需求做了详细分析。
2 QT简介
2.1 QT的背景介绍
Qt/Embedded 是著名的Qt库开发商Trolltech公司开发的面向嵌入式系统的Qt版本, 开发人员多为KDE项目的核心开发人员。许多基于Qt的X Window程序能够非常方便地移植到Qt/Embedded上, 与X11版本的Qt在最大程度上接口兼容, 延续了在X上的强大功能, 在底层彻底摒弃了X lib, 仅采用framebuffer作为底层图形接口。Qt/Embedded类库完全采用C++封装。丰富的控件资源和较好的可移植性是Qt/Embedded最为优秀的一方面, 使用X下的开发工具Qt Designer能够直接开发基于Qt/Embedded的UI( 用户操作接口) 界面。越来越多的第三方软件公司也开始采用Qt/Embedded开发嵌入式下的应用软件。
2.2 QT实现的结构原理
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本, 与X11版本的Qt在最大程度上接口兼容, 采用帧缓存( framebuffer) 作为底层图形接口。Qt/Embedded类库完全采用C++封装, 而且有着丰富的控件资源以及较好的可移植性, 大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如下:
图2-1 QT的实现结构图
Qt/Embedded 的底层图形引擎基于framebuffer。Framebuffer 驱动程序的实现分为两个方面: 一方面是对LCD及其相关部分的初始化, 包括画在缓冲区的创立和对DMA通道的设置; 另外一方面是对画面缓冲区的读写, 具体到代码为read、 write、 lseek等系统调用接口。至于将画面缓冲区的内容输出到LCD显示屏上, 则由硬件自动完成。对于软件来说是透明的。当对于DMA通道和画面缓冲区设置完成后, DMA开始正常工作, 并将缓冲区中的内容不断发送到LCD上。这个过程是基于DMA对于LCD的不断刷新的。基于该特性, framebuffer驱动程序必须将画面缓冲区的存储空间( 物理空间) 重新映射到一个不加高缓存和写缓存的虚拟地址区间中, 这样能才保证应用程序经过mmap将该缓存映射到用户空间后, 对于该画面缓存的写操作能够实时的体现在LCD上。
QT程序是基于C++编写的, 图形用户界面编程同时需要运行效率和高水平的灵活性。Qt经过结合C++的速度为这一领域提供了Qt对象模型。
Qt把下面这些特性添加到了C++当中:
一种被称为信号和槽的非常强大的机制; 可查询和可设计的属性项; 强大的事件和事件过滤器; 根据上下文进行国际化的字符串翻译; 完善的时间间隔驱动的计时器等。
许多Qt的特性是基于QObject的继承, 经过标准C++技术实现的。
QApplication是必须构造的Qt主对象, 需要在一开始的时候就构造这个对象, 并把命令行参数传递给这个对象, 每个Qt应用程序有且仅有一个QApplication对象, 该对象必须在做其它事之前创立, 这个对象处理一些底层操作, 如事件处理、 字符串本地化和控制界面外观等。
信号和信号处理函数是GUI应用程序用来响应用户输入的基本机制, 也是所有GUI库的核心特征, Qt的信号处理机制由信号(signal)和槽(slot)构成, 它们相当于GTK+中的信号和回调函数。在Qt中回调函数就叫做槽。
信号和槽用于对象间的通讯, 它的基本语法为:
connect(object1,signal1,object2,slot1);
2.3 QT Graphics View Framework简介
2.3.1 Graphics View层次结构
Graphics View 提供一个强大的自定义2D平面图元并处理它们之间相互作用的接口, 以及将一个这些图元可视化的view控件, 它支持旋转和缩放。该框架还包含一个事件传递机制, 允许画布和画布上的图元之间精确地双向交互。图元处理鼠标键盘事件, 如鼠标按下、 移动、 释放、 点击和双击事件, 也跟踪鼠标移动。另外, Graphics View使用BSP树来提供快速的图元搜索, 从而能够支持大画布显示, 甚至是包含数百万图元的画布。
Graphics View架构分作3层。最底层是一系列QGraphicsItem, 也就是最基本的图元。所有要显示的对象都必须包装成QGraphicsItem或其子类的对象, 然后调用QGraphicsScene::addItem方法把图元加入画布中。中间层是QGraphicsScene对象都添加或删除图元。当显示QGraphicsScene对象时, 它包含的所有的QGraphicsItem对象都会显示。最上层是QGraphicsView, 这是个窗体控件, 专门负责画布的显示。QGraphicsView和QGraphicsScene类似于MVC架构中的Model和View的关系, 或者Observer设计模式的Data和View的关系。QGraphicsView控制图像显示, 并负责处理或向QGraphicsScene或QGraphicsItem转发键盘鼠标等用户交互事件; QgraphicsScene包括要显示的QGraphicsItem列表数据信息。QGraphicsView和QGraphicsScene是多对一的关系, 即一个QGraphicsScene能够放多个QGraphicsView中以不同方式显示。
图2-2 Graphics View三元素之间的关系
Graphics View基本类有各自不同的坐标系。QGraphicsScene 类的坐标系是以中心为原点(0,0)。
图2-3 QGraphicsScene的坐标系
QGraphicsView 类继承自QWidget类, 因此它和其它的QWidget类一样以窗口的左上角作为自己坐标系的原点。
图2-4 QGraphicsView 的坐标系
QGraphicsItem则有自己的坐标系, 在调用QGraphicsItem类的paint()函数重画项目时是以此坐标系为基准。
图2-5 QGraphicsItem 的坐标系
3种坐标系统能够相互转换。QT提供了相应的接口。例如, 经过调用QGraphicsItem::mapToScene和QGraphicsItem::mapFormScene能够在Item坐标系统和Scene坐标系统之间进行转换, QGraphicsItem::mapToParent和QGraphicsItem::mapParent能够在Item坐标系统和它的父Item坐标系统之间进行转换, QGraphicsView::mapFromScene和QGraphicsView::mapToScene能够在View坐标系统和Scene坐标系统之间进行转换。
2.3.2 QGraphicsItem
QGraphicsItem提供了丰富的子类为程序的编写带来了很大的方便。有QGraphicsEllipseItem, QGraphicsLineItem, QGraphicsPathItem, QGraphicsPixmapItem, QGraphicsPolygonItem, QGraphicsRectItem, QGraphicsSimpleTextItem, QGraphicsTextItem一共8种。
在地图的绘制中QGraphicsLineItem可绘制道路, 河流。QGraphicsPathItem能够绘制一些曲线。
图2-6 QGraphicsLineItem 图2-7 QGraphicsPathItem
QGraphicsPixmapItem能够把一些通用的小图标添加到地图中, 例如酒店, 车站, 书店, 政府部门等。
图2-8 QGraphicsPixmapItem
QGraphicsPolygonItem能够灵活的绘制出一些多边形建筑物, 或者行政区域, 湖泊等。
图2-9 QGraphicsPolygonItem
QGraphicsSimpleTextItem、 QGraphicsTextItem则能够在地图上添加文字说明或者地标。
图2-10 QGraphicsSimpleTextItem 图2-11 QGraphicsTextItem
2.4 QT应用程序的实现
由以上简介可知, Qt是一个创立GUI程序的C++类库, 编写Qt应用程序的主要工作是基于已有的Qt类编写用户类。
Qt提供了一组范围相当广泛的C++类库, 并包含了几种命令行和图形界面的工具, 有效地使用这些工具能够加速开发过程。
Qt Designer: Qt设计器。用来可视化地设计应用程序界面。
Qt Linguist: Qt语言学家。用来翻译应用程序。以此提供对多种语言的支持。
Qmake: 使用此工具能够由简单的、 与平台无关的工程文件来生成编译所需的Makefile。
Qt Assistant: 关于Qt的帮助文件。类似于MSDN。能够快速地发现你所需要的帮助。
moc: 元对象编译器。
uic: 用户界面编译器。在程序编译时被自动调用, 经过ui_*.h文件生成应用程序界面。
Qt应用程序的设计使用基于工程的方法, 并经过.pro文件进行工程管理。实现应用程序的第一步是编写.pro文件, 然后使用QT4自带的qmake工具生成Makefile, 最后进行源代码的编译。
Qmake的过程如下:
qmake –project //生成.pro的工程文件
qmake //生成Makefile
nmake //编译
2.5 本章小结
随着越来越多的第三方软件公司利用Qt/Embedded开发嵌入式Linux下的应用软件, Qt的应用已经越来越广泛。本章主要介绍了QT的背景和描述了QT实现的结构原理, 还简述了QT的相关特性。另外, 也介绍了QT应用程序开发时的相关工具。
3 mapinfo绘制电子地图
3.1 MapInfo Professional简介
图3-1 mapinfo启动界面
MapInfo是美国MapInfo公司的桌面地理信息系统软件, 是一种数据可视化、 信息地图化的桌面解决方案。它依据地图及其应用的概念、 采用办公自动化的操作、 集成多种数据库数据、 融合计算机地图方法、 使用地理数据库技术、 加入了地理信息系统分析功能, 形成了极具实用价值的、 能够为各行各业所用的大众化小型软件系统。MapInfo 含义是”Mapping + Information( 地图+信息) ”即: 地图对象+属性数据。
1986年MapInfo公司成立并推出了第一个版本—MapInfo for DOS V1.0及其开发工具MapBasic, 此后又推出了DOS平台的2.0和3.0版。1995年底MapInfo发布了MapInfo Professional, 是一个以Windows 95和Windows NT为平台的桌面地理信息系统。当前该软件的最新版本是MapInfo Professional9.5及其系列软件。
MapInfo Professional是一套强大的基于Windows平台的地图化解决方案, 能够方便地将数据和地理信息的关系直观的展现, 其复杂而详细的数据分析能力可帮助用户从地理的角度更好地理解各种信息; 能够增强报表和数据表现能力, 找出以前无法看到的模式和趋势, 创立高质量的地图以便做出高效的决策; 凭借其新特性和增强功能, MapInfo Professional 使得桌面地图化和分析功能更快和更容易-并可延伸至整个企业。
MapInfo Professional提供一整套功能强大的工具来进行复杂的商业地图化、 数据可视化和GIS功能。经过MapInfo Professional可连接本地及服务器端的数据库, 创立地图和图表以揭示数据行列背后的真正含义。也能够定制MapInfo Professional以满足用户的特定需要。 支持Oracle8i完全读/写, 经过OCI对Oracle8i及经过ODBC对其它数据源的实时访问。
3.2 MapInfo地图图表
使用mapinfo软件可对地图进行处理、 查询、 编辑和分析等操作, 前提条件是: 首先应该对地图信息化, 而执行该操作的前提就是建立图表。
图表由行和列组成, 行含了特定地理特性或事件的等信息, 而列包含有关表中数据项的特定类型信息。
图表的组成类型:
一个典型的mapinfo表将主要由*.TAB、 *.MAP、 *.ID和*.DAT文件格式组成。
*.TAB 属性数据的表结构文件
*.MAP 空间数据文件
*.DAT 属性数据文件
*.ID 交叉索引文件
图3-2 mapinfo图表之间联系
3.3 MapInfo地图图层与图元
3.3.1地图图层
每一个可用地图表示的mapinfo表都能在地图上作为图层显示。一个mapinfo电子地图可能包含很多不同图层, 而每一层都包含了地图的不同部分。经过将这些图层一层层叠加, 就能够看到整个地图信息。
北理工 宁堂
【标注】
图层
【点】
图层
【边界】
图层
图3-3 多个图层组成mapinfo地图
3.3.2地图图元
图元是图层中的一个元素。在mapinfo中共育4种基本图元样式。
1. 区域对象
区域对象特指覆盖给定区域的闭合对象。其中包括多边形、 椭圆和矩形, 例如国家边界、 邮政边界等。
2. 点对象
点对象表示数据的单一位置。其示例有饭店。
3. 线对象
线对象是指覆盖指定给定距离的开发对象, 包括线、 折线、 弧线等, 其示例有街道、 河流和电力线路等。
4. 文本对象
文本对象是特指用于说明地图或其它对象文本, 其示例有标注或标题等。
3.4 地图的来源
西方绘画有一种写实手法, 要有一个真实的物体, 才能够进行创作。绘制地图也是同样的道理, 要有一个实物的照片或者是事先绘制的纸质地图, 才能够进行绘制。本项目绘制的是北京理工大学珠海学院电子地图, 由于某些原因, 使得地理数据资源比较匮乏。在google地图上面找到比较合适的地图也是 学校的卫星照片( 图3-4) 。
图3-4 Google地球上的卫星照片
这张图片上面虽然建筑物寥寥无几, 可是已经能够作为参照物, 为地图的绘制提供了较高的准确性。为了获取更多的信息, 还拍下了学校路边的地图( 图3-5) 作为参考, 而且做了实地考察, 手工绘制了一幅学校的平面图地图( 图3-6) 。
图3-5 北京理工大学珠海学院学校路边平面图
图3-6 手工绘制北京理工大学珠海学院平面图
3.5 电子地图绘制
3.5.1 MapInfo Professional地图绘制工具
MapInfo Professional提供了一组专门的地图绘制工具, 其中图形矢量的工具集全集中在该工具栏中, 利用这些工具基本上可灵活完成各种绘图任务任务。这些绘图工具不但能够在当前操作环境绘制图形对象, 而且可根据需要进行必要的编辑和调整, 使其符合绘图的需要。
图3-7 mapinfo绘图工具条
工具条部分工具的含义
表3-1
符号
含义
符号
在地图中放置点符号
符号样式
利用该工具指定符号属性
折线
在地图中绘制折线
线样式
可设置线的类型、 宽度和颜色
多边形
可一次绘制各种形状的多边形
多边形样式
可设置多边形的轮廓宽度和颜色, 填充花纹和填充的颜色
3.5.2 MapInfo Professional绘制地图
在一幅传统的地图中包含多种类型的图纸信息( 如省市边界、 城市、 山川、 河流、 道路和水库) , 而对于使用地图的个人或某行业来讲, 往往仅对注重对每个或部分类型进行显示和分析。因此根据不同需求设计地图的层次机构, 有意识的把同一类对象归类, 并放置在同一个图层中。清楚了mapinfo中图层和图元的概念以及了解绘图工具的使用后, 就能够开始绘制地图了。在本项目中设计了Key、 Build、 route1、 route2、 waterArea五层。
Key: 标注层。标注了地名称, 道路名称, 建筑名称等。
Build: 建筑层。包括了该区域所有建筑物, 例如教学楼, 宿舍, 饭堂等。
route1: 一级道路。适合驾车和步行。
route2: 二级道路。适合步行。
waterArea: 水域边界。包括了湖泊、 河流等。
将道路层分为一级道路和二级道路主要是考虑到导航算法的设计, 如果选择驾车, 则在导航算法中只考虑一级道路, 而不用考虑二级道路。5个图层绘制完毕后最终显示结果如图:
图3-8 各个图层综合显示
3.6 *.MIF和*.MID文件
绘制完成后mapinfo把每一个图层保存为相应的图表文件。而每一个表又能够同时转出为*.MIF和*.MID两种格式文件。Mif文件包含了该图层所有图元的类型、 位置、 颜色等相关信息, mid文件包含了mif每个图元对应的标注。
例如:
eg.TAB保存了这个信息
Pline 4
113.529674 22.371699
113.531322 22.371673
113.532868 22.371649
113.534445 22.371624
Pen (7,2,16776960)
"金凤路"
对应的mid文件
eg.MID
对应的mif文件
eg.MIF
图3-9 TAB与mif和mid的联系
文件描述了该对象是折线对象, 该线有4个点, 每一个点的具体坐标, 画笔是7号像素, 2号样式, 画笔颜色为16776960( 黄色) 。 同样的方法就可用理解其它图元相关的信息。
3.7本章小结
mapinfo是地图绘制领域使用最为广泛的应用软件之一, 本章介绍了mapinfo的通用知识——地图图表和地图分层的基本概念, 以及对如何绘制地图进行了详细的介绍。最后还详细分析了*.MIF和*.MID文件格式, 这两种格式文件是整个项目的地理数据来源, 对这两种文件结构的深入理解将是编程的关键。
4 系统框架描述
4.1系统模块
系统OS层使用windows CE 5.0系统, 底层调用多种驱动, 其中包括: USB键盘、 鼠标驱动, 触摸屏驱动等。软件层API使用QT4自由版提供的API。应用层为电子地图应用程序。
windows CE 5.0 操作系统
触摸屏
LCD驱动
COM
驱动
键鼠驱动
嵌入式GUI( QT4)
电子地图
应用层
接口层
系统层
PXA 270开发板
硬件层
USB
驱动
图4-1 系统模块图
4.2主要功能
地图显示: 显示所在位置周边地理信息, 可对当前进行缩放, 拖动, 自动切换地图。
路径导航: 自定义起点终点, 利用最优路径算法计算出一条最优路径, 而且在地图上面显示。
历史记录: 系统会自动保存用户最近使用的10条路径导航记录, 以方便用户在再次需要时浏览。
卫星定位: 在地图对应位置显示当前所在位置。
4.3平台简介
本系统设计使用的硬件平台是由北京博创兴业科技有限公司开发的UP-TECHPXA270-S 实验平台。该平台是基于Intel XSCALE 架构最新的PXA270 嵌入式微处理器最高主频可达624MHz, 加入了Wireless MMX 技术, 大大提升了多媒体处理能力; 同时PXA270 还加入了Intel SpeedStep动态电源管理技术, 在保证CPU 性能的情况下, 最大限度地降低移动设备功耗。PXA270能够广泛应用于PDA、 智能手机、 PMP 产品中。博创科技的UP-TECHPXA270-S 教学科研平台主要是面向计算机、 软件专业的高端平台, 微处理器主频稳定运行在520MHz, 可运行WinCE5.0 和Linux 2.6.x 操作系统, 支持QT/E、 miniGUI 等嵌入式图形界面, 提供完整的驱动和应用程序。
图4-2 UP-TECHPXA270-S 教学科研平台图
UP-TECHPXA270-S 教学科研平台由处理器核心板、 主板及LCD 三部份组成。核心板和主板的接口设计充分考虑了升级产品的兼容性, 核心板能够升级到PXA271、 PXA272 微处理器, 而主板资源不变。另外, 除了具有丰富的接口资源, 良好的可扩展性也是UP-TECHPXA270-S 平台的一大特色。 UP-TECHPXA270-S 预留了32 位扩展总线接口, 与博创UP-NetARM2410、 UP-NetARM2410-S 平台兼容, 从而大大减轻了用户扩展新功能的负担。
PXA270 核心板
CPU
SDRAM
Nand Flash
NorthFlash
总线隔离驱动电路
10/100M 网卡
RJ45 接口
MIC、 LINE-IN/OUT
模拟功率放大器
AC97 CODEC
触摸屏接口
KEYPAD
RTC 实时钟
RS232 串口
VGA 输出
640*480 TFT 16bit
LCD 液晶屏
USB1.1 DEVICE
USB1.1 HOST
4 端口USB HUB
图4-3 以PXA270为核心的硬件架构图
4.4 UP-TECHPXA270-S核心模块资源
基于Intel XScale 架构内核的嵌入式处理器PXA270, 内部集成iwmmx 指令, 加速处理器对多媒体数据的 处理速度。辅助CPULPC2119 ARM7TDMI-S。
系统稳定工作在520MHZ 主频,64MB SDRAM、 16MB Nor Flash、 64MB Nand Flash 库。
1) UP-TECHPXA270-S 软件资源:
l Bootloader: eboot;
l 操作系统: wince5.0;
l 驱动程序: 提供所有板级设备的驱动程序;
2) UP-TECHPXA270-S 平台配套线缆:
l RJ45 交叉网线;
l DC12V 电源适配器;
l 用户自备CAN、 RS485 等的连接导;
3) PXA270-S 开发平台硬件资源:
l PXA270 Core 小板: PXA270 XScale CPU、 64M SDRAM、 64M NAND FLASH, 16M NorFLASH。经过256Pin 2mm 间距直插针与主板连接。
l Double 100M EtherNet 网卡: 由两片DM9000 构成的双网卡,
l 4 HOST / 1 DEVICE USB 接口: PXA270 的主USB 口扩展为4 个, 由AT43301 构成USB HUB, 其中电源管理用MIC2505。
l 3 UART/IrDA/RS485: 2 个RS232 串口。1 个RS485 串口, 1 个IrDA 收发器, 均从处理器的ICP UART 引出, 由FPGA 内部逻辑切换。
l LCD 显示屏: 采用8 寸18bit 真彩屏, 同时预留一个24bit LCD 接口。
l TouchScr: 经过UCB1400 芯片和AC97 总线实现。
l AC97 AUDIO: 采用UCB1400 COD
展开阅读全文