⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studyvariousrender.java

📁 CreateMyFirstMap
💻 JAVA
字号:
package secondstudy;
import com.mapinfo.mapj.MapJ;
import com.mapinfo.util.DoublePoint;
import com.mapinfo.util.DoubleRect;
import com.mapinfo.unit.LinearUnit;
import com.mapinfo.mapj.FeatureLayer;
import com.mapinfo.xmlprot.mxtj.ImageRequestComposer;
import java.awt.Color;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import com.mapinfo.graphics.LocalRenderer;
import java.awt.Graphics2D;
import java.awt.BorderLayout;
import com.mapinfo.mapxtreme.client.MapXtremeImageRenderer;
import com.mapinfo.mapxtreme.client.CompositeRenderer;
public class StudyVariousRender extends JFrame
{
  private String mdfFilePath="e:\\MapInfo\\study\\mapmdf";
  private  String mdfFileName="pla.mdf";
  private String mapxtremeURL="http://901-32:8083/mapxtreme47/mapxtreme";
  public static final String gifURL="http://901-32:8083/mapxtreme47/gif/car.gif";
  private MapJ mapj=null;
  private DoublePoint pointCenter;
  private FeatureLayer featureLayer;
  private ImageRequestComposer imageRC;
  public StudyVariousRender() throws Exception
  {
    mapj=new MapJ();
   pointCenter=new DoublePoint(108.9608,34.2729);
   mapj.setCenter(pointCenter);
   mapj.setDeviceBounds(new DoubleRect(0,0,800,600)) ;
   LinearUnit unit=LinearUnit.kilometer ;
   mapj.setDistanceUnits(unit) ;
   mapj.loadMapDefinition(mdfFilePath+"\\"+mdfFileName);
   featureLayer=(FeatureLayer)mapj.getLayers() .get(0) ;
   DoubleRect rect=featureLayer.getBounds() ;
   double width=rect.xmax -rect.xmin ;
   double  height=rect.ymax -rect.ymin ;
   mapj.setBounds(new DoubleRect(pointCenter,width,height));
   imageRC=ImageRequestComposer.create(mapj,256,Color.white,"image/png");
  }
  public  void useLocalRenderer()
  {
    BufferedImage bufferedImage=new BufferedImage(800,600,BufferedImage.TYPE_3BYTE_BGR );
    LocalRenderer localRender=new LocalRenderer((Graphics2D)bufferedImage.getGraphics() );
   try
   {
//    Image image=
  localRender.render(imageRC) ;
   }catch(Exception e)
   {
     System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
   }

  }
public void useMapXtremeImageRender()
  {
    MapXtremeImageRenderer render=new MapXtremeImageRenderer(mapxtremeURL);
   try
   {
     render.render(imageRC);
     Image image=render.toImage() ;
     DrawImage drawImage=new DrawImage(image);
     this.getContentPane() .add(drawImage,BorderLayout.CENTER ) ;
     this.setSize(800,600) ;
     this.setVisible(true) ;
     this.show() ;
   }catch(Exception e)
   {
     System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
   }
  }
  /*
  COMPOSITE RENDERER - treats a specified series of bottom (high indexed) layers as "base layers"
that are only rendered one(1) time. Only the
  remaining upper (lower indexed) layers are re-rendered upon subsequent rendering requests.
  */

public void useCompositeRender()
  {//   Creates a CompositeRenderer that renders both top and bottom layers
    //using the same MapXtreme servlet.
   try
   {
     CompositeRenderer render = new CompositeRenderer(mapxtremeURL, 1);
     render.render(imageRC);
     render.setRedrawBottom(false) ;
     Image image=render.toImage() ;
     DrawImage drawImage=new DrawImage(image);
     this.getContentPane() .add(drawImage,BorderLayout.CENTER ) ;
     this.setSize(800,600) ;
     this.setVisible(true) ;
     this.show() ;

   }catch(Exception e)
   {
     System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
   }
  }
/*
  INTRA SERVLET CONTAINER RENDERER - is used ONLY within Java code that is running in the SAME webserver as the MapXtremeServlet, such that the MapXtremeServlet is given the HttpRequest / HttpResponse objects of the incoming client request, and uses its underlying socket streams
  to send the image bytes directly back to the client process.
  */
public void useIntraRender()
 {

 }
  public class DrawImage extends JPanel
  {
    private Image m_img;
    public DrawImage(Image img)
    {
      m_img=img;
    }
    public void paint(Graphics g)
    {
      g.drawImage(m_img,0,0,this);
    }
  }
public static void main(String[] args)
  {
   try
   {
     StudyVariousRender svr = new StudyVariousRender();
    // svr.useMapXtremeImageRender();
    svr.useCompositeRender() ;
   }catch(Exception e)
   {
     System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
   }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -