《2022年JME城地理信息查询系统设计方案与vbc实现.docx》由会员分享,可在线阅读,更多相关《2022年JME城地理信息查询系统设计方案与vbc实现.docx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源封面欢迎下载精品学习资源作者: PanHongliang仅供个人学习文本对利用 J2ME 网络 API 接口 javax.microedition.io.HttpConnection来建立 HTTP 连接实现与服务器进行数据传递,服务器端利用Servlet来响应用户查询请求,使用 Mapxtreme for java专有类和方法来进行地图数据处理,以及在客户端显示、放大、缩小、平移、查询地点用黄色渲染出来进行了争辩;关键词 : J2ME, MapXtreme ,地理信息系统,渲染欢迎下载精品学习资源DESIGN AND IMPLEMENTATIONOF URBAN GEOGRAPH
2、ICINFORMATIONSYSTEMBASED ON J2MEABSTRACTUsing network API interface javax.microedition.io.HttpConnection to set up to connection between the server and the client and transmit datas. It responds to user queriesrequest with Servlet at server-side.It processes map data by MapXtreme for java.It study h
3、ow to show enlarge、reduce、translation 、render map.It discusses the problems encountered on development process and the solve.Keywords: J2ME, MapXtreme, geographic information system, rend目 录第一章绪论 01.1 引言 01.2 城市地理信息查询系统的应用与前景0其次章相关技术介绍 02.1 什么是 J2ME02.2 J2ME的架构 02.3 MAPXTREME FOR JAVA简介 12.4 SERVLET
4、技术 22.5 基于 J2ME的地理信息服务系统特点 22.5.1 基于移动互联网络移动 22.5.2 移动性 22.5.3 瘦客户 22.5.4 终端技术的先进性 2第三章系统分析与设计 33.1 需求分析 33.2 系统总体结构 33.2.1 系统总体结构分析 33.2.2 服务器端的分析以HTTP 方式发送请求 43.2.3 客户端的分析设计 53.2.4 分析手机的地理信息服务系统的难点和相应策略5第四章系统的关键技术分析与实现74.1 用户界面显示 74.2 服务器端的分析 9欢迎下载精品学习资源4.2.1地图数据连接94.2.2实现地图缩放94.2.3空间查询 错误!未定义书签;第
5、五章结论 13参考文献 14致谢 14欢迎下载精品学习资源第一章 绪论1.1 引言随着 3G 时代的到来,无线通信迅猛进展,手机地图查询这种新颖的功能将得到快速的进展;现在,人们获得信息的方式正在经受着以位置服务为主要特点的深刻变革,这就为手机地图查询这一功能的普及供应了一个良好的环境;目前,越来越多的厂商在Sun,摩托罗拉,西门子和爱立信等公司的技术主持下,开头开发基于J2ME 平台的无线应用服务;基于J2ME 的城市地理信息查询系统正是其中极具代表性的服务工程,目前已经有许多网站供应地理信息的查询,但在嵌入式设备中供应此项服务的系统仍很少见;基于J2ME 的城市地理信息查询系统正是面对嵌入
6、式设备而开发的,具有界面友好,功能全面,性能稳固,易于扩展等特点,基本能中意用户的地理信息查询需求;1.2 城市地理信息查询系统的应用与前景随着技术的快速进展,GIS 地理信息系统 已经在许多部门和领域得到了广泛的应用,这些领域包括资源开发、环境爱惜、城市规划建造、土地治理、农作物调查与结产、交通、能源、通讯、地图测绘、林业、房地产开发、自然灾难的检测与评估、金融、保险、石油与自然气、军事、犯罪分析、运输与导航、 110 报警系统公共汽车调度等方面得到了详细应用;与此同时 , 无线移动设备得到广泛使用,各大生产厂商加大了对J2ME 技术的支持, J2ME 技术是目前在许多移动设备上受到广泛支持
7、的一种技术,可以在与台式机相比资源有限的环境中得到应用,与从前的 Symbian 等技术相比,具有平台开放性高,介入门槛低等优点,因此在此基础上的无线设备应用开发就更有着广泛的意义;将传统的GIS 技术和支持移动设备应用开发的J2ME 技术进行结合,构造能够便利快捷的查询地理信息查询的系统,就显得更具有应用价值;在 GIS 领域,目前许多公司和科研机构供应了特殊好的应用解决方案,其中比较成熟的有美国的 MapInfo公司,他们的Map-Info系列产品,可以供应从单机到网络的整个应用的开发接口,比较完善的产品包括MapX , MapInfo等,这中间的 MapXtreme for Java产品
8、是完全基于 Java 的开发接口,可以供应完整的跨平台的基于网络的地理信息的查询和处理;其次章 相关技术介绍2.1 什么是 J2MESun Microsystems 将 J2ME 定义为 “一种以广泛的消费性产品为目标的高度优化的 Java 运行时环境,包括寻呼机、移动电话、可视电话、数字机顶盒和汽车导航系统;”自从 1999 年 6loper Conference 上声明之后 2 , J2ME 为小型设备带来了 Java 语言的跨平台功能,答应移动无线设备共享应用程序;有了 J2ME, Sun 已经使 Java 平台能够适应集成了或基于小型运算设备在 Java One Dive 的用户产品;
9、2.2 J2ME 的架构J2ME 使用配置和简表定制Java 运行时环境 JRE ;作为一个完整的JRE,J2ME 由配置和简表组成,配置准备了使用的JVM ,而简表通过添加特定于域的类来定义应用程序;配置将基本运行时环境定义为一组核心类和一个运行在特定类型设备上的特定JVM ;我们将在 J2ME 配置一章中详细争辩配置;简表定义应用程序,特殊地,它向J2ME 配置中添加特定于域的类,定义设备的某种作用;下面的图表描述了不同的虚拟机、配置和简表之间的关系;它同时把J2SE API和它的 Java 虚欢迎下载精品学习资源拟机进行了比较;虽然J2SE 虚拟机通常被称为一种JVM ,但是 J2ME
10、虚拟机、 KVM和 CVM 都是JVM 的子集; KVM和 CVM均可被看作是一种Java 虚拟机 - 它们是 J2SE JVM 的压缩版,并特定于 J2ME ;图 2-1 不同虚拟机、配置和简表之间的关系2.3 MapXtreme for java简介MapXtremefor Java 版是企业级的地图绘制开发工具,可实现数据的可视化和地图绘制,帮忙企业作出更加杰出的决策,并更加有效地进行运营和治理资产;在可治理的服务器网络上实现应用 程序的运行,不仅在很大程度上提高了规模效益,如降低硬件和治理成本,同时仍明显改善了应用程序性能、牢靠性和安全性;使用MapXtreme for Java构建的
11、应用程序既可适用于企业内部网,也可适用于公共的因特网;MapXtreme for Java是一个 100% 的纯 Java 类( Java 2 兼容)集合,借助于这一集合,可将应用程序部署到各种系统,无论是Windows 、 UNIX 系统,仍是这两种系统的混合环境;MapXtreme供应了支持多平台、高质量、高性能的易用解决方案来中意各种地图绘制需求;有以下优点:(1) 多平台支持出于安全性、牢靠性和性能方面的种种缘由,诸如电讯和保险业等众多面对最终用户的行业,均接受了UNIX系统;而与此同时,同一企业中的不同用户,仍有可能使用Windows 系统;在多平台上部署类似解决方案是常见的需求之一
12、;借助于基于Java 的地图绘制应用程序,开发人员编写一个程序,即可在支持虚拟机的多种平台上运行;将MapXtremeJava 部署在服务器端运行,即可充分利用现有的UNIX或 Windows 资源;开发人员可以在一个系统上储备和把握数据,同时通过编程从其他运行虚拟机的运算机实现相应数据的拜望;(2) 高扩展性对于使用MapXtreme创建企业级地图绘制解决方案的组织而言,所开发的应用程序不仅应当可以良好运行,而且仍应当可以支持需要拜望各种应用的全部用户;MapXtreme为此接受基于组件的策略,供应了牢靠的多线程解决方案,确保了杰出的适应性和扩展性;借助于此,企业即可依据组织的详细需求来扩展
13、应用程序;(3) 快速部署借助于 MapXtreme ,用户可以实现应用程序的快速开发、安装和部署;本产品为此供应了用于快速开发原型的 Web Application Builder向导,以及呈现 MapXtreme Java 基本概念和学问的如干示例应用程序;这些示例应用程序既可以进一步开发为专用的应用程序,也可以作为用户自行开发应用程序所依靠的基础;MapXtreme Java与全部 J2EE 验证的 Web 服务器 / 浏览器兼容,并且不使用专属的插件;使用 MapXtreme Java可以构建两层和三层Web 地图绘制程序,处理源自客户机的地图数据请求;借助于其灵敏的可扩展体系结构,可
14、依据详细绘图需要,向客户机发送软件、把握对于敏捷数据的拜望和随需求的增长来扩展应用程序;程序员特殊可以:. 设计只具备所需的特性和信息的定制地图. 通过程序创建静态和动态对象. 自定义图元的外观、位置和行为. 监听类似用户鼠标点击的地图大事,初始化地图的变更欢迎下载精品学习资源对于要使用地图绘制应用程序的最终用户而言,可为其供应工具来实现:. 缩放和平移,以更换地图视野. 选择图元并绘制搜寻区域. 查询图元以猎取更多信息. 创建专题影线表示,例如基于数据库数据的颜色编码地图. 把握对象和标注的可见性和样式2.4 Servlet技术Servlet 是使用 Java Servlet 应用程序设计接
15、口( API )及相关类和方法的Java 程序;除了 Java Servlet API , Servlet 仍可以使用用以扩展和添加到API 的 Java 类软件包; Servlet 在启用 Java 的Web 服务器上或应用服务器上运行并扩展了该服务器的才能;Java servlet 对于 Web 服务器就好象Java applet 对于 Web 浏览器; Servlet 装入 Web 服务器并在 Web 服务器内执行,而applet 装入 Web浏览器并在 Web 浏览器内执行; Java Servlet API 定义了一个 servlet 和 Java服务器之间的一个标准接口,这使得 S
16、ervlets 具有跨服务器平台的特性;我们在争辩和设计支持地图查询和显示系统中间, 利用 MapXtreme for Java结合 Servlet 构造一个地图应用的服务器, 利用 J2ME 来设计移动设备端的应用界面和响应接口 , 可以实现从地图查询显示到相关应用的一系列功能;2.5 基于J2ME的地理信息服务系统特点2.5.1 基于移动互联网络移动互联网的进展推动网络地理信息技术从PC机走向手机和PDA 等移动设备;基于移动互联网络的Java手机的地理信息服务具有移动互联网络带宽较小、时延较大、连接牢靠性较低等特性;2.5.2 移动性移动的互联网便利了网络用户在移动中,随时随地地猎取所需
17、的GIS 信息和服务;移动地理信息服务系统具有可以供应应移动中的用户的当前位置和便利的查询自己感爱好的或四周的地理信息等功能,移动性是传统的互联网络所不能比拟的优势;2.5.3 瘦客户基于手机终端的地理信息服务系统受手机设备的特性限制,是客户端向服务器端请求地图图像,并进行显示,服务器进行空间数据的选取和图像生成的工作;而Java 手机由于接受了J2ME 技术,所以答应用户进行一些智能化的处理;一般的Java 手机由于受储备器容量、处理器速度等限制,只能进行极少量运算,因而在一般手机上开发基于矢量的地理信息应用难度相对较大;而PDA型的 Java 手机由于处理器和储备器及显示才能方面的限制相对
18、较小,可以承担较多的运算工作,客户端可以请求部分地图图形数据,解读这些数据,执行地图的生成和显示的工作,并执行一些简洁的查询;这种情形下,客户端由于是矢量格式的图形,故可以在数据答应的范畴内,执行某些基于矢量的地图操作;如新太集团移动终端产品事业部推出的面对Motorola A6288 、 388广深指南,其客户端就接受了基于矢量格式的地图;2.5.4 终端技术的先进性接受J2ME技术作为客户端技术有许多优点;第一,J2ME解决方案具有”智能化”的特点,这种智能化特点能辨认出用户拜望的信息是本地的仍是Internet上的;假如是在本地,就将储备区域中的信息调出来供用户浏览;如是Internet
19、上的,就将所需要的信息或程序下载到储备区;其 次,从用户操作的角度讲,J2ME能供应更多更灵敏的交互方式;在J2ME平台支持下,手机可以生成并显示基于矢量的图形,并且可以供应应用户基于矢量的图形操作;再次,从显示成效来看,欢迎下载精品学习资源通过使用 J2ME技术,用户将不再被限制在WAP设备的有限的单色接口,而是可以很简洁地享受到丰富多彩的生动的图像和应用;此外,J2ME仍可以供应离线的服务;第三章系统分析与设计3.1 需求分析与以往人们需要购买纸质地图产品不同,现在人们并不需要直接购买地图产品,而是通过购买汽车、手机或上网等途径使用电子地图产品;随着手机的日益普及,无线通信的多样化服务越来
20、越 接近一般消费者,而基于J2ME的城市地理信息查询系统正是其中极具代表性的服务工程,目前已经有许多网站供应地理信息的查询,但在嵌入式设备中供应此项服务的系统仍很少见,J2ME 城市地理信息查询系统正是面对嵌入式设备而开发的,具有界面友好,功能全面,性能稳固,易于扩展等特点,依靠专业的地图服务器MapXtreme 的支持,基本能中意用户的地理信息查询需求;打开手机,就能看到自己在地图中的精确位置,无论走到哪里都不存在迷路的问题了;通过手 机地图,快速查找离自己最近的车站、饭店、旅社等信息,对于驾车用户,可以便利分析自己的驾 车路线,假如第三方软件通过Google地图开发交通道路塞车信息等服务,
21、那么对于大城市的驾车者来说,可以为此节省大量时间,我想即使是付费服务,也有许多人愿意掏钱购买这么有用的服务的,到底中国的手机用户远远高于上网用户;所以上我觉得开发基于J2ME 的城市地理信息系统特殊有必要,也很有前景,必定会受到手机用户的宠爱;3.2 系统总体结构在争辩和设计支持地图查询和显示系统中间,利用MapXtreme for Java 结合 Servlet 构造一个地图应用的服务器,利用J2ME 来设计移动设备端的应用界面和响应接口,可以实现从地图查询显示到相关应用的一系列功能;3.2.1 系统总体结构接受 MapXtreme for Java作为地图服务器端,用于对地理数据进行查询和
22、处理,并结合Servlet 技术对客户端的请求进行响应,这样可以很好的结合MapXtreme地理信息处理和Servlet 的多线程处理才能;系统客户端使用J2ME 标准 API 和 MIDP 类库,因此具有很好的通用性,当用户使用地点查询功能时,系统提示用户输入要查询的地名,从服务器上返回地图图片数据,在客户端显示;系统总体结构分析图如图3-1 所示;图3-1系统总体结构分析图在系统中间没有考虑无线网络与客户端以及与服务器端的网关,系统环境中要求无线网络和支持 HTTP 协议, Web 服务器通过 HTTP 流接受从客户端发送过来的请求和发送处理的结果,地图服务响应处理模块就是系统的核心部分,
23、特地负责对地图数据的实际处理和返回;地图数据接受了 MapInfo 的 Tab 表格式,这些文件划分为概念类似于工作空间的 geoset (扩展名为 .gst)组;例如,数据中有一个 world.tab 文件和一个 world.gst 文件; geoset World.gst 是一种元数 据 文 件 , 用 于 说 明 一 个 包 括 world.tab 和 其 他 文 件 的 .tab 文 件 集 合 ; 用myMap.loadGeosetgeosetName, dataDir, servletURL ;来进行加载,其中 geosetName 是到 geoset 的完整路径, dataDir
24、 是 geoset 中引用的 .tab 文件在服务器运算机上的位置(可能和 MapXtremeServlet 不在相同的运算机), servletURL 是 MapJ 使用远程 DataProviderRef 时到 MapXtremeServlet 的路径(假如使用 LocalDataProviderRef ,参数为空);欢迎下载精品学习资源MapXtreme Java 仍供应了接受 .mdf 格式的数据集;基于XML的地图定义是说明地图图元和设置的文本文件,打破geosets 的限制条件,所以建议使用地图定义;那么如何来加载地图定义呢?要显 示 现 有 地 图定 义 , 可 执 行 以下 操
25、 作 : myMap.loadMapDefinitionm_fileToLoad; 其 中m_fileToLoad 为地图文件所放置的确定地址;客户端主要供应用户查询的输入接口和与服务器端连接的接口,并且在手机上显示查询结构(查询后的地图),同时仍具有对地图进行放大,缩小和移动的功能;服务器主要以HTTP 方式接收客户端请求,并依据请求将地图数据以数据流传输的方式返回给客户端;系统结构框图如图3-2欢迎下载精品学习资源输入查询的地点以 Http 方式发送请求依据地点查询地图显示地图返回数据图片依据请求渲染地图对图片进行放大,缩小或移动以 Http 方式发送请求所示;3.2.2 服务器端的分析图
26、 3-2系统结构框图欢迎下载精品学习资源由于客户端是与服务器端的Servlet 进行通信 , 服务器端主要是如何协作客户端的功能设计;Servlet 的核心内容就是要对客户端发来的请求进行处理, 然后将处理结果写入响应中发送到客户端; servlet 有良好的生存期的定义,包括如何加载、实例化、初始化、处理客户端请求以及如何被移除;这个生存期由javax.servlet.Servlet 接口的 init,service 和 destroy 方法表达;( 1)加载和实例化容器负责加载和实例化一个servlet;实例化和加载可以发生在引擎启动的时候,也可以推迟到容器需要该 servlet 为客户请
27、求服务的时候;第一容器必需先定位servlet 类,在必要的情形下,容器使用通常的Java 类加载工具加载该servlet,可能是从本机文件系统,也可以是从远程文件系统甚至其它的网络服务,可以通过Java Web 服务器的 HTTP Web 服务的 servlet 把握页面来把握;容器加载servlet 类以后,它会实例化该类的一个实例;需要留意的是可能会实例化多个实例,例如一个servlet 类由于有不同的初始参数而有多个定义; servlet 只加载一次 , servlet 的多个线程将处理客户的多个请求;( 2)初始化servlet 加载并实例化后,容器必需在它能够处理客户端请求前初始化
28、它;初始化的过程主要是读取永久的配置信息,昂贵资源(例如JDBC 连接)以及其它仅仅需要执行一次的任务;通过调用它的 init 方法并给它传递唯独的一个(每个servlet 定义一个) ServletConfig 对象完成这个过程;给它传递的这个配置对象答应servlet 拜望容器的配置信息中的名称值对(name-value)初始化参数;这个配置对象同时给servlet 供应了拜望实现了ServletContext 接口的详细对象的方法,该对象描述了 servlet 的运行环境;欢迎下载精品学习资源(3)处理请求在 servlet 被适当地初始化后,容器就可以使用它去处理请求了;每一个请求由S
29、ervletRequest 类型的对象代表,而servlet 使用 ServletResponse回应当请求;这些对象被作为service 方法的参数传递给servlet;在 HTTP请求的情形下,容器必需供应代表请求和回应的HttpServletRequest 和HttpServletResponse 的详细实现;需要留意的是容器可能会创建一个servlet 实例并将之放入等待服务的状态,但是这个实例在它的生存期中可能根本没有处理过任何请求;(4)服务结束容器没有被要求将一个加载的servlet 储存多长时间,因此一个servlet 实例可能只在容器中存活了几毫秒,当然也可能是其它更长的任意
30、时间(但是确定会短于容器的生存期)当容器准备将之移除时(缘由可能是储存内存资源或者自己被关闭),那么它必需答应servlet 释放它正在使用的任何资源并储存任何永久状态(这个过程通过调用destroy 方法达到);容器在能够调用destroy 方法前,它必需答应那些正在service 方法中执行的线程执行完或者在服务器定义的一段时间内执行(这个时间段在容器调用destroy 之前);一旦destroy 方法被调用,容器就不会再向该实例发送任何请求;假如容器需要再使用该servlet,它必需创建新的实例;destroy 方法完成后,容器必需释放servlet 实例以便它能够被垃圾回收;本系统的
31、Servlet 运行在 MapXtreme for java服务器中 , 详细实现以下功能:(1) 连接地图数据;(2) 生成相应的地图图片;(3) 发送到客户端;3.2.3 客户端的分析设计本系统的主要功能是要在服务器端完成的;客户端主要在于供应应用户一个操作界面, 而这一点是与移动设备的特点相关的,移动设备的处理才能、资源有限, 所以需要尽量将运算处理集中于服务器端完成,减小客户端的负担、提高效率;而要集中于服务器端完成的首要条件就是必需能与服务器通信, J2ME 技术中 MIDP网络库中是以 HTTP 作为网络协议的,这使得MIDP设备实现网络接口变得特殊简洁;客户端功能实现详细分为以下
32、几个模块:(1) 发送用户选择的城市、地点类型、输入的地名信息等到服务器;(2) 接受服务器端返回的地图数据;(3) 选用合适的方法显示地图;3.2.4 地理信息服务系统的难点和相应策略(1) 手机储备器和海量的数据之间的尖锐冲突;虽然现在许多手机都有了好几个G 的储备容量,但是,我们必需要考虑到现在仍是有许多的用户的手机没有储备卡的;为了克服这个限制,我们必需接受比较合理的数据结构,对数据进行纵向分层、横向分块、多次请求等策略,以削减一次请求传到手机终端的数据量;(2) 手机处理器处理速度比较慢;相对于电脑来说,那手机的处理速度实在是没法比拟的;所以在开发针对手机设备的GIS 应用系统时数据
33、的输入、解读、地图的生成和显示等都会比较慢,因而我们要尽可能地削减手机处理器的负担,尽可能将大量的运算工作放在服务器端;(3) 连接无线网络时延时比较大,网络传输速度比较慢;当前 GSM 移动通信网的传输速度是每秒9.6 千比特, GPRS 移动通信网的传输速度理论上可达每秒 171.4 千比特,实际上GPRS 的数据传输速率每秒只有20-30 左右;这时我们就必需尽可能的欢迎下载精品学习资源削减客户和服务器的交互,削减每一次传输到手机设备的数据量,并且充分利用客户端已有的数据;欢迎下载精品学习资源第四章系统的关键技术的实现4.1 用户界面显示用户界面的显示,借助菜单,按钮等标准元素帮忙用户便
34、利地对手机进行操作,并将结果以图形的方式显示给用户;手机属于 CLDC 规格,而在CLDC 中本事并没有包含任何的用户界面包,这些包被定义 在 MIDP 中 ; 在 MIDP 中 , 使 用 java.microedition.lcdui 包 来 获 得 界 面 对 象 ; 在java.microedition.lcdui 包里面的界面对象是由 Displayable 继承而来的,其中有分为 Screen 及 Canvas 两类,而 Screen 是高级屏幕对象, Canvas是低级屏幕对象;MSDP GUI的核心是 Screen,而每个 MIDP的应用程序( MIDlet )会于唯独的一个D
35、isplay 对象,它治理这屏幕的显示;当调用Display 对象的 setCurrent()函数时候,屏幕就被显示;地图的显示,调用了MIDlet中的 Display.getDisplaythis 方法和 Display 对象中的 setCurrent( Display d )函数来显示主界面对象;做移动 GIS 并使用 J2ME+MapxTreme 模式那么其中一个问题很让人头痛,那就是如何将 MapxTreme 渲染出来的Image 返回给客户端; J2ME 接收数据的时候是将InputStream 转换成 Byte 然后再进行处理的;可以将MapXtremeRender 出来的图片现储
36、存到硬盘然后通过InputStream iStrm = new FileInputStreamcurpath+*.gif; 方法将其转化为InputStream 然后再转化为 Byte , imageData = baos.toByteArray ;,把得到的数据流转化为Byte ,然后再渲染出来;手机客户端与后台MapXtreme 服务器通过网络通信程序进行数据传输;在J2ME 中有javax.micrioedition.io包,在该包中供应了Connection 框架,由一组接口构成,包括了Connection 接口及子接口;在CLDC 中定义了 7 个接口,其中包括ContentConn
37、ection ,在MIDP增加了一个 HttpConnection接口; Connector 类可以用来进行网络等各方面的输入及输出,有用的都是Connector 的 open()函数;同时用HttpConnection 接口建立HTTP 连接,实现网络的连接;在 J2ME 中有 2 种实现线程的方法,可以是java.lang.Runnable 以及 java.lang.Thread 的方式,这里接受了后者,java.lang.Thread 类表示一个线程类,它定义了设置和查询线程属性的函数和启动线程运行的run()函数;从服务器端获得数据一般是先给定一个URL 地址以打开与服务器的连接,然后
38、从中打开数据流,最终从中读取数据;主要用到了Connector 类和 HttpConnection 接口;在向服务器提交数据时有两种方法:Get 和 Post;HttpConnection c = null ;System.out.printurl ;StringBuffer strbuf = new StringBuffer;ByteArrayOutputStream baos = new ByteArrayOutputStream;/储存读入的图片数据DataInputStream dis = null ;byte imageData = null ;try/ 打开对象欢迎下载精品学习资源
39、c = HttpConnectionConnector.openurl;/System.out.printlnurl ;/ 客户端名称c.setRequestPropertyUser-Agent, Profile/MIDP-2.0;/ 可以接受的 MIME 类型c.setRequestPropertyAccept, text/html,*/*;int len = intc.getLength ;dis = c.openDataInputStream ;/打开输入流System.out.printlnlen ;/ 假如取得了长度就读入全部的数据iflen0byte data = new byte
40、len ;dis.readFullydata ;forint i = 0 ;idata.length ;i+/strbuf.appendchardatai ;baos.writedatai ;else / 否就逐个逐个字节读入int ch ;whilech=dis.read.=-1/strbuf.appendcharch ;baos.writech ;catchException eSystem.out.printlnError3+e;finally/ 把不要用到的变量置空msg.setTextstrbuf.toString ;strbuf = null ;ifdis.=nulldis.clo
41、se;ifc.=nullc.close;f.setTitlenull ;imageData = baos.toByteArray ;/ 将 Image 转化为 Byte 类型try/ 使用 createImage 方法创建 Image,数据信息已经在imageData 数组中image = image.createImageimageData,0,imageData.length ;ifimage = null/假如 image 为 null 提示出错了Alert alert=new AlertERROR,NOT FOUND,null,null;alert.setTimeout2000 ;欢迎
42、下载精品学习资源alert.setTypeAlertType.ERROR ;catchNullPointerException e System.out.printlnNullPointerException;/f.appendimage ;xianshi ;/ 渲染地图下面图 4-1 为渲染地图的结果;图 4-1 地图渲染4.2 服务器端的功能实现服务器端可以详细分为:送数据等几个核心的流程;4.2.1 地图数据连接使用 MapXtreme for java通过 Map Definition Manager连接地图数据、接受客户端的请求、生成地图图片数据、发中的特有类装载 tabMapJ,可
43、以装载 gst格式的文件 ,该文件可以文件来进行生成 ,这是 MapJ 可以装载的一种图形定义格式 ,然后可以进行比例尺以及图形尺寸和相关特点的加载;if m_fileToLoad.endsWith.gst myMap.loadGeosetm_fileToLoad, m_mapPath, null;else myMap.loadMapDefinitionm_fileToLoad;然后对地图进行渲染;/ 为 MapJ 建立 renderer 来渲染地图try MapXtremeImageRenderer rr = new MapXtremeImageRendererm_mxtURL/ 依据参数绘
44、制地图rr.renderImageRequestComposer.createmyMap, NUM_OF_COLORS, BACKGROUND_COLOR, image/gif/以数据流的格式输出到客户端rr.toStreamres.getOutputStream ;4.2.2 实现地图缩放主要对地图实现放大、缩小等操作;此项功能得到最终的放大(缩小)的图片,并把下载路径传回客户端;这个功能与目前许多地理信息网站供应的功能相像,而网站上直接由鼠标点选放大缩小地址的设计给了我们启示,手机端虽然没有鼠标,但我们设法结合使用方向键的功能设计出了自己的“鼠标”,也就是用户可以点击右边的软键,然后选取操
45、作菜单中的“ zoomIn”或“ zoomOut”即可达到放大缩小的功能;如图4-2 所示;欢迎下载精品学习资源int tool = NO_TOOL;/ 放大,缩小,平移或是查询/ 监听是否要用到工具if reqParam = req.getParametertool.=null tool = Integer.valueOfreqParam.intValue ;/ 得到前面地图的中心坐标DoublePoint newpoint = myMap.getCenter;/取得放大比例double newZoom = myMap.getZoom;if tool = ZOOM_IN_TOOL newZoom /= 2.0 ;else if tool = ZOOM_OUT_TOOL newZoom *= 2.0 ;欢迎下载精品学习资源