欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

一套快速离线浏览GoogleMap的方案(图文)

时间:2011-04-23  作者:秩名

论文导读:其中以Google公司的产品GoogleMap,微软公司的BingMap为首的电子地图产品在业内已有一定的知名度,他们已经渐渐渗透到人们的生活当中。然而在GoogleMap实际应用中存在着浏览速度较慢,耗费宽带资源较大,必须依赖于网络等问题,因此设计一种离线浏览GoogleMap的方式十分必要。
关键词:GoogleMap,离线浏览,GIS流量
 

随着现代计算机和网络的迅猛发展。Internet上的电子地图已经成为人们生活中一个重要的组成部分。其中以Google公司的产品GoogleMap,微软公司的BingMap为首的电子地图产品在业内已有一定的知名度,他们已经渐渐渗透到人们的生活当中。人们在网上查询目的地,乘车路线,驾车路线,等等关于地理信息方面的应用时都会不自觉地打开GoogleMap进行查询。可见GoogleMap功能之强大。Google地图是Google公司提供的电子地图服务,包括局部详细的卫星照片。能提供三种视图:一是矢量地图(传统地图),可提供政区和交通以及商业信息;二是不同分辨率的卫星照片(俯视图,跟 Google Earth 上的卫星照片基本一样);三是后来加上的地形视图,可以用以显示地形和等高线。然而在GoogleMap实际应用中存在着浏览速度较慢,耗费宽带资源较大,必须依赖于网络等问题,因此设计一种离线浏览GoogleMap的方式十分必要。

一、现阶段应用GoogleMap存在的问题

1.在线浏览的问题

GoogleMap在进行应用时会耗费大量的带宽资源,由于目前中国家庭宽带上网以及在移动领域上网时带宽的限制,很难进行流畅的地图浏览工作,并且移动通讯3G的资费普遍较高,如果进行在线浏览电子地图,必将耗费大量的流量,从而增加费用,而GPRS的带宽远远满足不了GoogleMap的带宽需求。另外中国还是一个发展中国家,很多偏远的地方还不能上网,但有时人们可能还是需要用GoogleMap来进行定位搜索。因此,在这种背景条件下,如何加速GoogleMap的访问速度,如何在节省带宽的情况下进行地图浏览,如何在没有互联网的情况下进行GoogleMap访问已经成为了一个需解决的问题。

2.离线浏览的问题

随着GoogleMap的不断普及,网上已有了一些GoogleMap的下载工具,不过这些工具大部分都是将GoogleMap下载成图片的形式,因此下载后数据量较大并且不利于保存和读取,往往会被组织成很多文件夹和不计其数的文件。给用户使用带来很大的不便,尤其不利于移动平台的存储和读取。因此需要一种能将下载数据压缩至最小并且利于应用程序读取的方法。

二、一种快速浏览GoogleMap的对策

针对以上问题,设计相应解决方案:数据存储利用数据库,将下载的GoogleMap数据存储于数据库中,下载采用边浏览边下载的模式(即用户通过Internet浏览过的GoogleMap数据会存储于数据库中)和批量下载方式(一次可以下载一定范围内多个图层的数据)。总体设计如图1所示

图1

图1中设计模式分为三层,即数据层,接口层和程序层。数据层包括Internet上的GoogleMap数据和本地下载的地图数据,即用户可以同时应用两种数据源来进行浏览。论文参考网。接口层利用的是GoogleMapAPI以及ADO.NET,分别用来访问GoogleMap服务器数据和本地数据库数据。程序层是提供给用户一个可以直观地操作地图数据的工具,主要应用C#开发,程序功能包括数据浏览,数据下载,数据库导入导出。

1.数据层设计

即存放下载地图数据方法的实现,考虑到GoogleMap数据量较大和跨平台(桌面平台和移动平台)的需求,应用数据库方式存储比较合适,但必须用一种轻量级并且兼容性较好的数据库。因此这里选择的是SQLite。论文参考网。SQLite是一种系统占用资源低,可移植性好,在多种平台下都能高效稳定运行的数据库,尤其适用于手机平台。针对GoogleMap数据特点,设计GoogleMap数据字典如图2所示

图2

因为GoogleMap的地图是使用一张张256×256的小图片拼成,所以这里的数据库主要针对图片的存储设计。其中表“Tiles”存储图片的地理信息,字段id表示图片的唯一编号,字段X,Y表示图片左下角在地图中的相对位置,字段Zoom表示图片所在的图层,字段Type表示图片的类型。表“TilesData”存储图片的数据信息,其中字段“id”是主键也是外键和表“Tiles”中字段id对应,字段“Tile”存储图片的二进制信息,即所有的图片数据存储在这一列中,这个字段是Blob类型,Blob是专门用来存储大对象数据类型的,以二进制形式存储,是一个可以存储大量数据的容器,适合存储图片,声音等大数据类型文件,在SQLite,MySql,Oracle等数据库中均有应用。以上存储方法的好处是可以将所有GoogleMap数据统一规划管理,避免数据的杂乱无章,并且也利于数据的拷贝和移动平台下的应用。

