WEB开发网
开发学院软件开发C语言 基于C#的GIS校园电子地图实现 阅读

基于C#的GIS校园电子地图实现

 2009-02-27 08:18:28 来源:WEB开发网   
核心提示: 2.4系统主要功能设计2.4.1 电子地图基本功能的实现电子地图基本功能包括放大、缩小、漫游等,MapX控件已经集成了这些工具,基于C#的GIS校园电子地图实现(3),因此编程时C#只需要简单调用这些工具即可,具体代码如下: private void toolStripButton1_Cl

2.4 系统主要功能设计

2.4.1 电子地图基本功能的实现

电子地图基本功能包括放大、缩小、漫游等,MapX控件已经集成了这些工具,因此编程时C#只需要简单调用这些工具即可,具体代码如下:

       private void toolStripButton1_Click(object sender, EventArgs e)

     {

         axMap2.CurrentTool = MapXLib.ToolConstants.miZoomInTool;       //放大工具

     }

其它工具调用类似,这里不再赘述。

2.4.2 鹰眼图实现

鹰眼图是GIS系统的一个基本功能,它是为了方便拥护浏览地图而设计的,其作用是显示主图中所显示的地图在整副地图中的位置。用户还可以在鹰眼图中鼠标单击任意区域,则在主图中同步显示该区域,从而实现快速浏览。

实现鹰眼图的思路为:首先在窗体上放两个MapX控件,分别为主图和鹰眼图,然后在鹰眼图上创建一个图层,并在其上添加一个矩形框,该矩形的大小随主图边界而变化。

C#实现鹰眼图的代码如下:

private void axMap2_MapViewChanged(object sender, EventArgs e)

{

MapXLib.Feature tempFea;    //声明一个图元,用于鹰眼图中创建的矩形框

MapXLib.Points tempPoints = new Points();

MapXLib.Style tempStyle = new Style();   

MapXLib.Point ptMap_1 = new MapXLib.Point();

MapXLib.Point ptMap_2 = new MapXLib.Point();

MapXLib.Point ptMap_3 = new MapXLib.Point();

MapXLib.Point ptMap_4 = new MapXLib.Point();

//设置矩形框四角坐标为主图边框

ptMap_1.Set(axMap2.CtlBounds.XMin, axMap2.CtlBounds.YMin);

ptMap_2.Set(axMap2.CtlBounds.XMax, axMap2.CtlBounds.YMin);

ptMap_3.Set(axMap2.CtlBounds.XMax, axMap2.CtlBounds.YMax);

ptMap_4.Set(axMap2.CtlBounds.XMin, axMap2.CtlBounds.YMax);

//添加点到点集

tempPoints.Add(ptMap_1, 1);

tempPoints.Add(ptMap_2, 2);

tempPoints.Add(ptMap_3, 3);

tempPoints.Add(ptMap_4, 4);

//////////////以下创建临时图层/////////////////////////  

MapXLib.LayerInfo tempLayerInfo = new MapXLib.LayerInfoClass();

MapXLib.Fields flds = new MapXLib.FieldsClass();

flds.AddStringField("Name", 100, false);

tempLayerInfo.Type = MapXLib.LayerInfoTypeConstants.miLayerInfoTypeTemp;

tempLayerInfo.AddParameter("Name", "Eagle");

tempLayerInfo.AddParameter("Fields", flds);

m_layer_Eagle = axMap1.Layers.Add(tempLayerInfo, 1);         //为鹰眼图添加图层

//////////////以上创建临时图层//////////////////////////

//以下设置边框样式

tempStyle.RegionPattern = FillPatternConstants.miPatternNoFill;

tempStyle.RegionBorderColor = (uint)MapXLib.ColorConstants.miColorBlue;

tempStyle.RegionBorderWidth = 2;

//以下在临时图层添加大小为axMapx2的边界的Rectangle对象

try

{

tempFea = axMap1.FeatureFactory.CreateRegion(tempPoints, tempStyle);//创建矩形框

m_feature_Eagle = axMap1.Layers._Item("Eagle").AddFeature(tempFea,

new MapXLib.RowValuesClass());  //添加边框到鹰眼图

}

catch (System.Exception ex)

{

        MessageBox.Show(ex.ToString());

}

}

上一页  1 2 3 4 5  下一页

Tags:基于 GIS 校园

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接