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

📄 drawvariousmap.java~52~

📁 CreateMyFirstMap
💻 JAVA~52~
📖 第 1 页 / 共 2 页
字号:
   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 ) ;
  //
  Rendition symbolRend=new RenditionImpl();
  symbolRend.setValue(Rendition.STROKE ,Color.red );
  GeneralPath shape=new GeneralPath();
  shape.moveTo(0,0) ;
 shape.lineTo(5,-5) ;
 shape.lineTo(10,0) ;
 shape.lineTo(5,5) ;
 shape.lineTo(0,0) ;

  Rendition.SymbolShape  symbolShape=new Rendition.SymbolShape(shape,symbolRend);
  //
  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()
{
// 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 ,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 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() ;
  }catch(Exception e)
  {
    System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
  }

}
}

⌨️ 快捷键说明

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