2.接口层设计

接口层主要建立程序和GoogleMap服务器,本地数据库之间的通信。其中主程序和GoogleMap之间的数据通信主要通过以下GoogleMapAPI中的类实现,

lMapView类

MapView是进行地图展示的类,可以控制是否显示地图视图,设置地图显示类型,进行地图浏览,以及获得地理位置,经纬度与相对坐标间的转换等。

lMapController类

MapController类可以控制地图的缩放尺度,及控制数据库中的字段Zoom值,数值越大,地图细节越详细,每个地区能显示的最详细地图程度不一。另外通过该类的“animateTo”方法可以将制定坐标设置成显示地图的中。论文参考网。

lGeoPoint类

通过GeoPoint类可以定义坐标。它接受的两个参数分别是“纬度”,“经度”值。

通过以上以上三个类的组合还可以得到当前浏览的地图数据对应的256×256小图片地址供主程序下载用。这在主程序设计中将进行说明。

主程序和数据库SQLite之间的通信主要通过ADO.NET实现。ADO.NET 是一组向 .NET 程序员公开数据访问服务的类。ADO.NET 为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、XML 和应用程序数据的访问,因此是 .NET Framework 中不可缺少的一部分。ADO.NET 支持多种开发需求,包括创建由应用程序、工具、语言或 Internet 浏览器使用的前端数据库客户端和中间层业务对象。通过System.Data.SQLite接口中的SQLiteConnection类可以建立与SQLite的连接,SQLiteCommand可以执行SQLite中的SQL数据库语句,SQLiteDataReader可以存储SQLiteCommand执行查询语句返回的结果。以上三个接口类可以让我们对SQLite进行大部分的数据库操作。其中需注意的是“TilesData”表中“Tile”字段的操作。因为Tile存放的是图片的二进制数据,长度不是固定的,因此程序中必须用一个Byte数组进行存储。这在C#中可以很方便的实现,直接将SQLiteDataReader返回的Blob类型的“Tile”字段值传递给C#中的一个Byte[]数组,就可以进行后续操作。接口层是整个架构中的关键所在,因为用户所进行的每项操作都涉及到数据接口和通信。通过以上两种接口的应用可以充分满足设计方案所需。

3.主程序(GoogleMap工具)设计

为了让此设计方案实现更广泛的应用,主程序应存在针对不同平台的多个版本,包括Windows,Linux,Windows Mobile,iphone,Android下的程序。这里主要介绍Windows下的主程序设计,因为Windows应用范围广,并且设计方案中涉及的功能在Windows下较容易实现。

主程序开发平台为Visual Studio2008,开发语言为C#。其中主要需开发的功能点如下:

l地图浏览,包括地图的移动,放大,缩小,以及浏览地图类型的选择,浏览地图的方式包括:服务器方式,即直接连接GoogleMap服务器浏览;缓存方式,即通过本地SQLite数据库浏览(在没有网络连接的情况下也可以浏览GoogleMap);服务器缓存方式,即前两种方式的同时应用(在这种浏览情况下可以弥补在线浏览速度过慢的问题,因为浏览过的数据都会保存在本地SQLite数据库中)。

l地图下载,包括边浏览边下载和批量下载方式,边浏览边下载方式在“地图浏览”中已介绍过。“批量下载”是指用户定制好下载的地图级数和范围后,程序会自动开始下载,并得到用户所需。

l地图的到导入导出,对于不同的GoogleMap SQLite数据库,可以用导入操作将几个数据库合并成一个数据方便浏览。并且根据用户的需要也可以将某个图层或者某种类型的GoogleMap数据导出成一个单独的SQLite数据库以便使用。

小结:通过数据层SQLite数据库设计,接口层GoogleMapAPI和ADO.NET的应用,以及主程序三个主要功能点的开发,一套完整的快速离线浏览GoogleMap的方案即设计完成。通过这套方案我们可以解决平常在GoogleMap应用中所遇到的一些问题,如不能离线浏览,浏览速度过慢等。另外,下载的数据在移动平台上也可以充分利用,并起到节省流量,加快浏览速度,在各种环境下都可以通过移动设备访问GoogleMap的作用。


参考文献
[1] 《T-SQL语言参考》,(美)微软公司 著,潇湘工作室 译,清华大学出版社,2001:37-44
[2] 《C#高级编程(第6版)》,(美)内格尔(Nagel.C)等著;李铭 翻译;黄静 审校,清华大学出版社,2008:567-569
[3] 《软件工程(原书第8版)》,(英)萨默维尔(Sommerville,I.) 著,程成,陈霞 译,2007:105-107
[4] 《Google Android开发入门指南(第2版)》,盖索林 编著,王世江 改编,2009:57-59
[5] 《Google API大全》,《GoogleAPI大全》编委会 著,2009:28-32
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:眼镜后模芯分型面数控编程中边界设定探讨
下一篇论文:一种H.264编码芯片帧间预测的硬件设计
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
    无相关信息
最新计算机论文
读者推荐的计算机论文