?? studyrangedlabel.java~5~
字號:
package secondstudy;
import com.mapinfo.mapj.MapJ;
import com.mapinfo.unit.Distance;
import com.mapinfo.util.DoublePoint;
import com.mapinfo.util.DoubleRect;
import com.mapinfo.unit.LinearUnit;
import com.mapinfo.mapj.FeatureLayer;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Image;
import java.awt.Graphics;
import com.mapinfo.mapxtreme.client.MapXtremeImageRenderer;
import com.mapinfo.xmlprot.mxtj.ImageRequestComposer;
import java.awt.Color;
import java.awt.BorderLayout;
import com.mapinfo.mapj.LabelProperties;
import com.mapinfo.labeltheme.LabelThemeList;
import com.mapinfo.labeltheme.RangedLabelTheme;
import java.util.List;
import java.util.ArrayList;
import com.mapinfo.dp.ColumnStatistics;
import com.mapinfo.dp.util.Bucketer;
public class StudyRangedLabel extends JFrame
{//學校怎么使用RangedLabelTheme
private String mdfFilePath="e:\\MapInfo\\study\\mapmdf";
private String mdfFileName="states.mdf";
private String mapxtremeURL="http://901-32:8083/mapxtreme47/mapxtreme";
String TARGET_COLUMN_NAME = "POP_1990";
int NUMBER_OF_BREAKPOINTS = 10;
String TARGET_LAYER_NAME = "STATES";
public StudyRangedLabel()
{
}
public void implRangedLabel()
{
MapJ mapj=new MapJ();
DoublePoint centerPoint=new DoublePoint(-108.8,42.5);
LinearUnit unit=LinearUnit.kilometer ;
mapj.setDistanceUnits(unit) ;
mapj.setDeviceBounds(new DoubleRect(0,0,800,600)) ;
FeatureLayer featureLayer=null;
DoubleRect bounds=null;
LabelProperties labelProperties=null;
LabelThemeList labelThemeList=null;
try
{
mapj.setCenter(centerPoint) ;
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 ;
bounds=new DoubleRect(centerPoint,width/4,height/4);
mapj.setBounds(bounds) ;
//
labelThemeList=featureLayer.getLabelThemeList() ;
ColumnStatistics columnStatistics=featureLayer.fetchColumnStatistics(TARGET_COLUMN_NAME);
List breakPoints=Bucketer.computeDistribution(NUMBER_OF_BREAKPOINTS,columnStatistics,Bucketer.DISTRIBUTION_TYPE_EQUAL_COUNT );
for(int i=0;i<breakPoints.size() ;i++)
{
Object obj=breakPoints.get(i) ;
String str=obj.toString() ;
str="wait";
}
//List labelProps=new ArrayList(NUMBER_OF_BREAKPOINTS);
// RangedLabelTheme labelTheme;//=new RangedLabelTheme();
//labelThemeList.add() ;
//
featureLayer.setAutoLabel(true) ;
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);
drawImage.repaint() ;
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() ) ;
}
}//end this function
public static void main(String[] args)
{
StudyRangedLabel srl=new StudyRangedLabel();
srl.implRangedLabel() ;
}
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) ;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -