使用Java Applet开发的WebGIS

Java Applet是在程序运行时,从服务器下载到客户机端运行的可执行代码。 Java Applet是由面向对象语言Java开发的小应用程序,与Web浏览器紧密结合,以扩展Web浏览器的功能,完成GIS数据操作和GIS处理。

GIS Java Applet最初为驻留在Web服务器端的可执行代码。在通常情况下,GIS Java Applet包容在HTML代码中,并通过<APPLET>参考标签来获取和引发。它能完成GIS数据解释和GIS分析功能。但是,对于处理大型的GIS分析任务(如叠置、资源分配等)的能力,无法与CGI模式相比;GIS数据的保存、分析结果的存储和网络资源的使用能力受到限制.
基于GIS Java Applet的WebGIS的优势:

GIS操作速度快。所有的GIS操作都是在本地由GIS Java Applet完成,因此运行的速度快。

服务器和网络传输的负担轻。服务器仅需提供GIS数据服务,网络也只需将GIS数据一次性传输。服务器的负担很小,网络传输的负担轻。

基于GIS Java Applet的WebGIS的劣势:

需要安装JVM,受到平台的限制

后续工作添加Java Applet开发WebGIS实现原理.

1.放大
2.缩小
3.旋转
 下面有款开源的实现上面的功能的project.
http://sourceforge.net/projects/jcdsee

放大、缩小可以用Image.getScaledInstance()方法,移动在jdk5.0   的   Documentation   里有例子;   
用 Applet   或   Application   的原理其实都是一样的。
Java applet实现图片的放缩问题 现总结两种方法:1.在画板(canvas)中显示图片,通过画板大小的控制来实现图片的放大缩小.2.直接利用算法来控制图片的放大缩小.


参考:
以下网址有许多处理图像的源码:  
  http://dmoz.org/Computers/Programming/Languages/Java/Class_Libraries/Graphics/  
  http://dmoz.org/Computers/Programming/Languages/Java/Class_Libraries/Graphics/Data_Formats/

CSDN Topic Code:
Scale   an   Image  
  import   java.awt.image.*;  
  import   java.awt.*;  
  import   java.net.*;  
   
  public   class   app   extends   java.applet.Applet   {  
      Image   source;  
      Image   resizedImage;  
   
      public   void   init()   {  
          MediaTracker   media   =   new   MediaTracker(this);  
          //   java   how-to   image   for   example  
          source   =   getImage(getDocumentBase(),"jht.gif");  
          media.addImage(source,0);  
          try   {  
              media.waitForID(0);  
              //   scale   down,   half   the   original   size      
              ImageFilter   replicate   =    
                    new   ReplicateScaleFilter  
                        (source.getWidth(this)/2,   source.getHeight(this)/2);  
              ImageProducer   prod   =    
                    new   FilteredImageSource(source.getSource(),replicate);  
              resizedImage   =   createImage(prod);  
              media.addImage(resizedImage,1);  
              media.waitForID(1);  
              }    
          catch(InterruptedException   e)   {}  
          }  
   
      public   void   paint(Graphics   g)   {  
          g.drawImage(source,   10,10,this);  
          g.drawImage(resizedImage,10,   80,this);  
          }  
  }   
   

kaixin110 是一位Web工程师。他原来是在郑州一家软件公司做WebGIS(JSP+Servlet+Tomcat),对WebGIS的原理有一定研究,在狂热地编写代码之余,他喜欢打篮球并体验软件带给我们的惊喜 。目前在中国深圳一公司做Web开发(ASP.NET),如果您希望就本文与 kaixin110联系,则可以通过 www.goodbus.cn与他联系。

你可能感兴趣的:(applet)