?? drawvariousmap.java~56~
字號:
//
Rendition markerRend=new RenditionImpl();
markerRend.setValue(Rendition.SYMBOL_MODE ,Rendition.SymbolMode.SHAPE );
markerRend.setValue(Rendition.SYMBOL_SHAPE ,symbolShape);
Rendition.Marker marker=new Rendition.Marker(markerRend);
Rendition.Marker[] markers=new Rendition.Marker[1];
markers[0]=marker;
//
selectRend.setValue(Rendition.STROKE_MARKERARRAY ,markers);
//
selectionTheme.setRendition(selectRend) ;
selectionTheme.setSelection(selection) ;
featureLayer.getThemeList() .add(selectionTheme) ;
String layerName=featureLayer.getName() ;
MapXtremeImageRenderer render=new MapXtremeImageRenderer(mapxtremeURL);
ImageRequestComposer imageRC=ImageRequestComposer.create(mapj,256,Color.white,"image/png");
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() ) ;
e.printStackTrace() ;
}
}
public void drawLineMarkerWithVectorSymbol3()
{
// Geometry geom=new VectorGeometry();
FeatureFactory feaFactory=mapj.getFeatureFactory() ;
Attribute[] attrs=new Attribute[2];
attrs[0]=new Attribute("pkey");
attrs[1]=new Attribute("straightline");
double[] pts={108.8608,34.2729,108.9608+0.01,34.2729};
Rendition rend=new RenditionImpl();
rend.setValue(Rendition.STROKE ,Color.red );
rend.setValue(Rendition.STROKE_WIDTH ,2f);
Feature feature=null;
try
{
feature=feaFactory.createPolyLine(pts,rend,null,attrs,new PrimaryKey(attrs[0]));
AnnotationTableDescHelper annTDHelper=new AnnotationTableDescHelper("drawtable");
AnnotationDataProviderHelper annDPHelper=new AnnotationDataProviderHelper();
LocalDataProviderRef annDPRef=new LocalDataProviderRef(annDPHelper);
FeatureLayer featureLayer=(FeatureLayer) mapj.getLayers() .insertLayer(annDPRef,annTDHelper,0,"drawlayer");
featureLayer.addFeature(feature) ;
//
List columns=new ArrayList();
DoubleRect searchRect=new DoubleRect(108.9608-0.01,34.2729-0.01,108.9608+0.01,34.2729+0.01);
FeatureSet featureSet=featureLayer.searchWithinRectangle(columns,searchRect,null);
DoublePoint center=pointCenter;
Geometry searchGeom=null;
featureLayer.setSelectable(true) ;//這條語句必須加上否則后面的設置為藍色does't work
SelectionTheme selectionTheme=new SelectionTheme("selectLine");
Selection selection=new Selection();
selection.add(featureSet) ;
//set rendition for selected feature
Rendition selectRend=new RenditionImpl();
selectRend.setValue(Rendition.STROKE ,Color.blue ) ;
//new one shape
Rendition symbolRend=new RenditionImpl();
symbolRend.setValue(Rendition.STROKE ,Color.red );
GeneralPath shape=new GeneralPath();
shape.moveTo(5,0) ;
shape.lineTo(10,-5) ;
shape.lineTo(15,0) ;
shape.lineTo(10,5) ;
shape.lineTo(5,0) ;
Rendition.SymbolShape symbolShape=new Rendition.SymbolShape(shape,symbolRend);
//new another shape
Rendition symbolRend2=new RenditionImpl();
symbolRend2.setValue(Rendition.STROKE ,Color.green );
//symbolRend.setValue(Rendition.STROKE ,Color.green ) ;
GeneralPath shape2=new GeneralPath();
shape2.moveTo(22,-5) ;
shape2.lineTo(29,5) ;
shape2.moveTo(22,5) ;
shape2.lineTo(29,-5) ;
Rendition.SymbolShape symbolShape2=new Rendition.SymbolShape(shape2,symbolRend2);
//new marker
Rendition markerRend=new RenditionImpl();
markerRend.setValue(Rendition.SYMBOL_MODE ,Rendition.SymbolMode .SHAPE );
markerRend.setValue(Rendition.SYMBOL_SHAPE ,symbolShape);
Rendition.Marker marker=new Rendition.Marker(markerRend);
//change markerRend for another marker
//markerRend.setValue(Rendition.SYMBOL_SHAPE ,symbolShape2);
Rendition markerRend2=new RenditionImpl();
markerRend2.setValue(Rendition.SYMBOL_MODE,Rendition.SymbolMode .SHAPE );
markerRend2.setValue(Rendition.SYMBOL_SHAPE ,symbolShape2);
Rendition.Marker marker2=new Rendition.Marker(markerRend2);
//new marker array
Rendition.Marker[] markers=new Rendition.Marker[2];
markers[0]=marker;
markers[1]=marker2;
//set the last rend:selectRend
selectRend.setValue(Rendition.STROKE_MARKERARRAY ,markers);
//
selectionTheme.setRendition(selectRend) ;
selectionTheme.setSelection(selection) ;
featureLayer.getThemeList() .add(selectionTheme) ;
String layerName=featureLayer.getName() ;
MapXtremeImageRenderer render=new MapXtremeImageRenderer(mapxtremeURL);
ImageRequestComposer imageRC=ImageRequestComposer.create(mapj,256,Color.white,"image/png");
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() ) ;
e.printStackTrace() ;
}
}
public void drawLineWithFontSymbol()
{
FeatureFactory feaFactory=mapj.getFeatureFactory() ;
Attribute[] attrs=new Attribute[2];
attrs[0]=new Attribute("pkey");
attrs[1]=new Attribute("straightline");
double[] pts={108.8608,34.2729,108.9608+0.01,34.2729};
Rendition rend=new RenditionImpl();
//
// rend.setValue(Rendition.STROKE ,Color.red );
// rend.setValue(Rendition.STROKE_WIDTH ,7.5f);
//
Rendition symbolRend=new RenditionImpl();
symbolRend.setValue(Rendition.SYMBOL_MODE ,Rendition.SymbolMode .FONT );
symbolRend.setValue(Rendition.FONT_FAMILY ,"MapInfo Symbols");
symbolRend.setValue(Rendition.FONT_SIZE ,8);
symbolRend.setValue(Rendition.SYMBOL_STRING ,"!");
//
rend.setValue(Rendition.STROKE ,symbolRend);
rend.setValue(Rendition.STROKE_WIDTH ,15f);
Feature feature=null;
try
{
feature=feaFactory.createPolyLine(pts,rend,null,attrs,new PrimaryKey(attrs[0]));
AnnotationTableDescHelper annTDHelper=new AnnotationTableDescHelper("drawtable");
AnnotationDataProviderHelper annDPHelper=new AnnotationDataProviderHelper();
LocalDataProviderRef annDPRef=new LocalDataProviderRef(annDPHelper);
FeatureLayer featureLayer=(FeatureLayer) mapj.getLayers() .insertLayer(annDPRef,annTDHelper,0,"drawlayer");
featureLayer.addFeature(feature) ;
//
MapXtremeImageRenderer render=new MapXtremeImageRenderer(mapxtremeURL);
ImageRequestComposer imageRC=ImageRequestComposer.create(mapj,256,Color.white,"image/png");
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() ) ;
e.printStackTrace() ;
}
}
public void drawParallelLine()
{
FeatureFactory feaFactory=mapj.getFeatureFactory() ;
Attribute[] attrs=new Attribute[2];
attrs[0]=new Attribute("pkey");
attrs[1]=new Attribute("straightline");
double[] pts={108.8608,34.2729,108.9608+0.01,34.2729};
Rendition rend=new RenditionImpl();
//
//rend.setValue(Rendition.STROKE ,new Color(1.0f,0f,1.0f));
Feature feature=null;
//set for the first parallel line
Rendition parallelRend1=new RenditionImpl();
parallelRend1.setValue(Rendition.STROKE ,Color.green );
parallelRend1.setValue(Rendition.STROKE_DASHARRAY ,new float[]{4f,4f});
//set for the seconde parallel line
Rendition parallelRend2=new RenditionImpl();
parallelRend2.setValue(Rendition.STROKE ,new Color(1.0f,0f,1.0f));
//
Rendition.ParallelLine[] parallelLines=new Rendition.ParallelLine[2];
parallelLines[0]=new Rendition.ParallelLine(12f,parallelRend1);
parallelLines[1]=new Rendition.ParallelLine(0,parallelRend2);
//
rend.setValue(Rendition.STROKE_PARALLELARRAY ,parallelLines);
try
{
feature=feaFactory.createPolyLine(pts,rend,null,attrs,new PrimaryKey(attrs[0]));
AnnotationTableDescHelper annTDHelper=new AnnotationTableDescHelper("drawtable");
AnnotationDataProviderHelper annDPHelper=new AnnotationDataProviderHelper();
LocalDataProviderRef annDPRef=new LocalDataProviderRef(annDPHelper);
FeatureLayer featureLayer=(FeatureLayer) mapj.getLayers() .insertLayer(annDPRef,annTDHelper,0,"drawlayer");
featureLayer.addFeature(feature) ;
//
MapXtremeImageRenderer render=new MapXtremeImageRenderer(mapxtremeURL);
ImageRequestComposer imageRC=ImageRequestComposer.create(mapj,256,Color.white,"image/png");
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() ) ;
e.printStackTrace() ;
}
}
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
{
DrawVariousMap dvm = new DrawVariousMap();
// dvm.drawLineMarker() ;
// dvm.drawLineMarkerWithVectorSymbol() ;
// dvm.drawLineMarkerWithVectorSymbol2() ;
// dvm.drawLineMarkerWithVectorSymbol3() ;
// dvm.drawLineWithFontSymbol() ;
dvm.drawParallelLine() ;
}catch(Exception e)
{
System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -