如何在c#中使用mapx5.0(三)
2024-07-21 02:19:04
供稿:網友
接下來:
//******************************
#region 文件/打開*另存為*導出*按鈕的代碼
private void menuitem20_click(object sender, system.eventargs e) //打開地圖文件(*.gst)(模式對話框)
{
openfiledialog openfd=new openfiledialog();
openfd.title="打開地圖"; //
openfd.defaultext=".gst";
openfd.filename="";
openfd.filter="geoset files (*.gst)|*.gst";
if(openfd.showdialog()==dialogresult.ok)
if( (openfd.openfile() )!=null )
{
axmap1.geoset=openfd.filename; //這里存在已各bug,就是當可編輯工具可見時,能打開地圖,再點擊編輯按鈕時,
//會出現錯誤;回避這個錯誤,請先點擊"取消編輯".
}
}
private void menuitem21_click(object sender, system.eventargs e) //打開圖層文件(*.tab)(模式對話框)
{
openfiledialog openfd=new openfiledialog();
openfd.title="打開圖層";
openfd.defaultext=".tab";
openfd.filename="";
openfd.filter="mapinfo tables (*.tab)|*.tab";
if(openfd.showdialog()==dialogresult.ok)
if( (openfd.openfile() )!=null )
{
axmap1.layers.add(openfd.filename,0);
}
}
private void menuitem23_click(object sender, system.eventargs e) //保存按鈕,保存為 *.gst 形式
{
if(messagebox.show("確定要保存嗎?","ok or nor",messageboxbuttons.yesno)==dialogresult.ok)
axmap1.savemapasgeoset(axmap1.titletext,axmap1.geoset);
}
private void menuitem24_click(object sender, system.eventargs e) //另存為... *.gst 形式
{
savefiledialog savefd =new savefiledialog();
savefd.title="保存地圖";
savefd.filename="";
savefd.filter="geoset files (*.gst)|*.gst";
if(savefd.showdialog()==dialogresult.ok)
if( (savefd.openfile() )!=null )
{
try
{
axmap1.savemapasgeoset("",savefd.filename); //這里有錯誤,不能保存!!!!!!!!!!!!
}
catch(exception e1)
{
messagebox.show(e1.message);
}
}
}
private void menuitem25_click(object sender, system.eventargs e) //到處地圖,可以 以各種圖像的形式到出地圖
{
//string exfmtstr1=.tostring();
savefiledialog exportfd =new savefiledialog();
exportfd.title="保存地圖";
exportfd.filename="";
exportfd.filter= "windows bitmap(*.bmp)|*.bmp";
if(exportfd.showdialog()==dialogresult.ok)
if( (exportfd.openfile() )!=null )
{
try
{ //mapxlib.exportformatconstants.miformatbmp
axmap1.exportmap(exportfd.filename,mapxlib.exportformatconstants.miformatbmp,axmap1.mappaperwidth,axmap1.mapscreenheight);
//這里有錯誤,不能保存!!!!!!!!!!!!
}
catch(exception e1)
{
messagebox.show(e1.message);
}
}
}
#endregion
//*************************
//*********************************
#region 編輯菜單按鈕事件,創建編輯地圖工具欄
//*********************
private void menuitem27_click(object sender, system.eventargs e) //菜單按鈕事件,點擊后,增加可編輯圖層
{
if(this.menuitem27.text.trim()=="編輯")
{
///******************
this.menuitem27.text="取消編輯";
this.tbadddian.visible = true;
this.tbaddxian.visible = true;
this.tbaddquxian.visible = true;
this.tbaddqumian.visible = true;
this.tbline.visible = true;
this.tbshezhi.visible = true;
///***************
///添加信息,初始化可編輯圖層
///
mapxlib.layer newlayer;//=new mapxlib.layerclass();
mapxlib.layerinfoclass newlyinfo=new mapxlib.layerinfoclass();
mapxlib.fieldsclass newfield=new mapxlib.fieldsclass();
newfield.addstringfield("geoname",10,10);
newlyinfo.type=mapxlib.layerinfotypeconstants.milayerinfotypetemp;
newlyinfo.addparameter("name","temporary layer");
newlyinfo.addparameter("fields",newfield);
newlayer=axmap1.layers.add(newlyinfo,1);
newlayer.editable=true;
axmap1.layers.insertionlayer=newlayer;
///******************************
///結束
///
}
else if(this.menuitem27.text.trim()=="取消編輯")
{
this.tbadddian.visible = false;
this.tbaddxian.visible = false;
this.tbaddquxian.visible = false;
this.tbaddqumian.visible = false;
this.tbline.visible = false;
this.tbshezhi.visible = false;
this.menuitem27.text="編輯";
///********************
///取消那個可編輯圖層
///
axmap1.layers.remove(1);
}
}
#endregion
//*********************************
#region 可編輯地圖的工具的工具欄
private void toolbar1_buttonclick(object sender, system.windows.forms.toolbarbuttonclickeventargs e)
{
if(e.button==tbadddian)
axmap1.currenttool=mapxlib.toolconstants.miaddpointtool; //菜單按鈕事件,在有可編輯地圖的圖層上,添加點,使用“添加點工具”
if(e.button==tbaddxian)
axmap1.currenttool=mapxlib.toolconstants.miaddlinetool; //菜單按鈕事件,在有可編輯地圖的圖層上,添加線,使用“添加線工具”
if(e.button==tbaddquxian)
axmap1.currenttool=mapxlib.toolconstants.miaddpolylinetool; //菜單按鈕事件,在有可編輯地圖的圖層上,添加曲線,使用“添加曲線工具”
if(e.button==tbaddqumian)
axmap1.currenttool=mapxlib.toolconstants.miaddregiontool; //菜單按鈕事件,在有可編輯地圖的圖層上,添加區域,使用“添加區域工具”
if(e.button==tbshezhi)
{
frmeditable frm=new frmeditable(); //慘淡按鈕事件,是對點、線、區域的樣式進行設置的窗口
frm.owner=this;
frm.showdialog();
}
}
#endregion
//*****************************
}
}
中國最大的web開發資源網站及技術社區,