科研课题结题论文
计算机工程管理科学科研申请书
体育艺术科研立项申请书
电力电工科研课题申请书
中小学职业教育改革项目申请书
护理护士保健职称课题
医学药学科研立项申请书
教育教学科研项目申请书
经济管理研究项目计划书
档案图书馆科研立项申请书
水利交通工程论文代写代发表
建筑工程职称论文代写代发表
NSFC项目申请书代写
NSFC申请攻略申报书代写
代写国家社会科学基金课题立项项目标书
国家自然科学基金资助政策
代写自然科学基金申报中的问题研究
·医学临床 ·经济财会
·政治法律 ·教育体育
·文学艺术 ·计算机
·基础医学 ·药学生物
·建筑电气 ·语言文化
·工学工程 ·护理康复
·写作经验 ·格式范本
名称:研友工作室
电话:0760-86388801
传真:0760-86388520
邮箱:51643725@qq.com
地址:广东中山市孙文中路2号
网址: www.zzss8.com
商务QQ:51643725
微信二维码

业务联系
计算机
基于Android和SQLite的地质数据地图的设计与实现
添加时间: 2015-8-3 10:02:20 来源: 作者: 点击数:1800

 

佘东

(安徽工业经济职业技术学院,安徽合肥,230051

要:本文介绍了移动开发平台Android的系统架构,并利用SQLite数据库实现了利用Google Map Api 的导航应用,进行用户自定义地图的图层二次开发,能够给用户提供智能化的地质数据地图导航服务。

关键词; AndroidSQLite数据库 Google Map;地质数据地图

中图分类号:P208  文献标识码:A 


一、引言

在地质找矿、测量、勘探等工作中需要即时的定位并使用地质数据地图,传统的纸制地图已经不能满足需求。随着智能手机的迅猛发展,智能手机平台将成为 GIS技术和互联网应用新的应用平台。本文提出并实现了一种基于Android SQLite数据库利用Google Map Api 的导航应用,能够给用户提供智能化的地质数据地图导航服务。

二、Android平台架构

Android是一种以基于Linux内核的开放源码操作系统,主要使用于便携设备。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,逐渐扩展到到平板电脑及其他领域上,现最新的版本是Android 4.0  Ice Cream SandwichAndroid平台从上层到底层由以下五部分组成架构分成:应用程序、应用程序框架、库、Android  RuntimeLinux内核。

1)应用程序Applications  Android的配置搭载它的核心应用,包括email客户端,SMS程序,日历,地图,浏览器,contacts以及其它一些应用。所有的应用都是用java语言编写的。

2)应用程序框架Application Framework 开发人员具有和核心应用相同的框架API访问权限。应用程序的构建模式被设计成简单的可重用的组件。所有应用能够分享他的能力,所有应用都是如此。这样允许用户在相同的机器上替换组件。

3)库Libraries Android包含一整套C/C++库,用于构建Android系统的大量不同的组件。这些能力通过Android应用程序框架提供给开发人员。

4Android  RunTime  Android包含了一整套核心库,它为Java语言提供了很多有用的功能。三四两层在其他分层模式中有时被合并为一层。

5Linux 内核层  Android 基于 Linux内核开发的 ,它依赖内核提供的核心系统服务,如安全,内存管理,进程管理,网络堆栈和驱动模型。该内核另一个作用是提供一个屏蔽层用于屏蔽硬件和上层软件。

三、SQLite数据库简介

SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 TclC#PHPJava等,还有ODBC接口,同样比起MysqlPostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于20005. 至今已经有10个年头,目前最新版本为 SQLite 3.6.11

四、使用AndroidSQLite进行Google Map的开发

1)开始创建 Android Google Map 应用

进行开发前必须先获得Google Map API Key,创建一个工程,在建立工程时将com.google.android.maps的扩展库添加到工程中,这样就可以使用Google地图的所有功能;添加com.google.android.maps扩展库的方式是在创建工程时,在Build Target项中选择Google APIs;修改/res/layout/main.xml文件,在布局中加入一个MapView控件,并设置刚获取的地图密钥。仅在布局中添加MapView控件,还不能够直接在程序中调用这个控件,还需要将程序本身设置成MapActivitycom.google.android.maps.MapActivity);由于获取Google地图是需要使用互联网的,所以在运行前还需要在AndroidManifest.xml文件中,添加允许访问互联网的许可。

2数据的存储

    数据的存储采用SQLite数据库。主要保存三类数据,一类是地质信息名称,一类是每次显示过程中读到的位置信息和地质信息,另一类是应用配置信息,如多久更新一次GPS,地图的默认级别等。前两种信息需要在使用中不断更新数据库,以使地质数据地图不断更新和完善。

3自定义地图的图层

通过在MapView上添加覆盖层,可以在指定的位置加添加注解、绘制图像或处理进行鼠标事件等。Google地图上可以加入多个覆盖层,所有覆盖层均都在地图图层之上,每个覆盖层均可以对用户的点击事件做出响应。本研究即通过MapView上添加覆盖层,并调用SQLite数据库信息在指定的位置添加地质图层信息以显示相应的地质数据地图。方法为在创建覆盖层继承Overlay类的子类,并通过重载draw()方法为指定位置添加注解,重载onTap()方法处理用户的点击操作。在覆盖层绘制图形或文字需要使用画布Canvas)来实现,绘制的位置是屏幕坐标,这就需要将地图上的物理坐标与屏幕坐标进行转换。Projection类提供了物理坐标和屏幕坐标的转换功能,可在经度和纬度表示的GeoPoint点和屏幕上Point点进行转换。TextOverlay类是项目的覆盖层,主要重载了draw()方法,在指定的物理坐标上绘制了标记点和提示文字,代码如下:

1.public class TextOverlay extends Overlay

2.{    private final int mRadius = 5;

3.@Override

4.public void draw(Canvas canvas, MapView mapView, boolean shadow)

5.       {                   Projection projection = mapView.getProjection();

6.       if (shadow == false){         

7.       Double lng = 126.676530486 * 1E6;

8.       Double lat = 45.7698895661 * 1E6;

9.       GeoPoint geoPoint = new GeoPoint(lat.intValue(), lng.intValue());

10.   Point point = new Point();

11.   projection.toPixels(geoPoint, point);

12.   RectF oval = new RectF(point.x - mRadius, point.y - mRadius,                                                            point.x + mRadius, point.y + mRadius);

13.   Paint paint = new Paint();

14.   paint.setARGB(250, 250, 0, 0);

15.   paint.setAntiAlias(true);

16.   paint.setFakeBoldText(true);

17.   canvas.drawOval(oval, paint);

18.   canvas.drawText("标记点", point.x+2*mRadius, point.y, paint); }

19.   super.draw(canvas, mapView, shadow); }

20.   @Override      

21.   public boolean onTap(GeoPoint p, MapView mapView)

22.   {return false; } 

23.   }

18行代码绘制了提示文字,可以将关于地图的相关地质信息在此输出显示,第2个和第3个参数是绘制屏幕的x坐标和y坐标。建立了覆盖层后,还需要把覆盖层添加到MapView上。

4调用 MapController工具类去控制地图的缩放

利用GeoPoint类的实例指定区域的位置(使用的是 animateTo方法),并用 setZoom()方法指定了放大的级别。运行程序后,可以看到在地图上只显示了指定区域大小的地图,并且看到了标记,当你点击标记时,可以看到弹出的对话框和显示的地质信息文字。

五、总结

通过测试表明,该系统能够能很好的实现相关地质数据地图的信息显示和查询 ,同时如果要增加功能 ,可以在 Java类中添加相应的方法并在应用层调用即可,具有一定的可扩展性 。当然,该技术还需要进一步的完善 ,尤其是基于SQLite的数据库需要在日后的工作中不断地扩充地质数据信息,以形成一套实用的地质数据地图服务系统。

参考文献

(1)       温敏,艾丽蓉,王志国.Android智能手机系统中文件实时监控的研究与实现[J].科学技术与工程,20099(1)17171719.

(2)       郭宏志.Android应用开发详解 [M].北京 :电子工业出版社,201020-37.

(3)       张仕成.基于 Google Android 平台的应用程序开发与研究[J],电脑知识与技术 2009 28.

(4)       余志龙 陈昱勋 郑明杰 . Google Android SDK 开发范例大全[M]2010,北京 人民邮电出版社.


Design and Development of Geological data Map Based on Android and SQLit

(SHE Dong)

(Anhui Vocational colleague of Economics and Technology HeFei Auhui 230051)

AbStract: This paper describes the system architecture of Android mobile development platform ,and leveraging SQLite database for the use of the Google Map Api application navigation, user-defined map layers of secondary development, to provide the user with intelligent maps of geological data navigation service.
Key words AndroidSQLite database Google Map Geological data Map

 

关于研友  |  诚聘英才  |  联系我们  |  友情链接
版权所有:@2007-2013 中山研友工作室 ZZSS8.COM 电话:0760-86388801 QQ:51643725
地址:广东中山市学院路1号 邮编:528402 皖ICP备12010335号-3
  • 物理类核心期刊投稿邮箱网址
  • 研究成果的运用研究的认识与体会
  • 电动持续负压吸引治疗足部慢性溃疡护理
  • 基于SPOC平台的问题牵引式教学法在
  • 医学期刊投稿邮箱收集(有效大全最新)
  • 腰硬联合麻醉用羟乙基淀粉扩容与用复方
  • 医学期刊投稿邮箱收集
  • 睾丸鞘膜切除翻转术中缓慢放出睾丸鞘膜