第35卷第9期 2012年9月 测绘与空间地理信息 GEOMATICS&SPATIAL INFORMATION TECHNolOGY Vo1.35.No.9 Sept.,2012 基于Android的测量坐标转换系统的 设计与开发 武安状,吴芳 (河南省地质测绘总院,河南郑州450006) 摘要:传统的测量坐标转换软件不适用日益盛行的Android操作系统,运用JAVA,SQLITE数据库,以Android 2.2以上版本为开发平台,设计开发的测量坐标转换系统,实现了坐标正反算和换带计算,满足了生产需求。 关键词:Android;测量坐标转换;JAVA;SQLITE数据库 中图分类号:P226 .3 文献标识码:B 文章编号:1672—5867(2012)09—0164—03 The Design and Development of Surveying Coordinate Transformation System Based on Android WU An—zhuang.WU Fang (Henan General Institute of Geological Surveying and Mapping,Zhengzhou 450006,China) Abstract:Conventional surveying coordinate conversion system does not apply to the increasingly popular Android operating system. Applying JAVA and SQLITE database,using Android 2.2 system as development platform,this paper designs the surveying coordinate conversion system which realizes the direct computation,inverse computation and zonal transformation computation,and meets the re— quirement of production. Key words:Android;coordinate transformation;JAVA;SQLITE database 0 引 言 目前,有很多成熟的测量坐标转换软件,但多数只能 在PC机上或手持PDA(Personal Digital Assistant)上实现。 固定软件的枷锁。在Android上开发测绘应用程序,将因 其便捷、质量可靠、能耗低而受到广大测绘人的支持。根 据功能需求建立模型,增加按钮操作,创建下拉菜单,设 置访问权限。 在智能手机和平板电脑迅速普及的3G时代,Android以 其强大的功能、低廉的价格和系统的开源性,彰显优势, 成为主流操作系统。如果把测量坐标转换功能植入到 Android操作系统的3G电子产品中,势必会给广大测量 人员带来方便。笔者设计了基于Android的测量坐标转 换系统(开发平台为Android 2.2版以上),综合运用了 JAVA,SQLITE数据库,实现大地坐标正反算和换带计算。 1.2系统总体架构设计 坐标转换是工程测量中的常见问题,坐标系(统)是 测量的基准,由坐标原点、坐标轴指向和尺度定义。但由 于大多数测量工作者靠记忆数学公式解决实际问题,容 易出现错误。本系统结合坐标转换公式,将烦琐的推导 过程全都放入后台,解决了很多施工坐标系坐标转换的 问题,提高了工作效率,减少了出错几率。 在图1的界面上,输入坐标系统,转换方法,经纬度带 1 系统分析与设计 1.1 系统需求分析 Android是Google公司推出的手机开放平台,采用 号,即可实现大地坐标计算。 1.3系统功能设计 本系统采用JAVA开发,安装包大小为27 K,操作简 WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功 能,用户可在手机上查看电子邮件、搜索网址和观看视频 单,使用方便,可进行大地坐标正反算和换带计算,误差 不超过0.1 mm。有3。带和6。带两种形式,自动计算带 号。全国通用,坐标系统可选择1954年北京坐标系、1980 节目等,融人全部Web应用的单一平台。Android是一个 对第三方软件完全开放的平台,开发者在开发程序时拥 有更大的自由度,突破了iPhone等只能添加为数不多的 西安坐标系和2000国家大地坐标系,计算结果可按右上 角交换按钮进行反算验证检查。 收稿日期:2012一O1一o4 作者简介:武安状(1963一),男,河南邓州人,高级工程师,学士,主要从事工程测量方面的软件开发工作。 第9期 武安状等:基于Android的测量坐标转换系统的设计与开发 165 言开发环境,或具有一定的编程基础,Android是一个开源 性操作系统,有很多已经成熟的功能包可用,类似于c+ +的类或控件,使用import语句包含进来即可。如:import Android.app.Activity;可以很方便地开发出很多功能软 件。此外,Android提供SQLITE内嵌式数据库,常用于各 种掌上设备,非常小巧,又功能强大,几乎所有数据都可 用数据库管理。数据库包名为“sQLite0penHelper”,直接 复制JAVA文件,点击你创建的包名,选择右键直接粘贴 图1 Android坐标转换系统的界面 Fig.1 The interface of Android coordinates conversion system 2系统关键技术实现 2.1 系统安装环境 要实现在安卓操作系统平台上开发测量软件,首先 要搭建环境,搭建环境共分以下五个步骤。 1)JDK安装; 2)Android SDK安装: 3)Eclipse安装; 4)ADT安装; 5)创建AVD。 2.2建立新工程 打开Eclipse,选择工作区,点击File—New—Project, 出现一个新建工程对话框,点击Android选项,选择Ar.- droid Project,然后点击Next,输入工程名称(小写字母, 如:blxy),选择目标平台(如Android 2.2),再输入应用程 序名称(如:blxy)和包名称(如:wuaz.blxy),点击Finish完 成创建任务。此时打开若展开src中的包名称(如:wuaz. blxy),再打开BlxyAetivity.java文件,会提示出错,这是因 为自动生成默认语句(setContentView(R.1ayout.main)), 而主页面不存在所致。解决方法:点击File—New—Oth. er,新建一个XML文件,选择Android-- ̄Android XML File, 点击Next,输入文件名:main,选择资源类型Layout,点击 右下角Finish完成创建工作。 点击菜单Window--- ̄Android SDK and AVD Manager, 选择模拟器环境,点击右边的New按钮,出现一个对话 框,输入工程名称(如:blxy),选择目标平台(如Android 2.2),点击Create AVD,然后关闭。点击菜单Run-+Run Configurations,选中Target中的新创建的工程文件名称 (如:blxy),再选择Android分页,点击右边的浏览按钮 (Browse),找到你刚创建的工程文件名称(如:blxy),点击 OK,再点击下面的Apply按钮,选择Do Nothing选项,最后 点击Run按钮,稍等片刻,出现应用程序模拟器界面,工 程创建完成。 2.3系统开发要点 开发Android平台软件的关键技术是要熟悉JAVA语 即可加入本工程。 2.3.1 开发模型建立 无论正反算和换带,首先要建立一个模型,然后才能 编写代码实现你设计的功能。目前,关于正反算计算公 式,网上有很多参考资料,用户可自行下载或购买专业书 籍,有了计算公式,就可一步步实现。值得注意的是:JA— VA语言不太适合开发科技运算项目,双精度计算结果与 c++位数不同,略有差异。因此,要想达到非常高的精 度,也非常困难,但是,对一般软件而言足够了。 2.3.2按钮技术实现 按钮使用技术,在用户设计的界面上放置一个按钮, 实现特定功能,主要示例代码如下: ∥按钮功能一一退出系统 private void ExitDialog() { Builder builder=new AlertDialog.Builder (LevelActivity.this); builder.setTitle(”提示”); builder.setIcon(Android.R.drawable.ic—dia— loginfo); builder.setMessage(”确定退出系统吗?”); builder.setPositiveButton(”确定”,new Dia— loglnterface.OnClickListener() { @Override public void onClick(Dialoglnterface dia— log,int which) { finish(); }}); builder.setNegativeButton(”取消”,nul1); builder.show(); f 注意:以上代码必须包括以下语句:否则编译通 不过。 import Android.app.AlertDialog.Builder; 2.3.3下拉菜单开发技术 下拉菜单是用户熟悉的选择方式,当界面放置不下时, 可考虑用下拉菜单,以包含更多的信息。示例代码如下: ∥设置变量 private Spinner spinnersystem_Il=null: private ArrayAdapter<Stirng>adapter_system一1: 166 测绘与空间地理信息 public void onClick(View v) 2012聋 private static final Stirng[]ArraySystem:{II 1954年北 京坐标系”,”1980西安坐标系”,”2000国家大地坐标 系”}; { ∥坐标系统 _Systemlnt=l;∥第2个为默认选项 ∥坐标系统 private intSting system=adaptersystem一1.ge— r_them(一SystemInt); spinner—system一1=(Spinner)findViewById(R.id. ∥其他代码,略去。 } }); spinnersystem_2); adaptersystem一1=—new ArrayAdapter<String> —(BLXYActivity.this,Android.R.1ayout.simple—spinneri— 2.3.4 系统的权限管理和控制 读写文件必须在AndroidManifest.XML中添加权限 设置: <uses—permission Android:name=”Android.permis— ten,ArraySystem); spinnersystem~1.setAdapter(adapter_system一1); _system一1.setSelection(一SystemInt,true);∥ 第2个为默认选项 spinner_sion.MOUN r_UNMOUNTFILESYSTEMS”/> _spinnersystem一1.setOnltemSelectedListener(new Spin— <uses—permission Android:name=”Android.permis— ner.OnhemSelectedListener() sion.WRITEEXTERNALSTORAGE”/> _{ public void onhemSelected(AdapterView<?> argO,View argl,int arg2,long arg3) 3结束语 通过对比分析和用户测试,该系统转换的坐标精准 无误,适用于安装ANDROID操作系统的各类手机或平板 { ∥设置显示当前选择的项 一电脑。本软件免费使用,简单易学,消除了测量行业初学 者概念模糊,不知如何计算正反算和换带的困扰,为用户 提供了极大的方便,也为完善安卓平台测量软件,起到抛 砖引玉的作用。 SystemInt=arg2; argO.setVisibility(View.VISIBLE); public void onNothingSelected(AdapterView<?> arO)g { 参考文献: [1]邓勇,张正禄,黄江雄,等.工程测量中的坐标转换相关 问题探讨[J].测绘科学,2011,36(5):28—30. [2] 廖雷.Java程序设计教程[M].北京:中国电力出版 社,2003. f TODO Auto—generated method stub }}); ∥确定按钮响应 mOk=(Button)this.findViewByld(R.id.myOk); mOk.set0nClickListener f new Button.OnClickListener [3] 曾文宪,陶本藻.三维坐标转换的非线性模型[J].武汉 大学学报(信息科学版),2003,28(5):566—568. [4] 宁津生,罗志才,李建成.我国省市级大地水准面精化的 现状及技术模式[J].大地测量与地球动力学,2004,24 (1):4—8. () { ⑥Override [编辑:胡雪] (上接第163页) 4结束语 对于电子地图特别是在互联网上发布的公众化应用 序化、标准化的更新模式和更新技术,加快更新_丁作的快 速实施,促进地理信息的产业化发展。 的省级电子地图,其信息的现势性直接影响电子地图的 推广和应用,仅仅对以上信息进行更新远远不能满足公 众的需求,如居民地的变迁未能及时更新,特别是兴趣点 的采集和更新是一项非常耗资耗力的工程,需要以后加 大更新工程的投入力度,进一步丰富和完善电子地图的 公共信息量。 随着网络化、信息化社会的快速发展,数据更新是一 项长期持续的工程,但更新资料的现势性、准确性、权威 性以及缺乏规范化的更新机制和技术方法 ,加上更新 工程巨大、经费不足、各行业信息资源不能很好地协调共 享等,都制约着更新工作的顺利开展。为了提高省级电 子地图数据的使用价值,方便其社会化应用,急需制定程 参考文献: [1] 姜建慧.省级基础地理信息数据更新方法探讨[j].测绘 与空间地理信息,2007,30(7):89—91. [2] 方碧云.利用卫星影像实现GIS电子地图的制作和快速 更新[J].城市勘察,2008(5):93—96. [3]刘海砚,李少梅,肖强.综合利用多源数据更新基础地理 信息的技术与方法[c]∥中国地理信息系统协会第三 次代表大会暨第七届年会论文集,北京:中国地理信息 系统协会,2003. [4]蒋捷,陈军.基础地理信息数据库更新的若于思考[J]. 测绘通报,2000(5):1—3. [编辑:宋丽茹]