岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> J2ME >> 无线开发 >> Java正文
Java 手机与空间制图服务(WMS)应用集成
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 22:55:11
ervice 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 服务响应

图 2 WMS GetMap 服务响应


3 Java 手机与网络

3.1 J2ME 手机对网络的支持

J2ME 手机使用 HTTP 协议作为 MIDP 网络库的网络协议。HTTP 是一个丰富而且被广泛使用的协议,可以在不同的无线网络中很简单地实现。MIDP 设备的 HTTP 可以使用 IP 协议,例如 TCP/IP 或非 IP 协议像 WAP 或 i-Mode 来实现。MIDP 网络 API 定义在javax.microedition.io.HttpConnection 中。这个接口扩展了javax.microedition.io.ContentConnection并且提供了附加的域和方法来解析 URL、设置请求以及解析相应头。

3.2 J2ME 手机对空间制图服务(WMS)导航图像(PNG 格式)数据的请求

以下代码仅演示J2ME手机对空间制图服务(WMS)数据请求核心的代码,空间制图服务(WMS)服务器,可以是任何符合OGC WMS标准的任何服务器(本文使用了Mapinfo MapXtreme 4.7提供的WMS服务)

package untitled9; 

import java.io.*;

import java.util.*;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

import javax.microedition.rms.*;

import javax.microedition.io.*;

public class Untitled0

    extends MIDlet

    implements CommandListener, ItemStateListener {

  Display display;

  Canvas canvas0;

  // Custom declaration code starts here

  public Untitled0() {

    display = Display.getDisplay(this);

    canvas0 = new Canvas() {

      public void paint(Graphics g) {

        HttpConnection content = null;

        byte[] contents = null;

        try {

          content = (HttpConnection) 

Connector.open("http://localhost:8080/wmsserver111/servlet/wms?
VERSION=1.1.1&SRS=epsg:4267&REQUEST=GetMap&LAYERS=Layers/Beijing/
Road&STYLES=&BBOX=-180,-180,180,180&WIDTH=
120&HEIGHT=120&FORMAT=image/png"); /************************************************************************ 通过 Http 协议建立连接 content 对象,取得 GIS 图像数据文件的长度;然后, 按照该文件的长度构造缓冲区 kkk[];由 content 对象获取输入流, 将数据输入流与数据输入流连接,将 GIS 图像数据文件的数据读入缓冲区 kkk[], 由 kkk[]缓冲区构造静态 GIS 图像对象me=Image.createImage(kkk,0,kkk.length); 这样就可以构造出静态 GIS 图像,从而就可以使用任何绘图语句将图像在 J2ME 手机屏幕上。 图像的显示:建立一个画布 Canvas,在 Canvas 的 paint 事件中,加入如下代码: g.drawImage(me,0, 0, Graphics.LEFT| Graphics.TOP); *************************************************************************/ try { DataInputStream _in = new DataInputStream(content.openInputStream()); _in.available(); int _length = (int) content.getLength(); if (_length < 1) { _length = _in.available(); System.out.println(_length); } contents = new byte[_length]; _in.readFully(contents); _in.close(); System.out.println(contents.length); Image img = Image.createImage(contents, 0, contents.length - 1); g.drawImage(img, 0, 0, g.LEFT | g.TOP); } catch (IOException except) { except.printStackTrace();

上一页  [1] [2] [3] [4] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:WebSyue@163.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    天龙八部私服 热血江湖私服 天龙八部私服 bet365 魔域私服 劲舞私服 传奇世界私服 bet365 传世私服 传奇世界私服