?? createmap.java~125~
字號(hào):
System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
}
}
public void TabLayer()//stuby tab data provider
{
String mapxtremeUrl="http://901-32:8083/mapxtreme47/mapxtreme";
//create the tab TabTableDescHelper
TABTableDescHelper tabTDHelper=new TABTableDescHelper("administrative3.TAB");
//create the tab TABDataProviderHelper
TABDataProviderHelper tabDPHelper=new TABDataProviderHelper("E:\\MapInfo\\studymap");
//create the remote dataproviderref neeeded to access the data
try
{
MapXtremeDataProviderRef mxtDPRef = new MapXtremeDataProviderRef(
tabDPHelper, mapxtremeUrl);
MapJ mapj=new MapJ();
//mapj.setBounds(new DoubleRect(0,0,800,600) );
DoubleRect bounds = new DoubleRect(new DoublePoint(108.9607,34.2729),0.31,0.21);
//設(shè)置該地圖的中心為(108.9607,34.2729)單位為經(jīng)緯度單位,0.31表示該地圖的經(jīng)度的最大值與最小值之差為0.31
//0.21表示該地圖的緯度的最大值與最小值之差為0.21
mapj.setBounds(bounds);
LinearUnit distUnit = LinearUnit.kilometer;
//LinearUnit distUnit=LinearUnit.meter ;
mapj.setDistanceUnits(distUnit);
mapj.setZoom(42.35) ;//設(shè)置不是比例尺,設(shè)置的是視野范圍,即窗口寬度。不過(guò)它很有用,
//當(dāng)該值很大時(shí)顯示的地圖就比較小;而當(dāng)該值比較小時(shí)顯示的地圖就比較大,到現(xiàn)在為止我還不知道它的原理,它合別的設(shè)置有
//沒(méi)有什么關(guān)系,如地圖的邊界大小,如果有關(guān)系它們之間的定量關(guān)系是怎樣的?為了在手機(jī)上顯示地圖這點(diǎn)必須清楚。
mapj.getLayers().addLayer(mxtDPRef,tabTDHelper,"onelayer");
MapXtremeImageRenderer render=new MapXtremeImageRenderer(mapxtremeUrl);
ImageRequestComposer imageRC=ImageRequestComposer.create(mapj,256,Color.green ,"image/png");
render.render(imageRC) ;
render.toFile("E:\\MapInfo\\study\\mapimage\\onelayer.png") ;
//test another method
}catch(Exception e)
{
System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
}
}
public void OraTABLayer()
{//the data source for the layer comes form rdbms:oracle
String mapxtremeUrl="http://901-32:8083/mapxtreme47/mapxtreme";
MapJ mapj=new MapJ();
//set bounds
// DoublePoint point=new DoublePoint(108.9608,34.2729);
//DoubleRect bounds=new DoubleRect(point,0.02,0.01);
// mapj.setBounds(bounds) ;
mapj.setDeviceBounds(new DoubleRect(0,0,800,600)) ;
////set distance unit
LinearUnit unit=LinearUnit.kilometer ;
mapj.setDistanceUnits(unit) ;
//
String[] idColumns={"MI_PRINX"};
OraSoTableDescHelper oraSoTDHelper=this.getOraSoTableDescHelper("POINT",idColumns);
//create orasodataproviderhelper
OraSoDataProviderHelper oraSoDPHelper=new OraSoDataProviderHelper("901-32",//host
1521,//port
"xianmap",//sid
"USERSTOREMAP2",//user
"Icando41",//password
DriverType.thin,//DriverType
"oracle.jdbc.OracleDriver");
//create mapxtremeDataProviderRef
try
{
MapXtremeDataProviderRef mxtDPRef = new MapXtremeDataProviderRef(
oraSoDPHelper, mapxtremeUrl);
mapj.getLayers() .addLayer(mxtDPRef,oraSoTDHelper,"point");
//insert another layer
oraSoTDHelper=this.getOraSoTableDescHelper("LINE",idColumns);
mxtDPRef=new MapXtremeDataProviderRef(oraSoDPHelper,mapxtremeUrl);
mapj.getLayers() .insertLayer(mxtDPRef,oraSoTDHelper,1,"line");
//insert another layer
oraSoTDHelper=this.getOraSoTableDescHelper("BLOCK",idColumns);
mxtDPRef=new MapXtremeDataProviderRef(oraSoDPHelper,mapxtremeUrl);
mapj.getLayers() .insertLayer(mxtDPRef,oraSoTDHelper,2,"block");
mapj.setCenter(new DoublePoint(108.9608,34.2729)) ;
mapj.setZoom(16);//實(shí)際上就是放大或縮小地圖
//
MapXtremeImageRenderer render=new MapXtremeImageRenderer(mapxtremeUrl);
ImageRequestComposer imageRC=ImageRequestComposer.create(mapj,256,Color.white ,"image/png");
render.render(imageRC) ;
render.toFile("E:\\MapInfo\\study\\mapimage\\onelayerfromoracle_plb9.png") ;
//
/* Layers layers=mapj.getLayers() ;
AbstractLayer layer;
String layername;
for(int i=0;i<layers.size() ;i++)
{
DoubleRect dr=mapj.getBounds() ;
layer=layers.get(i) ;
layername=layer.getName() ;//the result is "onelayer"
}*/
//
Layers layers=mapj.getLayers() ;
DataLayer dLayer=(DataLayer)layers.elementAt(0) ;
DoubleRect rect=dLayer.getBounds() ;
DoubleRect allRect=new DoubleRect();
int intialvalue=0;
if(rect!=null)
{
mapj.setBounds(rect) ;
allRect=rect;//如果返回的值不為空就首先用它初始化
intialvalue=1;
}else
{
allRect.initBounds() ;//如果為空就讓系統(tǒng)來(lái)初始化
intialvalue=1;//因?yàn)槲矣X(jué)得第一層已經(jīng)用過(guò)了,所以后面的循環(huán)就不用從它開始了
}
for(int j=intialvalue;j<layers.size() ;j++)
{
DataLayer tempLayer=(DataLayer)layers.get(j) ;
DoubleRect tempRect=tempLayer.getBounds() ;
if(tempRect!=null)
{
allRect.merge(tempRect) ;
}
}
mapj.setBounds(allRect) ;
}catch(java.lang.Exception e)
{
System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
e.printStackTrace() ;
}
}
public OraSoTableDescHelper getOraSoTableDescHelper(String tablename,String[] idColumns)
{
OraSoTableDescHelper oraSoTDHelper=new OraSoTableDescHelper(tablename,//tablename
false,idColumns,//unique key column
"GEOLOC",//spatial column
null,//renditionColumn
RenditionType.none ,//rendition type
null,//labelRenditionType
RenditionType.none ,
CoordSys.longLatWGS84 ,//coordinate system
2,//dimension
"USERSTOREMAP2");//owner
return oraSoTDHelper;
}
public void OraTABLayerBackup()
{//the data source for the layer comes form rdbms:oracle
String mapxtremeUrl="http://901-32:8083/mapxtreme47/mapxtreme";
MapJ mapj=new MapJ();
//set bounds
DoublePoint point=new DoublePoint(108.9608,34.2729);
DoubleRect bounds=new DoubleRect(point,0.31,0.21);
mapj.setBounds(bounds) ;
//set distance unit
LinearUnit unit=LinearUnit.kilometer ;
mapj.setDistanceUnits(unit) ;
//
String[] idColumns={"MI_PRINX"};
OraSoTableDescHelper oraSoTDHelper=new OraSoTableDescHelper("POINT",//tablename
false,idColumns,//unique key column
"GEOLOC",//spatial column
null,//renditionColumn
RenditionType.none ,//rendition type
null,//labelRenditionType
RenditionType.none ,
CoordSys.longLatWGS84 ,//coordinate system
2,//dimension
"USERSTOREMAP2");//owner
//create orasodataproviderhelper
OraSoDataProviderHelper oraSoDPHelper=new OraSoDataProviderHelper("901-32",//host
1521,//port
"xianmap",//sid
"USERSTOREMAP2",//user
"Icando41",//password
DriverType.thin,//DriverType
"oracle.jdbc.OracleDriver");
//create mapxtremeDataProviderRef
try
{
MapXtremeDataProviderRef mxtDPRef = new MapXtremeDataProviderRef(
oraSoDPHelper, mapxtremeUrl);
mapj.getLayers() .addLayer(mxtDPRef,oraSoTDHelper,"point");
//
MapXtremeImageRenderer render=new MapXtremeImageRenderer(mapxtremeUrl);
ImageRequestComposer imageRC=ImageRequestComposer.create(mapj,256,Color.green ,"image/png");
render.render(imageRC) ;
render.toFile("E:\\MapInfo\\study\\mapimage\\onelayerfromoracle_point.png") ;
}catch(java.lang.Exception e)
{
System.out.println("get a "+e.getClass() +"\nwith message "+e.getMessage() ) ;
e.printStackTrace() ;
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -