基于Android的智能化经济普查移动服务系统的设计与实现毕业论文.doc

上传人:知****量 文档编号:43058896 上传时间:2022-09-16 格式:DOC 页数:57 大小:1.47MB
返回 下载 相关 举报
基于Android的智能化经济普查移动服务系统的设计与实现毕业论文.doc_第1页
第1页 / 共57页
基于Android的智能化经济普查移动服务系统的设计与实现毕业论文.doc_第2页
第2页 / 共57页
点击查看更多>>
资源描述

《基于Android的智能化经济普查移动服务系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Android的智能化经济普查移动服务系统的设计与实现毕业论文.doc(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 基于Android的智能化经济普查移动服务系统的设计与实现毕业论文目录第一章研究现状与研究意义21.1 研究现状21.2 研究意义21.3 研究容21.4 本文可能的创新点21.5 篇章组织结构2第二章相关理论22.1 Android相关理论22.1.1 Android简介22.1.2 Android系统特性22.1.3 Android框架22.2 开发技术相关理论22.2.1开放性22.2.2挣脱运营商的束缚22.2.3丰富的硬件选择22.2.4不受任何限制的开发商22.2.5无缝结合的Google应用22.1.3android框架2第三章系统设计33.1需求设计33.1架构设计33.2功

2、能组设计33.3接口设计33.4数据设计3第四章系统实现34.1移动终端系统实现34.2后台管理功能界面实现3第五章总结与展望35.1 总结与展望3致谢3参考文献357 / 57第一章 绪论1.1 研究现状我国第二次经济普查自2008年12月31日正式启动以来,现在已基本完成普查数据的 收集、处理与上报工作。本次经济普查是我国经济发展进入21世纪后进行的一项重大国情国力调查,是党中央、国务院为正确认识国情、准确把握国力、科学制定国策而采取的一项重要举措。也是在全球金融危机大背景下正确把握我国当前经济状况的重要渠道的。只有通过经济普查,才能比较准确地把握中国经济变化的规律和趋势,正确制定经济政策

3、和社会经济发展规划,进一步控制经济增长,提高经济发展速度,促进经济和社会协调发展,推动可持续发展战略的实施。在这次经济普查中,从国民经济行业分类的具体构成来看,涉与到个大的行业归类,个行业小类。可以说这次经济普查提供的数据是非常完整的。面对普查之后的海量数据存储,国家更需要有力的数据分析工具以与方法将丰富的数据转换成有价值的知识,否则大量的数据将成为数据丰富,但信息贫乏的“数据坟墓”。国经济普查实践与数据分析现状事实上,经济普查的主要目的就是分析企业的财务信息,也就是财务数据挖掘。财务数据挖掘其实是一类深层次的财务数据分析方法。目前的经济普查系统可以高效地实现数据录入、查询和统计,但却无法发现

4、数据中存在的关系和规则,无法根据现有的经普数据分析结果预测未来经济发展趋势。传统的财务分析只是停留在较浅层次的分析,比如:因素分析、比例分析、趋势分析等,对决策的帮助并不大,究其原因,正式缺乏有效的挖掘知识和手段,导致了“数据爆炸但知识贫乏”的现象。而随着数据库技术的迅速发展以与数据库系统的广泛应用,企业积累的数据越来越多,如自身业务运作的数据,资金运作的数据,对外投资的数据和整个市场相关行业状况的各种数据,激增的数据背后隐藏着许多重要的信息。这些数据不再是为了编制财务经济报表、分析财务状况而收集,分析这些数据也不再单纯为了了解企业各种状况,更主要的是为决策者提供真正有价值的信息,也可帮助企业

5、提供竞争力,在这种情况下,数据挖掘技术就显得至关重要。1.2 研究意义国家统计局信息化建设从20世纪80年代开始,经过不断探索和尝试,至今 已具有大型普查、专项调查与日常统计数据采集加工处理、数据发布等功能,拥有各种专业应用系统、系统、办公自动化系统。但是,统计行业信息化工作尚未实现全过程的自动化与信息化,目前多数调查技术,特别是在地毯式入户调查环节,多采用人工方式进行核实与指标项采集,智能化采集手段存在空白,效率相对比较低,客观准确性难以掌控,难以提供更加科学、准确、与时的数据支撑。国家统计局局长马建堂明确指出:在更大围实现中国统计的信息化和现代化已经是刻不容缓的任务,并多次强调要发展以PA

6、D为代表的智能采集技术手段的设想。资源类调查数据的完整性、准确性、时效性等要求,需要在空间信息的基础上,通过地面数据采集的精细化、实时性、交互验证等手段,形成一个真实有效、完整精确的资源调查统计结果,用于支撑政府制定指导经济社会运行的宏观管理与科学决策。目前,统计行业部的信息化工作,主要表达在后端数据的管理与分析,前端的智能化采集手段存在空白,多采用人工方式进行核实与指标项采集,智能化、信息化手段比较落后,效率相对比较低,客观准确性难以掌控,对于“不重不漏、应统尽统”的调查统计目标实现的保障尚有进一步提升的空间。国家统计局已明确了在第三次经济普查中使用手持移动调查终端设备的指导思想,国家统计局

7、正在积极筹备,计划于9月中旬在与外省选取两个区县进行试用。另外,国家统计局已申请世界银行贷款项目,并已在第4686期“中国信息报”发布了国家统计局普查中心关于就“指导统计地理信息系统平台建设(移动终端)”征询意见的项目公告,以支持对统计调查对象信息移动采集终端技术的研究。基于良好的市场应用前景,以与相对明确的用户需求,特申请重新启动项目。本项目面向即将于9月份开始的第三次全国经济普查前期试点工作的业务需求,力争在2013年5底前完成相对完善的应用系统。并通过9月份配合国家统计局进行的试点试用工作,对用户需求、行业与技术环境、资源支撑、技术关键点、应用价值等方面进行详尽评价与分析,扎实推进该项目

8、在2013年的第三次全国经济普查全面应用。1.3 研究容“智能化经济普查移动服务系统”由智能手持移动调查终端、调查信息统计管理平台两部分组成,其目的就是提高普查效率、采集企业空间位置信息、弥补智能化采集手段的空白,系统建成后,将在全国围选取试点进行试用。1.4 本文可能的创新点离线地图:采用Atmap离线地图引擎,负责离线切片地图数据的展示。离线地图引擎的设计,可以在没有网络环境的情况下载图作业,节约了普查成本。实现流程如下:(1)地图切片存储,是把在线地图(google map,MircroSoft map,WMS服务)以切片的形式存储到sqlite库中。SQLite,是一款轻型的数据库,是

9、遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。(2)在map.xml 中配置离线地图的名称和路径 (3)通过Atmaps地图引擎即可实现地图的展示和操作。操作包括:地图平移、地图放大、缩小,poi加载、图层叠加等。 第二章

10、相关理论2.1 Android相关理论Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操

11、作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的制约的、全世界都能自由使用的Unix兼容产品。Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Window

12、s图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。SQLite数据库是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。不像常见的客户-服务器例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。2.1.1 And

13、roid简介Android是一种基于Linux的自由与开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导与开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商与电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑与其他领域上,如电视、数码相机、游戏机等。2.

14、1.2 Android系统特性(1)开放性在优势方面,Android平台首先就是其开放性,开放的平台允 android系统标志许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。(2)挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受

15、到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。(3)丰富的硬件选择这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。(4) 不受任何限制的开发商Android平台提供给第三方开发

16、商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。(5)无缝结合的Google应用如今叱诧互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。2.1.3 Android框架Android的系统架构和其操作系统一样,采用了分层的架构。分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux

17、核层。(1)应用程序Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。(2)应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(Lis

18、ts),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。Android开发四

19、大组件分别是:活动(Activity): 用于表现功能。服务(Service: 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。 第3章 系统设计3.1需求分析国家统计局统计局有 16 个部门,有经济普查统计报表任务的部门包括:投资处、工业与交通处、社会与科技处、贸易与外经处、服务业调查处、产业调查处、企业监测处、普查中心。各组织机构的相关统计专业与报表情况:目前对有经济普查调查的相关处室相关的专业调查表情况进行了排查,相关的 8 个专业处室涉与 22 个

20、专业统计类项目,目前使用的软件情况:a.贸易与外经处:SARPb.工业与交通处:Foxbasec.社会与科技处、服务业调查处、产业调查处、普查中心和企业监测处:使用国家下发的软件:Sarp、Foxprod.当前用户使用的软件特点:一是客户机需要安装 foxbase,需要发放光盘;二是可以实现离线录入,批量审核;三是程序相对固定,代码维护量大,系统维护工作量大。3.2架构设计架构设计,如图3-1 所示: 图31经济普查系统架构在Android自身架构的基础上,我们开发了一系列的组件,主要面对国土、环保、统计等行业,包括离线地图展示引擎、数据交互引擎、数据解析存储引擎、EForm表单引擎等,基本可

21、以满足采集系统的需求。3.2业务架构本系统分为移动调查终端和后台处理系统两部分。后台负责生成任务包下发给客户端,和接收客户端普查完毕的数据进行汇总、展示、分析。Pad端负责企业、建筑物数据的普查。后台负责成果合并、轨迹展示等。业务架构 如图32所示: 图32 业务架构3.3组件设计3.3.1 引用组件Pinyi4j 组件,负责拼音首字母的模糊检索。3.3.2 开发组件Atmap组件,负责离线地图的展示Compent 组件,负责json、xml的解析,自定义组件的引用3.4数据库设计 数据库设计,如图33 和图 34所示: 图 3-3 数据库设计 图34 数据库设计 第4章 系统实现4.1登录验

22、证登录验证,用户填写账号、密码登录后,系统校验器账号密码的合法性,如果合法,则显示登录用户的任务列表,如果验证失败,则返回登录错误。其中校验采用离线校验,即账号/密码文件存放在sdcard/21at/jjpc/user.xml中,其中用户名、密码采用MD5加密。类与需求对应关系表,如表41所示: 表41 类与需求对应关系表功能组(点)类对应需求编号关联文件类名简述用户登录LoginActivity用户登录类B-6-1-1-2/.jjpc.activity.LoginActivity(用户登录类)(1)说明该类负责登录页面的显示,包括两个账号输入框、密码输入框、登录按钮、退出按钮。通过用户输入的

23、账号密码与sdcard中的user.xml进行校验。(2)属性设计1 userName_eidt 声明账号输入框控件2 password_edit 声明密码输入框控件3 login_button 声明登录按钮控件4long_cancle 声明退出系统按钮控 3.1.5.3方法设计3.1.5.3.1login(String username,String password);3.1.5.3.1.1输入1账号2密码3.1.5.3.1.2输出用户名密码错误或者直接跳转到任务列表页面3.1.5.3.1.3算法1 将输入密码MD5加密2 读取sdcard/21at/jjpc/user.xml 中的use

24、rname、password3 进行校验。publicstatic String Md5(String plainText) try MessageDigest md = MessageDigest.getInstance(MD5);md.update(plainText.getBytes();byte b = md.digest();int i;StringBuffer buf = new StringBuffer();for (int offset = 0; offset b.length; offset+) i = boffset;if (i 0)i += 256;if (i 16)bu

25、f.append(0);buf.append(Integer.toHexString(i);return buf.toString(); catch (NoSuchAlgorithmException e) / TODO Auto-generated catch blocke.printStackTrace();return;4.1.6系统界面 如图41 所示: 图 41 登陆验证4.2任务列表3.2.1整体设计用户登录成功后,系统会从指定文件夹(sdcard/21at/jjpc/区县名/乡镇名)遍历普查区。系统要求:不可人为的删除任务包,不可更改普查区的目录结构,不可在工作目录下添加无用的文

26、件夹/文件。3.2.4类与需求对应关系表,如表42所示: 表 42类与需求对应关系表功能组(点)类对应需求编号关联文件类名简述任务列表TaskChooseActivity任务列表界面B-6-1-2-1/3.2.5com.jjpc.activity.TaskChooseActivity(任务选择类)3.2.5.1说明此类负责任务的列表展示。页面左上角有一个“退出系统”按钮,点击此按钮弹出对话框“是否退出系统?”点击“是”,退出系统。针对每一条任务都两项操作:1 查看任务 2 任务统计。 点击查看任务按钮,进入任务统计页面,点击”查看任务”按钮,进入地图页面。3.2.5.2属性设计1 taskLi

27、stView 声明普查区文字列表的载体。2 HashMap data 填充list view空间的数据载体3 pre_button 声明上一步按钮。3.2.5.3方法设计3.5.3.1getSharedPreferences(String,int);3.5.3.1.1.输入1文件名称2读写权限3.5.3.1.2输出用户名,文件路径。3.5.3.1.3算法List lstaskforder = Utils.getRenwuquName(TaskChooseActivity.this.getSharedPreferences(now_task.xml, 0).getString(filepath,

28、 );String taskFolderName = lstaskforder.get(0);List ls = Utils.refreshFileList(TaskChooseActivity.this.getSharedPreferences(now_task.xml, 0).getString(filepath,)+ / + taskFolderName);AtUtils.setSharedPreferencesString(TaskChooseActivity.this,now_task.xml, renwupath,TaskChooseActivity.this.getSharedP

29、references(now_task.xml, 0).getString(filepath, ) + / + taskFolderName);for (int i = 0; i ls.size(); i+) Map m1 = new HashMap();m1.put(title, ls.get(i);lm.add(m1);3.2.6系统界面,如图 42 所示图42 任务列表4.3地图展示3.4.1整体设计地图的展示页面,主要作用是辅助普查员进行建筑物的定位。主要显示普查区底图、普查区轮廓,建筑物poi.支持平移、放大、缩小、支持建筑物poi的单击、长按事件响应。单击图标进入建筑物详情,长按建

30、筑物提示“是否删除建筑物?”。本页面底部显示操作按钮,包括“建筑物列表”,“单位列表”、“我的位置”、“资料库”、“密码修改”、“任务统计”、“去普查区”。3.4.4类与需求对应关系表功能组(点)类对应需求编号关联文件类名简述底图展示MapActivity底图展示类B-6-1-3-2/建筑物poiPoiOverlay建筑物poiB6-1-3-5/普查区轮廓LunkuoPoi普查区轮廓B6-1-3-7/3.4.5 .jjpc.activity.MapActivity(地图展示类)3.4.5.1说明此类负责地图的展示、建筑物poi的展示、普查区轮廓的展示。在本页面底部包括所有的操作按钮。支持地图平

31、移、放大、缩小。3.4.5.2属性设计 At21MapController mapController; 声明地图控制类 LocationOverlay locationoverlay; 声明我的位置poi PoiOverlay poioverlay; 声明建筑物poi LunkuoOverlay lunkuoOverlay; 声明普查区轮廓poi PopupWindow menu; 声明弹出框 LayoutInflater inflater; 声明布局文件 RelativeLayout rl; 声明布局文件 DisplayMetrics metric; 声明页面管理类intwidth, he

32、ight; 声明页面宽度、高度3.4.5.3方法设计3.4.5.3.1 setGpsRefreshTime(int i);3.4.5.3.1 .1 输入Int 类型的 GPS刷新时间3.4.5.3.1 .2 输出GPS 刷新3.4.5.3.1.3算法privatevoid setLastKnownLocation() final LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);final Location loc1 = lm.getLastKnownLocation(gps);f

33、inal Location loc2 = lm.getLastKnownLocation(network);boolean boolGpsEnabled = lm.isProviderEnabled(GPS);booleanboolNetworkEnabled = lm.isProviderEnabled(NETWORK);String str = ;Location loc = null;if (loc1 = null & loc2 != null)loc = loc2;elseif (loc1 != null & loc2 = null)loc = loc1;elseif (loc1 =

34、null & loc2 = null)loc = null;elseloc = loc1.getTime() loc2.getTime() ? loc1 : loc2;if (!boolGpsEnabled) AlertDialog.Builder builder = new AlertDialog.Builder(MapActivity.this);builder.setMessage(请开启GPS);builder.setCancelable(true);builder.setTitle(提示);builder.setPositiveButton(确定,new DialogInterfac

35、e.OnClickListener() publicvoid onClick(DialogInterface dialog, int id) Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);startActivityForResult(intent, 0); / 此为设置完成后返回到获取界面);AlertDialog alert = builder.create();alert.show(); elseif (loc = null) AlertDialog.Builder builder = new AlertDial

36、og.Builder(MapActivity.this);builder.setMessage(GPS未能成功定位,请搜星或耐心等候.);builder.setCancelable(true);builder.setTitle(提示);builder.setPositiveButton(确定,new DialogInterface.OnClickListener() publicvoid onClick(DialogInterface dialog, int id) );AlertDialog alert = builder.create();alert.show(); else if (lo

37、c != null)this.mapController.getController().animateTo(TypeConverter.locationToGeoPoint(loc),OpenStreetMapViewController.AnimationType.MIDDLEPEAKSPEED,OpenStreetMapViewController.ANIMATION_SMOOTHNESS_HIGH,OpenStreetMapViewController.ANIMATION_DURATION_DEFAULT);3.4.6 .jjpc.poi.PoiOverlay(建筑物poi)3.4.6

38、.1说明此类负责建筑物poi的展示、新增建筑物、删除建筑物等操作。3.4.6.2属性设计private List arr; 声明建筑物实体列表private Paint paint; 声明画笔对象private LinearLayout mT; 声明poi布局文件private Context mCtx; 声明上下文对象privatefloatmDensity; 声明偏移量private String building_Id; 声明建筑物id3.4.6.3方法设计3.4.6.3.1 onDraw(Canvas c, At21MapController arg1)3.4.6.3.1.1输入1 输

39、入画布对象2输入地图控制类3.4.6.3.1.2输出绘制的POI3.4.6.3.1.3算法Overrideprotectedvoid onDraw(Canvas c, At21MapController arg1) final OpenStreetMapViewProjection pj = arg1.getProjection();Point curScreenCoords = new Point();if (arr != null) for (int j = 0; j arr.size(); j+) Building buil = arr.get(j);GeoPoint g = GeoPo

40、int.from2DoubleString(buil.getLat(),buil.getLng();pj.toPixels(g, curScreenCoords);c.save();c.rotate(arg1.getBearing(), curScreenCoords.x,curScreenCoords.y);onDrawItem(c, j, curScreenCoords);c.restore();3.4.6.3.2 getMarkerAtPoint(finalint eventX, final int eventY, At21MapController mapView)3.4.6.3.2.

41、1输入1手指点击处的X点2手指点击处的Y点3地图控制类 3.4.6.3.2.2输出9.1点击建筑物的index3.4.6.3.2.3算法publicint getMarkerAtPoint(finalint eventX, finalint eventY,At21MapController mapView) if (this.arr != null) final OpenStreetMapViewProjection pj = mapView.getProjection();final Rect curMarkerBounds = new Rect();final Point mCurScre

42、enCoords = new Point();for (int i = 0; i this.arr.size(); i+) Building buil = arr.get(i);GeoPoint g = null;g = GeoPoint.from2DoubleString(buil.getLat(), buil.getLng();pj.toPixels(g, mapView.getBearing(), mCurScreenCoords);finalint pxUp = 2;finalint left = (int) (mCurScreenCoords.x + mDensity* (5 - pxUp);finalint right = (int) (mCurScreenCoords.x + mDensity* (38 + pxUp);finalint top = (int) (mCurScreenCoords.y- this.mMarkerHotSpot.y - mDensity * (pxUp);finalint bottom = (int) (top + mDensity * (33 + px

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