`
SOULisy
  • 浏览: 25609 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java手机与空间制图服务应用集成

    博客分类:
  • J2ME
阅读更多

      本文探讨利用 J2ME 手机,实现移动设备与空间制图服务(WMS)网络应用服务集成,可以实现对J2ME手机对网络LBS、GIS 图像数据的访问与地图数据的显示,并在迅速实现小型的LBS、移动 GIS 核心的导航地图的显示功能。

  引言

   人类的日常生活行为80%以上与空间位置有关,对空间位置信息获得有着与生俱来的需要。随着社会的发展,人们的活动范围越来越大,而且越来越不确定。这 种移动性和不确定性给移动通信带来市场和挑战的同时,也为空间位置服务的开展和扩大带来了无限商机。空间位置服务(LBS--Location Based Service以下简称LBS),是指通过移动通信网络,采用无线定位,结合GIS地理信息系统,为用户提供基于位置导航、查询的一种增值业务。LBS属 于移动GIS中典型的应用领域之一,它涉及到地理信息服务、计算机应用互操作、无线通讯、手机等技术,属于空间信息、计算机网络协同计算交叉学术领域。目 前,应用无线通讯技术最广的消费群体是手机用户,这些用户对空间位置服务有较大需求。

  与此同时,伴随着计算机网络、无线通讯等技 术的发展,Java 手机的应用已经在国内崭露头角。Java 手机(注:J2ME手机是指支持Java Micro Edition ,MIDP的手机,通常我们所说的"Java手机"就是"J2ME手机")一改传统手机功能固定、系统封闭的模式,为 Java 手机开发者与用户提供了一个开放的接口,应用程序开发者和用户可以根据自己的需要开发或下载符合自身的软件。目前, J2ME (Java 2 Platform, Micro Edition)已经成为目前最流行的手机应用开发平台之一。

  Java手机的发展已经为开发基 于Java手机平台的空间位置服务(LBS)提供了条件。针对手机用户对空间位置服务的需求,笔者基于 Java 手机开发出了"个人导航系统"。本系统的早期版本(基于 Motorola 388手机),曾在在2002年6月中国软件协会、Motorola、Sun公司等联合举办的"全国无线 Java 应用程序大赛"中获得优秀奖。

   通常来说,在CPU运算速度低、内存与存储空间有限的 Java 手机上开发 LBS与GIS 导航系统是比较困难的,一些LBS用户对导航地图信息的获取,往往是通过Java手机与相关LBS业务应用网络服务应用集成来实现的,这其中 Java 手机对网络 GIS 图像导航资源的获取与操作,是任何LBS系统的核心技术之一。笔者在自主开发的"个人导航系统"中,利用 J2ME手机(Motorola388、Motorola A760等)通过 GPRS 网络,实现了 J2ME 手机与空间 WMS (Web Map Service)服务应用集成,并获取导航地图,并完成相关操作。以下介绍 J2ME 手机对网络图像资源的访问。

  2 J2ME 手机对图像对象的获取

  2.1 J2ME 手机对图像的获取与显示


   J2ME 手机的 MIDP 1.0标准版本,只支持 PNG 格式的图像。可以显示静态的图像和非静态的图像。静态图像是指一经创建,图像的内容就不再变化的图像。而非静态图像是指图像可以有 J2ME 绘图语句动态创建。由于 J2ME 手机的计算能力有限,在基于 J2ME 手机的移动 GIS 中,笔者采用了静态 PNG 格式的栅格图像。J2ME 手机对静态图像的创建主要有两种方式:
   
    第一种方式:直接由捆绑在应用 JAR 文件中的应用资源文件来装载和创建一个静态图像[1]。其构造方式为:

  Image img=Image.createImage(String pngName);

   其中:pngName 为 J2ME 应用程序 Jar 文件中的图像文件名。由于 J2ME 手机的存储容量有限(通常为几百 K 或几兆),而LBS、移动 GIS 空间数据量相对较大,单纯地将LBS、移动 GIS 客户端的数据,按照上述方式存储在移动客户端本地 J2ME 手机上,很难满足移动 GIS 空间数据的存储;另外,对移动客户端的数据更新也比较困难。     第二种方式:使用二进制 PNG 格式数据创建一个静态图像。

  Image img=Image.createImage(byte[], int offset, int length);

  其中:byte[] 为 PNG 格式数据数组,offset,length 分别为使用数组的偏移量与长度。

  这种创建静态图像的方式比较灵活,PNG 格式数据数组可以来自 J2ME 程序的任何地方(如:网络)。笔者开发的基于 Motorola388 手机的LBS、移动GIS系统,就是利用移动客户端的 Motorola388 手机来动态地读取网络服务器 的 GIS 空间数据(当然数据格式可以是矢量或栅格格式),而且能比较方便地更新客户端的数据。

  2.2 空间地图服务(Web Map Service)的 GIS 图像动态生产

   空间Web服务(Spatial Web Services)是关于空间信息应用之间的互操作的研究领域。伴随着计算机软硬件技术的发展,空间 Web 服务也发展很快,相应的标准化工作也在迅速展开。空间信息目前 OGC 已经制定或建议的空间 Web 服务主要有:

  Web Map Service,

  Web Registry Service,

  Web Feature Service,

  Web Coverage Service,

  Styled Layer Descriptor for WMS,

  GeoCoder Service,

  Transaction WFS 等等,

  其中:ISO/TC211已经采纳与空间Web相关的标准有:Web Map Service (ISO 19128)标准、以及ISO 19136 - Geography Markup Language(地理信息标记语言GML)。

  图 1 空间 Web 服务体系结构

    

 

  空间 Web 服务与标准的 Web 服务有着类似的体系结构,但是空间 Web 服务与标准的Web 服务也有一些区别:如:空间 Web 服务中消息的传递可能直接使用 XML 协议而不使用 SOAP 协议。鉴于移动用户最关心的是空间信息相关的地图信息,而 WMS 服务已经被ISO/TC211 采纳,以下主要围绕移动设备(如:Java 手机)与空间 Web 服务 WMS 之间的互操作来研究。

  地图服务器 Web Map Service WMS 是一种 Web 服务,它提供了由地理空间动态产生用户所需要的空间信息的服务。用户可以获得适合自己显示的栅格(如:PNG, GIF or JPEG)、栅格数据(如:SVG),或 Web 图像元文件 Web Computer Graphics Metafile (WebCGM)等数据格式。OGC 定义了地图服务器 Web Map Service WM 的三种操作,GetCapabilities,GetMap,GetFeatureInfo。其中与导航密切相关的是 GetMap 操作,GetMap 返回一幅根据客户端请求参数动态生成的地图。

     

       如:http://localhost:8080/wmsserver111/servlet/wms?VERSION=1.1.1

  &SRS=epsg:4267&REQUEST=GetMap&LAYERS=Layers/World/Countries&STYLES=&BBOX=

  -180,-180,180,180&WIDTH=800&HEIGHT=600&FORMAT=image/gif

  将返回一幅地图给客户端:

   图 2 WMS GetMap 服务响应

     

分享到:
评论

相关推荐

    Java绘图依赖包java_3D

    7. **事件处理与用户交互**: Java 3D 集成了Java AWT和Swing的事件处理机制,可以方便地添加鼠标和键盘交互,如旋转、平移和缩放3D对象。 8. **动画与时间**: 通过Java 3D的TimeLine和Interpolator类,开发者可以...

    JAVAME手机游戏开发

    1. **KJava与MIDP**: JavaME中的两种主要API,KJava是早期的J2ME平台,而MIDP(Mobile Information Device Profile)是后来的标准,主要用于开发移动应用和游戏,包括用户界面、网络通信等功能。 2. **CLDC与CDC**:...

    Java中使用MATLAB作图

    1. **MATLAB Compiler SDK**: MATLAB Compiler SDK允许开发者将MATLAB代码转换为可与Java应用程序集成的独立组件。首先,确保安装了MATLAB及其Compiler SDK。通过这个工具,可以创建一个Java类库,其中包含了MATLAB...

    java开源包6

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包9

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包4

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    Java手机动漫游戏设计教程

    Java手机动漫游戏设计教程主要关注的是使用Java技术在移动设备上开发动漫和游戏。这个教程由房晓溪编著,提供了全面的理论知识和实践指导,涵盖了从基础到高级的Java移动开发技能,特别是针对Java Micro Edition ...

    java开源包101

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    Java手机程序设计入门8

    ### Java手机程序设计入门8 —— ...综上所述,《Java 手机程序设计入门 8》这一章节通过详细介绍 MIDP for Palm OS 的使用方法,为 J2ME 新手提供了宝贵的学习资料,同时也对 Java 移动应用开发领域产生了深远的影响。

    java开源包5

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包8

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包10

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包3

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包1

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    ht_ht2002制图软件_java_

    总之,【ht_ht2002制图软件_java_】是一款利用Java技术实现的、具有自动化绘图功能的制图软件,它的强大功能和易用性使得用户能够快速、精确地创建专业级别的图形作品。对于需要处理大量图形的行业,如电子设计、...

    Java资源包01

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    Java64位SWT

    Java 64位SWT是Java开发者用于创建图形用户界面(GUI)的一种工具包,它提供了与操作系统底层更紧密的集成,使得Java应用程序能够拥有原生应用般的性能和外观。SWT,全称Standard Widget Toolkit,是Eclipse开源组织...

    Java技术在图像处理中的应用探究.zip

    在机器学习和人工智能领域,Java可以与TensorFlow、Deeplearning4j等深度学习框架集成,构建和训练神经网络模型,实现图像分类、目标检测等复杂任务。这些框架提供了Java API,使得开发者无需掌握底层的C++或Python...

    JAVA上百实例源码以及开源项目源代码

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

Global site tag (gtag.js) - Google Analytics