?? splinedlabels.java~33~
字號:
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;
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 )/2;
double height=(rect.ymax -rect.ymin )/2;
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() ;
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 + -