如何在C#使用mapx5.0

[来源] 达内    [编辑] 达内   [时间]2012-06-19

如何在C#使用mapx5.0

 接下来: 

//******************************
#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.toolbarbuttonclickeventa

rgs 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
//*****************************
}
}

更多关于.NET培训的介绍会不断更新。

资源下载