第一篇 准备
使用C#开发GIS应用,你应该首先在系统中安装Visual Studio .Net(建议使用2003版本),然后还需要安装MapInfo公司开发的MapX 5.0版本.MapX 的4.X版本和.Net的兼容有一些问题.可能无法实现本教程介绍的某些功能.
另外,你还应该尽可能地收集所有关于.NET,C#和MapX有关的资料,教程非常实用,专门解决技术问题,而不打算列举资料,所以,最好手头上有一些备查的资料.如果实在找不到,最起码要求能看懂MSDN.Met和MapX的帮助.
关于.Net的安装很多教程都有涉及,此处不再赘述.
MapX 5.0的安装很容易,按照提示一步步就可以安装,和一般的软件安装没什么区别,安装完控件以后千万别忘了同时安装附带的地图数据.
安装好以上软件后,还需要在.Net编程环境中加入MapX 5.0控件.
在.Net编程环境中新建一个WindeosApplication(Windows应用程序)项目,然后在菜单中选择”项目/添加引用”,打开如下图的窗口,在窗口中选择COM标签,在组件名称列表中双击MapInfo MapX V5.单击"确认"按钮,即可将Map5控件加入到.Net的工具箱中.
现在,所有的准备工作都已经完成了,为了测试安装是否正确,我们做个简单的地图放大程序.
在刚刚打开的项目中,从工具栏中选择Mapinfo MapX V5控件,把它画到项目中的Form1窗口上,如下图:
增加一个Button控件button1,将它的Text属性改为”放大”,如下图:
在设计窗口中双击按钮并编写代码如下:
private void button1_Click(object sender, System.EventArgs e)
{
axMap1.CurrentTool=MapXLib.ToolConstants.miZoomInTool;
}
编译,运行程序.如果没有什么错误的话,准备工作就已经完成了.
第二章入门
1.工具(ToolConstants)
在上一章里我们试着做了一个将地图放大的应用程序.在这章里,我们将接触到更多的工具,并介绍自定义工具.
MapX为开发人员提供一系列的工具,这些工具的作用各有不同,我们通过开发一个应用程序来了解这些工具的作用,至于这些工具的具体说明,可以在MapX的帮助文档中,通过查找"Available Standard Tools" 看到相应的解释.一些MapX的相关资料也有介绍.
在.Net编程环境中新建一个C#的WindeosApplication(Windows应用程序)项目,然后在菜单中选择”项目/添加引用”,打开如下图的窗口,在窗口中选择COM标签,在组件名称列表中双击MapInfo MapX V5.单击"确认"按钮,将Map5控件加入到.Net的工具箱中.
接着,将MapInfo MapX V5 控件画到窗体上,再在窗体上画一个ComboBox控件comboBox1.如下图:
双击设计窗体,编写Form1_Load代码如下:
private void Form1_Load(object sender, System.EventArgs e)
{
ArrayList ToolsList=new ArrayList();
ToolsList.Add(MapXLib.ToolConstants.miArrowTool);
ToolsList.Add(MapXLib.ToolConstants.miCenterTool);
ToolsList.Add(MapXLib.ToolConstants.miLabelTool);
ToolsList.Add(MapXLib.ToolConstants.miPanTool);
ToolsList.Add(MapXLib.ToolConstants.miPolygonSelectTool);
ToolsList.Add(MapXLib.ToolConstants.miRadiusSelectTool);
ToolsList.Add(MapXLib.ToolConstants.miSymbolTool);
ToolsList.Add(MapXLib.ToolConstants.miTextTool);
ToolsList.Add(MapXLib.ToolConstants.miZoomInTool);
ToolsList.Add(MapXLib.ToolConstants.miZoomOutTool);
comboBox1.DataSource=ToolsList;
}
以上代码通过一个数组ToolsList,将MapXLib的工具加入到comboBox1中.MapX还有一些其它的工具,它们的作用是往地图上加上点,线,多边型和圆.因为这些工具要求有操作图层,一并在介绍图层的时候介绍.关于ArrayList的用法,请参考C#的有关资料.
|