?? studyvariousrender.java~4~
字號(hào):
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() ) ;
}
}
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() ) ;
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -