选择显示字体大小

基于servlet的google earth应用


  从某种程度来说google earth客户端是我们时期的技术标志之一。google earth并非是第一个地球浏览客户端,而且与它的先驱、不为人知的keyhole非常相似。但是凭着google的大名以及基础版对最终用户免费,它完成了市场渗透并得到公认――这是另一个值得大书特书的有趣话题。

  本文只有一个基本使命:即向你展示在servlet和google earth客户端之间发送和接收信息是多么的容易。有了这种程度的交互,你就能用基本的java编程技能创建设想的服务。

  使用许可及竞争者

  截至本文发稿时google earth还处于beta阶段(版本号3.0.0616),许可证是商业的(见客户端的帮助部分)。如果你想寻求等价的开源范例,我建议你去关注优秀的nasa world wind(nasa世界风)项目

  基础知识

  google earth客户端以第二版的锁位标记语言(kml)解析xml数据,它有一个专用的命名空间。庞大的kml配置信息可能会影响到gui显示,开发这种需要平衡利弊的应用的难点在于需要了解更多的kml细节而不是编程技巧。kml实体的简要列表包括:

  *placements(位置),标明在地球上的坐标

  *folders(夹子),帮助组织其它的特征信息

  *documents(文档),存放可能包含风格元素的folder的容器

  *image overlays(图片叠加),用来添加图片

  .network links(网络链接),描述在何处以及如何与服务器或者servlet(本文采用的方式)连接

  本文为了简化的目的,主要探讨了folder、placement.network-link元素的使用;此外还用folder定义了一段旅程(tour),它里面包含了一系列的placement。

  在windows上安装了google earth后,文件扩展名kml和mime(multipurpose inte.net mail extensions,多用途网络邮件扩展)类型“application/keyhole”即被注册。这意味着只要点击kml文件或通过tcp/ip接收“application/keyhole”mime类型的文件就会激活google earth客户端。

  如果返回的kml文本为:

<folder><name>hello world [127.0.0.1] </name></folder>

  则程序将显示如下内容:


图1 hello world folder的gui显示

  要想激活earth客户端,只需浏览适当的url地址--就好比从资源地址(http://localhost:8080/tour/hello)下载helloservlet源程序。这样就能激活doget()方法,然后重定向到dopost()方法,在所有的web浏览器里都会看到以下结果:

protected void doget(httpservletrequest request, httpservletresponse response)
throws servletexception, ioexception
{
 dopost(request, response);
}

protected void dopost(httpservletrequest request, httpservletresponse response)
throws servletexception, ioexception
{
 response.setcontenttype("application/keyhole");
 printwriter out = response.getwriter();
 string message ="<folder><name>hello world ["
  + request.getremoteaddr()+ "]</name></folder>";
 out.println(message);
}

  不要小看这段简单的代码,里面的方法暗藏着玄机。服务器可以作为各种数据类型和google earth之间的中介。不妨设想像这样一个场景:在旅程数据中包含有不同的xml方言,在返回响应前由服务器完成扩展风格语言(extensible stylesheet language)的转换。再进一步,服务器可以选择返回哪一种响应,以允许个性化处理。kml文档实体允许风格定义,可根据ip地址范围改变风格,使得不同的用户看到的风格可能会不一样。

  作为实践,我们将从使用google earth和输出kml文件开始。在google earth的顶部是add菜单,可以在这里添加placement、folder和image overlay,然后用file菜单保存生成的kml文件。我强烈推荐编辑导出的xml文件以了解改动对google earth的影响。好了,让我们开始与这位世界之王共舞!


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons