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

📄 splinedlabels.java

📁 CreateMyFirstMap
💻 JAVA
字号:
package myfirstmap;
import com.mapinfo.mapj.MapJ;
import com.mapinfo.util.DoublePoint;
import com.mapinfo.util.DoubleRect;
import com.mapinfo.unit.LinearUnit;
import com.mapinfo.mapj.Layers;
import com.mapinfo.mapj.DataLayer;
//import com.mapinfo.mapj.Layer;//it has been deprecaed
import com.mapinfo.mapj.AbstractLayer;
import com.mapinfo.mapj.LabelProperties;
import com.mapinfo.mapj.FeatureLayer;
import com.mapinfo.mapj.BaseLabelProperties;
import com.mapinfo.graphics.Rendition;
import com.mapinfo.graphics.RenditionImpl;
import com.mapinfo.labeltheme.OverrideLabelTheme;
import com.mapinfo.mapxtreme.client.MapXtremeImageRenderer;
import com.mapinfo.dp.util.LocalDataProviderRef;
import com.mapinfo.xmlprot.mxtj.ImageRequestComposer;
import java.awt.Color;
import java.util.List;
import java.util.ArrayList;
import com.mapinfo.graphics.ColorStop;
import com.mapinfo.graphics.LinearGradient;
import com.mapinfo.graphics.SpreadMethod;
public class SplinedLabels
{//E:\MapInfo\tabmap
  private String mdfFilePath="e:\\MapInfo\\study\\mapmdf";
  private  String mdfFileName="administrative3.mdf";
  private String mapxtremeURL="http://901-32:8083/mapxtreme47/mapxtreme";
  public SplinedLabels()
  {
  }
  public void StudySplinedLabel()
  {
    MapJ mapj=new MapJ();
    DoublePoint centerPoint=new DoublePoint(108.9608,34.2729);
    LinearUnit unit=LinearUnit.kilometer ;
    DoubleRect bound=new DoubleRect(0,0,800,600);
    Layers layers=null;
    DataLayer dataLayer=null;
    FeatureLayer statesLayer=null;
    String layerName;
    try
    {
      mapj.loadMapDefinition(mdfFilePath + "\\" + mdfFileName);
      mapj.setDistanceUnits(unit) ;
      layers=mapj.getLayers() ;
      dataLayer=(DataLayer)layers.get(0) ;
      statesLayer=(FeatureLayer)layers.get(0) ;
      DoubleRect    rect=dataLayer.getBounds() ;
      double width=(rect.xmax -rect.xmin )/1;
      double height=(rect.ymax -rect.ymin )/1;
      mapj.setBounds(new DoubleRect(centerPoint,width,height)) ;
      mapj.setDeviceBounds(bound) ;
      //
      LabelProperties labelProperties=new LabelProperties();
      labelProperties.setLabelExpression("name") ;
      //
      boolean bFollowPath=true;
      labelProperties.setLabelFollowingPath(bFollowPath) ;
      labelProperties.setVerticalAlignment(LabelProperties.VERT_ALIGN_CENTER );
      labelProperties.setHorizontalAlignment(LabelProperties.HORIZ_ALIGN_CENTER );
      //
      //Rendition labelRend =RenditionImpl.getDefaultRendition() ;
      Rendition labelRend=new RenditionImpl();
      labelRend.setValue(Rendition.FONT_FAMILY ,"Aerial");
      labelRend.setValue(Rendition.FONT_STYLE ,Rendition.FontStyle .ITALIC );
      labelRend.setValue(Rendition.FONT_SIZE ,14) ;
      labelRend.setValue(Rendition.FILL ,Color.blue );
      labelRend.setValue(Rendition.FILL_OPACITY ,1f);
      labelProperties.setRendition(labelRend) ;
      //
      OverrideLabelTheme overLabelTheme=new OverrideLabelTheme(labelProperties,"splined label");
      statesLayer.getLabelThemeList() .add(overLabelTheme) ;
      //
      BaseLabelProperties base_label=new BaseLabelProperties(labelProperties);

      statesLayer.setLabelProperties(base_label) ;
      statesLayer.setAutoLabel(true) ;
      //
      ImageRequestComposer imageRC=ImageRequestComposer.create(mapj,256,Color.white ,"image/png");
      MapXtremeImageRenderer render=new MapXtremeImageRenderer(mapxtremeURL);
      render.render(imageRC) ;
      render.toFile("E:\\MapInfo\\study\\png\\splinedlabels3.png") ;
    }catch(java.io.IOException ioe)
    {
      System.out.println("get a "+ioe.getClass() +"\n wiht message "+ioe.getMessage() ) ;
      ioe.printStackTrace() ;
    }catch(Exception e)
    {
      System.out.println("get a "+e.getClass() +"\n with message "+e.getMessage() ) ;
      e.printStackTrace() ;
    }
  }
}

⌨️ 快捷键说明

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