当前位置:文档之家› GIS二次开发—专题图主窗体代码

GIS二次开发—专题图主窗体代码

GIS二次开发—专题图主窗体代码
GIS二次开发—专题图主窗体代码

namespace MapLayout.PageLayout

{

public class PageLayout

{

#region 打印输出

///

/// pageLayout输出图片

///

/// ture为成功,false为失败

public static bool ExportMapToImage(AxPageLayoutControl axPageLayoutControl1)

{

try

{

SaveFileDialog pSaveDialog = new SaveFileDialog();

pSaveDialog.FileName = "";

pSaveDialog.Filter = "JPG图片(*.JPG)|*.jpg|tif图片(*.tif)|*.tif|PDF文档(*.PDF)|*.pdf";

if (pSaveDialog.ShowDialog() == DialogResult.OK)

{

double iScreenDispalyResolution =

axPageLayoutControl1.ActiveView.ScreenDisplay.DisplayTransformation.Resolution;

IExporter pExporter = null;

if (pSaveDialog.FilterIndex == 0)

{

pExporter = new JpegExporterClass();

}

else if (pSaveDialog.FilterIndex == 1)

{

pExporter = new TiffExporterClass();

}

else if (pSaveDialog.FilterIndex == 2)

{

pExporter = new PDFExporterClass();

}

pExporter.ExportFileName = pSaveDialog.FileName;

pExporter.Resolution = (short)iScreenDispalyResolution;

tagRECT deviceRect =

axPageLayoutControl1.ActiveView.ScreenDisplay.DisplayTransformation.get_DeviceFrame();

IEnvelope pDeviceEnvelope = new EnvelopeClass();

pDeviceEnvelope.PutCoords(deviceRect.left, deviceRect.bottom,

deviceRect.right, deviceRect.top);

pExporter.PixelBounds = pDeviceEnvelope;

ITrackCancel pCancle = new CancelTrackerClass();

axPageLayoutControl1.ActiveView.Output(pExporter.StartExporting(),

pExporter.Resolution, ref deviceRect, axPageLayoutControl1.ActiveView.Extent, pCancle);

Application.DoEvents();

pExporter.FinishExporting();

return true;

}

else

{

return false;

}

}

catch (Exception Err)

{

MessageBox.Show(Err.Message, "输出图片", MessageBoxButtons.OK,

https://www.doczj.com/doc/6314811343.html,rmation);

return false;

}

}

///

/// 打印PageLayout

///

/// PageLayout对象

public static void PrintPageLayout(AxPageLayoutControl pPageLayout)

{

try

{

if (pPageLayout.Printer != null)

{

IPrinter pPrinter = pPageLayout.Printer;

if (pPrinter.Paper.Orientation != pPageLayout.Page.Orientation)

{

pPrinter.Paper.Orientation = pPageLayout.Page.Orientation;

}

pPageLayout.PrintPageLayout(1, 0, 0);

}

}

catch (Exception Err)

{

MessageBox.Show(Err.Message, "打印", MessageBoxButtons.OK,

https://www.doczj.com/doc/6314811343.html,rmation);

}

}

#endregion

#region 添加Element

//添加文字

public static void AddText(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

IActiveView activeView;

IGraphicsContainer graphicsContainer;

ITextElement textElement;

ITextSymbol textSymbol;

IRgbColor color;

IElement element;

IEnvelope envelope;

activeView = axPageLayoutControl1.PageLayout as IActiveView;

envelope = new EnvelopeClass();

//envelope.PutCoords(0, 0, 5, 5);

envelope.PutCoords(pagex - 2, pagey - 2, pagex + 2, pagey + 2);

textElement = new TextElementClass();

element = textElement as IElement;

element.Geometry = envelope;

textElement.Text = "我的地图";

textSymbol = new TextSymbolClass();

color = new RgbColorClass();

color.Green = 0;

color.Blue = 0;

color.Red = 0;

textSymbol.Color = color as IColor;

textSymbol.Size = 30;

textElement.Symbol = textSymbol;

graphicsContainer = activeView as IGraphicsContainer;

graphicsContainer.AddElement(element, 0);

axPageLayoutControl1.Refresh();

EditIElement(axPageLayoutControl1, pagex, pagey);

}

//添加图例

public static void AddLegend(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

#region 原始

UID uid;

IEnvelope envelope;

//IMapSurround mapSurround;

IGraphicsContainer graphicsContainer;

IMapFrame mapFrame;

IMapSurroundFrame mapSurroundFrame;

IElement element;

ITrackCancel trackCancel;

uid = new UIDClass();

uid.Value = "esriCarto.legend";

envelope = new EnvelopeClass();

//envelope.PutCoords(1, 1, 2, 2);

envelope.PutCoords(pagex - 2, pagey - 2, pagex + 2, pagey + 2);

graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;

mapFrame = graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;

mapSurroundFrame = mapFrame.CreateSurroundFrame(uid, null);

https://www.doczj.com/doc/6314811343.html, = "图例";

element = mapSurroundFrame as IElement;

element.Geometry = envelope;

element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);

trackCancel = new CancelTrackerClass();

element.Draw(axPageLayoutControl1.ActiveView.ScreenDisplay, trackCancel);

graphicsContainer.AddElement(element, 0);

axPageLayoutControl1.Refresh();

EditIElement(axPageLayoutControl1, pagex, pagey);

#endregion

//ComDll.Legend.UI.CustomLegendFrm frm = new ComDll.Legend.UI.CustomLegendFrm(axPageLayoutControl1);

//frm.ShowDialog();

}

private void AddLegendToPageLayout(IPageLayout pPageLayout, IEnvelope pEnvelope)

{

try

{

IActiveView pActiveView = pPageLayout as IActiveView;

IMap pMap = pActiveView.FocusMap;

IGraphicsContainer pGraphicsContainer = pActiveView as IGraphicsContainer;

IMapFrame pMapFrame = pGraphicsContainer.FindFrame(pMap) as IMapFrame;

UID pUID = new UID();

pUID.Value = "{7A3F91E4-B9E3-11d1-8756-0000F8751720}";

ISymbolBackground pSymbolBackground = new SymbolBackgroundClass();

IFillSymbol pFillSymbol = new SimpleFillSymbolClass();

ILineSymbol pLineSymbol = new SimpleLineSymbolClass();

pFillSymbol.Color = Function.GetIRGBColor(255, 255, 255);

pLineSymbol.Color = Function.GetIRGBColor(255, 255, 255);

pFillSymbol.Outline = pLineSymbol;

pSymbolBackground.FillSymbol = pFillSymbol;

IMapSurroundFrame pMapSurroundFrame = pMapFrame.CreateSurroundFrame(pUID, null);

pMapSurroundFrame.Background = pSymbolBackground;

IElement pElement = pMapSurroundFrame as IElement;

pElement.Geometry = pEnvelope;

IMapSurround pMapSurround = pMapSurroundFrame.MapSurround;

ILegend pLegend = pMapSurround as ILegend;

pLegend.ClearItems();

pLegend.Title = "图例";

ITextSymbol pTextSymbol = new TextSymbolClass();

pTextSymbol.Size = 10;

pTextSymbol.HorizontalAlignment = esriTextHorizontalAlignment.esriTHALeft;

ILegendItem pLegendItem = null;

for (int i = 0; i < https://www.doczj.com/doc/6314811343.html,yerCount; i++)

{

ILayer pLayer = pActiveView.FocusMap.get_Layer(i);

if (pLayer is IFeatureLayer)

{

IFeatureLayer pFLayer = pLayer as IFeatureLayer;

IFeatureClass pFeatureClass = pFLayer.FeatureClass;

if (pFeatureClass.FeatureType == esriFeatureType.esriFTAnnotation)

{

continue;

}

else

{

pLegendItem = new HorizontalBarLegendItemClass();

https://www.doczj.com/doc/6314811343.html,yer = pLayer;

pLegendItem.Columns = 1;

pLegendItem.ShowDescriptions = false;

pLegendItem.ShowHeading = false;

pLegendItem.ShowLabels = true;

https://www.doczj.com/doc/6314811343.html,yerNameSymbol = pTextSymbol;

pLegend.AddItem(pLegendItem);

}

}

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

//添加图形比例尺

public static void AddScaleBar(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

UID uid;

IEnvelope envelope;

//IMapSurround mapSurround;

IGraphicsContainer graphicsContainer;

IMapFrame mapFrame;

IMapSurroundFrame mapSurroundFrame;

IElement element;

ITrackCancel trackCancel;

uid = new UIDClass();

uid.Value = "esriCarto.ScaleLine";

envelope = new EnvelopeClass();

//envelope.PutCoords(1, 1, 10, 2);

envelope.PutCoords(pagex - 2, pagey - 2, pagex + 2, pagey + 2);

graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;

mapFrame = graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;

mapSurroundFrame = mapFrame.CreateSurroundFrame(uid, null);

element = mapSurroundFrame as IElement;

element.Geometry = envelope;

element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);

trackCancel = new CancelTrackerClass();

element.Draw(axPageLayoutControl1.ActiveView.ScreenDisplay, trackCancel);

graphicsContainer.AddElement(element, 0);

axPageLayoutControl1.Refresh();

}

//添加文字比例尺

public static void AddScaleText(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

UID uid;

IEnvelope envelope;

// mapSurround;

IGraphicsContainer graphicsContainer;

IMapFrame mapFrame;

IMapSurroundFrame mapSurroundFrame;

IElement element;

ITrackCancel trackCancel;

uid = new UIDClass();

uid.Value = "esriCarto.ScaleText";

envelope = new EnvelopeClass();

//envelope.PutCoords(1, 1, 2, 2);

envelope.PutCoords(pagex - 2, pagey - 2, pagex + 2, pagey + 2);

graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;

mapFrame = graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;

mapSurroundFrame = mapFrame.CreateSurroundFrame(uid, null);

element = mapSurroundFrame as IElement;

element.Geometry = envelope;

element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);

trackCancel = new CancelTrackerClass();

element.Draw(axPageLayoutControl1.ActiveView.ScreenDisplay, trackCancel);

graphicsContainer.AddElement(element, 0);

axPageLayoutControl1.Refresh();

}

//添加标题

public static void AddTitle(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

MessageBox.Show("添加标题功能类似添加文本,请直接添加文本吧","^o^");

}

//添加指北针

public static void AddNorthArrow(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

IEnvelope envelope = new EnvelopeClass();

IUID uid = new UIDClass();

IGraphicsContainer graphicsContainer;

IMapFrame mapFrame;

IMapSurroundFrame mapSurroundFrame;

IElement element;

IMapSurround mapSurround;

IMarkerNorthArrow markerNorthArrow;

IMarkerSymbol markerSymbol;

ICharacterMarkerSymbol characterMarkerSymbol;

uid.Value = "esriCarto.MarkerNorthArrow";

envelope.PutCoords(pagex - 2, pagey - 2, pagex + 2, pagey + 2);

graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;

mapFrame = graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;

mapSurroundFrame = mapFrame.CreateSurroundFrame(uid as UID, null); // Dynamic Cast

element = mapSurroundFrame as IElement; // Dynamic Cast

element.Geometry = envelope;

element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);

graphicsContainer.AddElement(element, 0);

mapSurround = mapSurroundFrame.MapSurround;

// Change out the default north arrow

markerNorthArrow = mapSurround as IMarkerNorthArrow; // Dynamic Cast

markerSymbol = markerNorthArrow.MarkerSymbol;

characterMarkerSymbol = markerSymbol as ICharacterMarkerSymbol; // Dynamic Cast

characterMarkerSymbol.CharacterIndex = 200; // change the symbol for the North Arrow

markerNorthArrow.MarkerSymbol = characterMarkerSymbol;

}

//添加网格

public static void AddNetGird(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

IMapGrid mapGrid = new GraticuleClass();

https://www.doczj.com/doc/6314811343.html, = "Map Grid";

//Create a color.

IColor color = new RgbColorClass();

//color.RGB = 0XBBBBBB; // -> Gray.

color = Function.GetIRGBColor(205, 205, 205);//灰色

//Set the line symbol used to draw the grid.

ICartographicLineSymbol cartographicLineSymbol = new CartographicLineSymbolClass();

cartographicLineSymbol.Cap = esriLineCapStyle.esriLCSButt;

cartographicLineSymbol.Width = 0.5;

cartographicLineSymbol.Color = color;

mapGrid.LineSymbol = cartographicLineSymbol as ILineSymbol;

mapGrid.Border = null; // Clear the default frame border.

//Set the Tick properties.

mapGrid.TickLength = 15;

cartographicLineSymbol = new CartographicLineSymbolClass();

cartographicLineSymbol.Cap = esriLineCapStyle.esriLCSButt;

cartographicLineSymbol.Width = 1;

cartographicLineSymbol.Color = color;

mapGrid.TickLineSymbol = cartographicLineSymbol as ILineSymbol;

mapGrid.TickMarkSymbol = null;

//Set the SubTick properties.

mapGrid.SubTickCount = 5;

mapGrid.SubTickLength = 10;

cartographicLineSymbol = new CartographicLineSymbolClass();

cartographicLineSymbol.Cap = esriLineCapStyle.esriLCSButt;

cartographicLineSymbol.Width = 0.2;

cartographicLineSymbol.Color = color;

mapGrid.SubTickLineSymbol = cartographicLineSymbol as ILineSymbol;

// Set the Grid label properties.

IGridLabel gridLabel = https://www.doczj.com/doc/6314811343.html,belFormat;

https://www.doczj.com/doc/6314811343.html,belOffset = 15;

//Set the Tick, SubTick, and Label Visibility along the four sides of the grid.

mapGrid.SetTickVisibility(true, true, true, true);

mapGrid.SetSubTickVisibility(true, true, true, true);

mapGrid.SetLabelVisibility(true, true, true, true);

//Make the map grid visible so it gets drawn when Active View is updated.

mapGrid.Visible = true;

//Set the IMeasuredGrid properties.

IMeasuredGrid measuredGrid = mapGrid as IMeasuredGrid;

measuredGrid.FixedOrigin = true;

measuredGrid.XIntervalSize = 10; //Meridian interval.

measuredGrid.XOrigin = 5; //Shift grid 5°.

measuredGrid.YIntervalSize = 10; //Parallel interval.

measuredGrid.YOrigin = 5; //Shift grid 5°.

// Add the grid to the MapFrame.

IMap map = axPageLayoutControl1.ActiveView.FocusMap;

IGraphicsContainer graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;

IFrameElement frameElement = graphicsContainer.FindFrame(map);

IMapFrame mapFrame = frameElement as IMapFrame;

IMapGrids mapGrids = null;

mapGrids = mapFrame as IMapGrids;

mapGrids.AddMapGrid(mapGrid);

//Refresh the view.

axPageLayoutControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, null);

}

//添加边框

public static void AddNeatLine(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

IFrameElement frameElement = axPageLayoutControl1.GraphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMa p);

IFrameElement ife = new FrameElementClass();

IRgbColor color = Function.GetIRGBColor(255, 0, 0);

ILineSymbol lineSymbol = new SimpleLineSymbolClass();

lineSymbol.Color = color;

lineSymbol.Width = 2;

ISymbolBorder symbolBorder = new SymbolBorderClass();

symbolBorder.LineSymbol = lineSymbol;

//IEnvelope envelope = new EnvelopeClass();

//envelope.PutCoords(pagex - 2, pagey - 2, pagex + 2, pagey + 2);

////element.Geometry = envelope;

IFrameProperties frameProperties = frameElement as IFrameProperties;

frameProperties.Border = symbolBorder;

axPageLayoutControl1.ActiveView.Refresh();

}

//添加图片

public static void AddPicture(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

IPageLayout pPageLayout;

IGraphicsContainer pGraphicsContainer;

IActiveView pActiveView;

IEnvelope envelope;

IElement pEle;

IPictureElement pBmpPicEle;

pPageLayout = axPageLayoutControl1.PageLayout;

pGraphicsContainer = pPageLayout as IGraphicsContainer;

pActiveView = pPageLayout as IActiveView;

pBmpPicEle = new BmpPictureElementClass();

string _picPath = Function.GetOpenFileDialogPath("请选择要添加的图片", "", "位图文件(*.bmp)|*.bmp");

if (_picPath == "")

{

MessageBox.Show("请正确选择图片", "错误");

return;

}

pBmpPicEle.ImportPictureFromFile(_picPath);

pBmpPicEle.MaintainAspectRatio = false;

//pEnv = axPageLayoutControl1.TrackRectangle();

envelope = new EnvelopeClass();

envelope.PutCoords(pagex - 2, pagey - 2, pagex + 2, pagey + 2);

pEle = pBmpPicEle as IElement;

pEle.Geometry = envelope;

pGraphicsContainer.AddElement(pEle, 0);

pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

}

#endregion

#region 查找Element,并进行修改

public static void EditIElement(AxPageLayoutControl axPageLayoutControl1, double pagex, double pagey)

{

IElement pelement, selectElement = null;

IGraphicsContainerSelect pGraphicsContainerSelect = axPageLayoutControl1.PageLayout as IGraphicsContainerSelect;

IGraphicsContainer pGraphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;

pGraphicsContainer.Reset();

pelement = pGraphicsContainer.Next();

#region 查找pelement是否匹配相关元素

while (pelement != null)

{

if (pelement.HitTest(pagex, pagey, 0.1))

{

if (pelement is ITextElement)

{

selectElement = pelement;

}

else if (pelement is IMapSurroundFrame)

{

IMapSurroundFrame pMapSf = pelement as IMapSurroundFrame;

IMapSurround pMapSurround = pMapSf.MapSurround;

if (pMapSurround is ILegend)

{

selectElement = pelement;

}

else if (pMapSurround is IScaleBar)

{

selectElement = pelement;

}

else if (pMapSurround is IMarkerNorthArrow)

{

selectElement = pelement;

}

}

else if (pelement is IPictureElement)

{

selectElement = pelement;

}

}

pelement = pGraphicsContainer.Next();

}

#endregion

#region 根据匹配结果弹出相应设置界面

if (selectElement is ITextElement) //文本元素

{

//frmITextAttrib itextattrib = new frmITextAttrib(axPageLayoutControl1, selectElement as ITextElement);

//itextattrib.Visible = true;

MessageBox.Show("找到文本,但是还不能修改");

}

else if (selectElement is IMapSurroundFrame) //IMapSurroundFrame

{

IMapSurroundFrame pMapSf = selectElement as IMapSurroundFrame;

IMapSurround pMapSurround = pMapSf.MapSurround;

if (pMapSurround is ILegend) //图例

{

//frmILegendAttrib ilegendattrib = new frmILegendAttrib(axPageLayoutControl1);

//ilegendattrib.Visible = true;

MessageBox.Show("找到图例,但是还不能修改");

}

else if (pMapSurround is IScaleBar) //图形比例尺

{

//

MessageBox.Show("找到图形比例尺,但是还不能修改");

}

else if (pMapSurround is IMarkerNorthArrow) //指北针

{

//frmIMarkerNorthArrowAttrib imarkernortharrow = new frmIMarkerNorthArrowAttrib(axPageLayoutControl1,selectElement);

//imarkernortharrow.Visible = true;

MessageBox.Show("找到指北针,但是还不能修改");

}

}

else if (selectElement is IPictureElement) //图片

{

string _picPath = Function.GetOpenFileDialogPath("请选择要添加的图片", "", "位图文件(*.bmp)|*.bmp");

if (_picPath == "")

{

MessageBox.Show("请正确选择图片", "错误");

return;

}

IPictureElement pBmpPicEle;

pBmpPicEle = selectElement as IPictureElement;

pBmpPicEle.ImportPictureFromFile(_picPath);

pelement = pBmpPicEle as IElement;

pGraphicsContainer.UpdateElement(pelement);

axPageLayoutControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

}

#endregion

}

#endregion

}

}

地理信息系统课程设计报告

地理信息系统课程设计 实习报告 班级:地信10701班 学生姓名:陈鹏 学号:200701144 指导老师:何贞铭刘少华邵燕林 日期: 2010年9月

目录 一、课程设计目的 (1) 二、课程设计任务 (1) 三、空间数据建库 (1) 四、系统功能设计 (1) 五、系统界面设计 (2) 六、系统功能实现 (2) 七、实习成果展示 (2) 八、总结和体会 (2)

地理信息系统课程设计报告 一、课程设计目的 (标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符) 本次地理信息系统课程设计是在完成《地理信息系统原理》、《GIS软件工程》等课程 后开展的实践性课程设计。本次课程设计主要完成地图矢量化(空间数据库设计与建库)、 系统功能设计、系统界面设计和部分功能的实现;通过本次实习对三个GIS平台软件(SuperMap、ArcView、MapGIS)的各个功能模块有了较深入了解、熟悉和掌握;通过这 次课程设计也进一步熟悉了基于GIS平台提供的组件进行应用系统开发的一般方法、思路和 流程。其主要的目的概括为: 1、熟练掌握三种GIS的公共平台及其开发环境; 2、熟练掌握三种GIS二次开发组件开发GIS应用软件; 3、掌握GIS数据库建库方法和地物编码方法; 4、理解和掌握GIS工程原理及方法。 二、课程设计任务 课程设计的主要任务是利用G IS公共平台提供的二次开发环境开发一套“校园GIS软件”,在遵循国家基础地理编码的基础上建立更详细的校园地物编码系统,实现校园内的地面建筑、道路、绿化面积等地物信息的可视化管理和查询,并可据此进行简单的空间分析。 1.建立校园地物编码系统(各个教学设施,如各个楼层的编码等) 2.建立校园地物的空间拓扑关系; 3.建立空间数据及属性数据库(最好采用独立的商业数据库进行建库或设计数据库); 4.建立空间数据的查询系统; 5.实现空间分析的基本功能(包括缓冲区分析、叠加分析和路径分析等),如道路的 缓冲区分析; 6.提交书面报告(编码系统、数据库设计、软件设计流程和软件使用说明等)和校园 GIS系统软件运行程序及原始程序代码等。 三、空间数据库设计与建库 。。。。。。 (地图分层、属性库设计,数字化地图基本流程) 四、系统功能设计 。。。。。。 1

GIS二次开发实验报告

GIS二次开发实验报告 学号: 姓名: 班级: 专业: 指导老师: 二零一五年11月15日

目录 1 实验一:软件安装与AOI书签开发 (2) 1.1 实验目的 (2) 1.2 实验内容 (2) 1.3 实验结果 (2) 2 实验二:地图数据组织与访问 (5) 2.1 实验目的 (5) 2.2 实验内容 (5) 2.3 实验结果 (5) 3 实验三:地图渲染与制图输出 (9) 3.1 实验目的 (9) 3.2 实验内容 (9) 3.3 实验结果 (9) 4 实验四:空间数据处理 (14) 4.1 实验目的 (14) 4.2 实验内容 (14) 4.3 实验结果 (14) 5 实验五:GIS分析 (20) 5.1 实验目的 (20) 5.2 实验内容 (20) 5.3 实验结果 (20) 6实验六:栅格数据处理 (25) 4.1 实验目的 (25) 4.2 实验内容 (25) 4.3 实验结果 (25) 7实验总结 (31)

1实验一:软件安装与AOI书签开发 1.1实验目的 ?掌握AOI书签程序开发 1.2实验内容 ?实现AOI书签的创建 ?实现AOI书签的调用 1.3实验步骤与结果 安装程序后,新建地图显示项目。在程序的主窗体上端添加添加菜单项,文本属性为创建书签,控件名为miCreateBookmark,在旁边添加组合框,控件名为cbBookmarkList。 1.右击引用选择AddArcGIS Reference在弹出的对话框中添加引用在主窗体(即MainForm.cs)中添加代码; (1)首先添加引用代码:using ESRI.ArcGIS.Display; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.ADF; using ESRI.ArcGIS.SystemUI; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.DataSourcesRaster; (此引用代码都需添加引用后才可以使用,上述引用代码为本类中所需要的所有引用,在之后的编程中,可以不用重复引用) (2)添加“创建书签”函数 在MainForm类中添加成员函数CreateBookMark,代码如下: public void CreateBookmark(string sBookmarkName)//参数为书签名 { //通过IAOIBookmark接口创建一个变量,其类型为AOIBookmark,用于保存当前地图的范围 IAOIBookmark aoiBookmark = new AOIBookmarkClass(); if (aoiBookmark != null) { aoiBookmark.Location = axMapControl1.ActiveView.Extent;

地理信息系统课程设计报告

YANGTZE UNIVERSITY 地理信息系统课程设计 实习报告 班级: 地信10701班 学生姓名:陈鹏 学号: 200701144 指导老师:何贞铭刘少华邵燕林 日 2010 年9月 期 1 / 4

目录 一、课程设计目的 (1) 二、课程设计任务 (1) 三、空间数据建库 (1) 四、系统功能设计 (1) 五、系统界面设计 (2) 六、系统功能实现 (2) 七、实习成果展示 (2) 八、总结和体会 (2)

一、课程设计目的 (标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符) 本次地理信息系统课程设计是在完成《地理信息系统原理》、《GIS软件工程》等课程 后开展的实践性课程设计。本次课程设计主要完成地图矢量化(空间数据库设计与建库)、 系统功能设计、系统界面设计和部分功能的实现;通过本次实习对三个GIS平台软件(SuperMap、ArcView、MapGIS )的各个功能模块有了较深入了解、熟悉和掌握;通过这次课程设计也进一步熟悉了基于GIS平台提供的组件进行应用系统开发的一般方法、思路和流程。其主要的目的概括为: 1、熟练掌握三种GIS的公共平台及其开发环境; 2、熟练掌握三种GIS二次开发组件开发GIS应用软件; 3、掌握GIS数据库建库方法和地物编码方法; 4、理解和掌握GIS工程原理及方法。 二、课程设计任务 课程设计的主要任务是利用GIS公共平台提供的二次开发环境开发一套“校园GIS软件”,在遵循国家基础地理编码的基础上建立更详细的校园地物编码系统,实现校园内的地面建筑、道路、绿化面积等地物信息的可视化管理和查询,并可据此进行简单的空间分析。 1.建立校园地物编码系统(各个教学设施,如各个楼层的编码等)2.建立校园地物的空间拓扑关系; 3.建立空间数据及属性数据库(最好采用独立的商业数据库进行建库或设计数据库)4.建立空间数据的查询系统; 5.实现空间分析的基本功能(包括缓冲区分析、叠加分析和路径分析等),如道路的缓冲区分析; 6.提交书面报告(编码系统、数据库设计、软件设计流程和软件使用说明等)和校园 GIS系统软件运行程序及原始程序代码等。 三、空间数据库设计与建库 。。。。。。 (地图分层、属性库设计,数字化地图基本流程) 四、系统功能设计 O O O O O O C/S、B/S等等,系统总体结构图层次图,功能模块详细分述)(采用何种体系结构- 1 / 4

gis二次开发能实现那些功能

第一题:GIS二次开发能实现那些功能? 符号化显示全要素地图 对图层的的管理和操作 支持地图放大,缩小漫游等各种操作 可以对地图进行标注 可以实现几何参数查询,空间定位查询等功能 空间分析功能 空间数据库访问功能 地图打印功能 GPS导航功能 第二题,MO做专题地图有哪几种? 标注渲染,按值渲染,点密度渲染,分类渲染,图表渲染,z值渲染,组渲染 建立缓冲区查找缓冲区的城市代码: Dim dc As New MapObjects2.DataConnection '定义一个数据连接对象 Dim lyr As New MapObjects2.MapLayer '定义一个数据图层对象 Dim fname As String Dim fnames() As String '定义了一个字符数组 Dim rectline As MapObjects2.Recordset '定义一个数据集对象 Dim resutstate As MapObjects2.Recordset Dim resultshape As MapObjects2.Polygon Dim flag As Integer Dim fname2 As String Dim max As Integer Dim flagitem As Integer Dim intersetj As MapObjects2.Polygon Dim k As MapObjects2.Polygon Dim setflash(100) As MapObjects2.Polygon '足条件的记录,用于后面的闪烁Dim freset(100) As String '记录满足条件的记录州名Dim jilu As Integer '统计满足条件的记录个数 Private Sub Combo1_Click() fname2 = Combo1.Text '在组合框的单机事件中完成的任务为: For i = 0 To max '用户选中组合框中的图层名,通过循环使其与fnames(i)保存的 If fnames(i) = fname2 Then '图层名进行对比查找,如果找到就将图层索引保存到flagitem中 flagitem = max - i '通过变量flagitem将地图索引传给函数https://www.doczj.com/doc/6314811343.html,yers(flagitem).SearchByDistance(p, Map1.ToMapDistance(100), "") Exit For '目的是在用户选择的图层中找到用户选中的图形 End If

《GIS二次开发》课程设计报告

《GIS二次开发课程设计》报告

目录 1 设计目标 (1) 2 需求分析 (1) 2.1 业务构成... .. (1) 2.2 数据内容... .. (1) 3 系统设计 (1) 3.1 总体设计 (1) 3.2 数据库设计 (2) 3.3 平台选择 (2) 3.4 详细设计 (2) 4 功能实现 (3) 4.1 基本功能 (3) 4.2 符号化 (3) 小结 ............................ 错误!未定义书签。

1 设计目标 通过本系统的实施,建立全国各省人口分布和人均GDP排名系统,通过各种地图符号和色彩信息,将地图数据符号化,借此来制作全国各省人口比重、贫富差距大小等专题图。 2 需求分析 2.1 业务构成 中国人口在世界各国中位居首位,约占世界总人口的19%,根据2015年1月20日国家统计局网站公布2014年中国经济数据,2014年末,中国大陆总人口达136782万人,比上年末增加710万人。其中,男性人口70079万人,女性人口66703万人,男性人口比女性多3376万人。中国是人口大国,因此中国的人口分布情况和人口管理显得至关重要。 随着经济的发展,中国的经济状况日益增强。但是整体而言贫富差距还是很大,所以将地图数据符号化来更好地分析各地区的人均GDP对国家掌控各地经济情况是十分有用的。 2.2 数据内容 数据主要包括全国各省的人口数量、总的GDP和人均GDP。通过这些数据来处理地图,将地图做成不同属性的专题图。 3 系统设计 3.1 总体设计 此次设计的初衷即是开发一个可以制作专题地图的系统。以全国

人口数量和全国各省人均GDP为例进行制作和开发。 第一步就是找全国省区底图;接着找所需数据(全国各省人口数量和全国各省人均GDP。)最后,通过VS设计系统,实现专题图制作功能。 3.2 数据库设计 刚开始是想将找到的数据以表格的形式导入arccatalog中,希望经过处理可以直接使用,但是做到最后发现并不能将表格直接导入底图。解决办法是在arcmap中编辑底图的属性表将找到的数据输入,保存。 还有就是在用VS系统开发时的登录界面时,用到sqlserver。 在sqlserver中创建数据库,在已创建的数据库中创建表格,表格中输入“用户名”和“密码”相关信息。 3.3 平台选择 系统开发平台:VS2010和arcengine。 3.4 详细设计 1、首先设计登录界面:登录界面加入所需控件。

GIS实验报告材料-地信

地理信息系统原理实验报告 班级: 学号: 姓名: 指导教师:

一、实验目的 1熟悉桌面GIS软件Super Map的界面环境 2初步掌握Super Map的主要工具及菜单命令的使用 3理解GIS软件应具有的基本功能 4结合对所选地图的矢量化的操作,具体掌握GIS软件的操作步骤 二、实验时间 1、第八周----第十六周进行实验绘图实体操作 2、第十七周----第十九周进行图片剪切,资料整理,总结报告 三、实验内容 ●Supermap Deskpro的认识 Supermap Deskpro是超图的专业桌面GIS软件之一。Super Map GIS桌面平台产品是基于Super Map GIS核心技术研制开发的一体化的GIS桌面软件,是Super Map GIS系列产品的重要组成部分,它界面友好、简单易用,不仅可以很轻松地完成对空间数据的浏览、编辑、查询、制图输出等操作,而且还能完成拓扑分析、三维建模、空间分析、网络分析等较高级的 GIS 功能。 SuperMap Deskpro 是一款专业桌面GIS软件,提供了地图编辑、属性数据管理、分析与辅助决策相关业务以及输出地图、打印报表、三维建模等方面的功能。SuperMap Deskpro 作为一个全面分析管理的工具,应用于土地管理、林业、电力、电信、交通、城市管网、资源管理、环境分析、旅游、水利、航空和军事等所有需要地图处理行业。 ●Supermap Deskpro的使用 通过该软件进行地图的矢量化,具体过程如下:

1、前期的准备 数据来源:纸质西安地图 地图的整体设计:遵循地图越详细越好的原则,我们对点、线、面数据集作了详细的规划,详情请看图层分层。考虑到以后做专题图,对数据集属性字段做了必要的添加,用以区分不同的地物。 本地图特色:采用Deskpro软件自带的矢量符号库符号分别作点、线、面专题图。 2、地图矢量 2.1纸质地图的扫描扫描之前对地图进行图面整理,扫描的分辨率设为 300-500dpi,扫描后得到*.jpg格式的原始栅格数据的地图 2.2创建相应的坐标系数据源启动Deskpro选择新建工作空间。 新建数据源

GIS课程设计实习报告

GIS课程设计实习 报告

GIS 课 程设计报告 院 、系、部 城市建设系 专 业 测绘工程 姓 名 杨波 学 号 0802601-20 指导教师 龙岳红 吴德华

07 月 01日 目录 一、课程设计时间 (3) 二、课程设计地点 ....................................................... 错误!未定义书签。 三、课程设计目的 ....................................................... 错误!未定义书签。 四、课程设计具体内容 ............................................... 错误!未定义书签。 1、(任务一)地图矢量化 .................................... 错误!未定义书签。 2、(任务一)市级行政区划图制作 .................... 错误!未定义书签。 3、(任务四)市区择房分析 ................................ 错误!未定义书签。 4、(任务五)数据转换及3D数据集成 .............. 错误!未定义书签。 五、课程设计心得体会 ................................................ 错误!未定义书签。参考文献........................................................................ 错误!未定义书签。

GIS二次开发经典代码

1、保存栅格数据(注意:保存的时候不要忘记要将栅格数据保存到栅格数据集工作空间中,同时还有栅格的扩展名一定要加上。)内容来自GIS公园 Public Sub SaveRaster() Dim pMxDoc As IMxDocument Dim pMap As IMap Set pMxDoc = Application.Document Set pMap = pMxDoc.FocusMap pMap.DeleteLayer https://www.doczj.com/doc/6314811343.html,yer(0) Dim pRasterDataset As IRasterDataset Dim pWks As IRasterWorkspace Dim pWksFact As IWorkspaceFactory Set pWksFact = New RasterWorkspaceFactory Set pWks = pWksFact.OpenFromFile("D:\Projects\ZLS\temp", 0) Dim pRBC As IRasterBandCollection Set pRasterDataset = pWks.OpenRasterDataset("test") 'Dim pRBC As IRasterBandCollection Dim pRLayer As IRasterLayer Set pRLayer = New RasterLayer pRLayer.CreateFromDataset pRasterDataset Dim pRaster As IRaster Set pRaster = pRLayer.Raster Set pRBC = pRaster Dim pDs As IDataset Set pDs = pRBC.SaveAs("test", pWks, "TIFF") copyright https://www.doczj.com/doc/6314811343.html, pMap.AddLayer pRLayer End Sub 2、根据已有数据字段,创建shape文件,并将数据插入到shape文件中(delphi代码)GIS公园https://www.doczj.com/doc/6314811343.html, function CreateNewShape(pCursor: IFeatureCursor; pFCls: IFeatureClass; pPath: WideString; pNewFClsName:WideString): IFeatureClass; var pShapeFieldName, ConfigKeyword: WideString; pNewFCls: IFeatureClass; pFeature: IFeature; pNewFCursor: IFeatureCursor;

GIS课程设计报告模板

GIS 课程设计报告 2011年 07 月 01日 院、系、部 城市建设系 专 业 测绘工程 姓 名 xxx 学 号 Xxxxx 指导教师 xxxx

一实习时间 2011年上学期第十七周至第十九周。 二实习地点 湖南城市学院实验楼305机房。 三实习目的 通过ArcGIS9.2的使用,让学生参与到地理数据采集、编辑、管理和分析整个流程的各个环节,对地理信息系统主要功能有个全面深刻的了解,并通过一些实际的数据和任务(如电子地图数据生产,选址分析、道路拓宽分析等常见的GIS实际应用问题)设定,培养学生根据实际问题,选取合适的空间分析手段和方法,制定详细的解决方案,解决实际的问题的能力,培养严肃认真、积极思考的优良作风;使学生尽早接触GIS的应用,真正理解GIS的意义所在,为后续的专业课程打下必要的良好的理论和技能基础。同时ArcGIS9.2是目前功能最全面最为强大的商用GIS专业软件,ArcGIS9.2的良好掌握,也为以后解决实际的问题提供了很好技能基础。 四实习具体内容 1、设计任务及名称 (1)任务一:地图矢量化。 (2)任务二:市级行政区划图制作。 (3)任务三:入城高速公路配套停车场的选址分析。 (5)任务五:数据转换及3D数据集成。 2、实习内容及要求 (1)将昆明市西山区普吉地形图矢量化。因为地形图比较大,所以采用分块矢量化,矢量化完毕后再将分块的矢量地图拼接起来。 要求:此任务要求全班同学协作完成。具体包括以下部分: ①影像配准(控制点选取、影像校正、影像重采样)。 ②地图分幅编号(1人,矢量化图层命名规则制定,表结构确定等工作)。 ③地图分层矢量化(如建等高线层和居民地层,并根据影像图进行矢量化,录入高程数据和居民地地名信息,并完成自检)。

GIS实验报告+心得体会总结

GIS导论实验报告(实验总结) 年级:2013级 实验一 实验一,我感觉还不能很熟练的应用Mapinfo的功能以及菜单栏、工具栏中各个图标的功能,所以当我开始做实验一时碰到的问题还是不少的,首先是对Mapinfo软件的相关操作功能不太了解,比如加载数据的图标,如何使打开的图变大缩小,如何浏览做完后的实验成果图,以及在实验过程中,哪些步骤是不能省略掉的,比如使用控制图层在缩放范围内显示的这个小实验,就要注意打开几个图层的界面看起来非常复杂,通过图层控制来操作,可以使图层在缩放范围内显示,这就需要在图层控制的对话框中哪些框框该打钩,哪些不该打钩,这样所显示的效果就会不一样。只有熟练掌握了Mapinfo的基本操作,以及步骤间的衔接才能完成实验。最后还是自己耐心的看书和实践中去找答案和解决问题。在这个实验中我学会了如何Mapinfo软件的基本操作和怎么样制作地图图层以及如何使用模板创建专题地图。在制作这个实验的过程中体会了很多,也感觉在做专题地图和地图制作时的整个过程充满着趣味性,使我对地图的相关制作有了一定的了解。 实验二 实验二,因为已经对MapInfo软件操作功能有了一个初步的了解了,所以当在开始着手制作实验二是实验相关操作步骤时,在对FUZHOU.JPG图像进行屏幕跟踪化过程时和后面进行的图像加载和配准时碰到的问题也相对较少也比较熟练。从实验二开始要用ArcView 软件时由于刚接触这个软件所以在做这部分的实验时制作速度显然比较慢碰到的问题也还有的,面对许多功能按钮不熟悉时只能查找资料和问同学,但最终还是把实验二给做了,以下是我总结的注意点。 1. 做屏幕跟踪这个实验时,在MapInfo中打开图像文件时,注意选择文件类型是栅格图像,然后点击一下所要打开的福州市行政图,这样呈现出所要的画面。 2. 编辑控制点的时候,至少选择三个点且三个点不要都在一条直线上,那样配准不成功。 3. 选择合适的绘图工具,注意选中的是面状的绘图工具,选择线状的话跟踪完后不会出现实验所需的效果。 4在用鼠标画行政区时,注意拐点处必须点一下,画出来会更准确,注意在没画完不要双击,在画重叠部分时,注意激活。 5.在新建表示注意字段的类型时,图层分类要清晰。 6. 投影、坐标系设置时,要设置地图单位为米。 实验三 实验三是对MamInfo和ArcView这两个软件一起搭配操作的制图实验操作。从实验数据格式的转换到投影变换的过程,都需要对这两个软件功能有所了解。虽然通过书本中的案例可以很容易的得出操作结果,但为了进一步了解这个转换过程中每一个相关信息和转换的含义,自己还是在书本上查找答案,和在制图操作实验中的注意点。 1.在第一步的数据格式转换中,注意不要把底图文件也选进去。 注意文件的命名,不要存得太深,最好可以放在根目录下,用英文命名,勿用中文命名。 2.数据格式转换的对话框中,要指明文件类型为MapInfo TAB格式。 3. 打开属性表,查看相关属性时,要注意点击一下属性表再去操作相应的步骤,否则就找不到相关的工具图标。 4. 投影变换时先要打开ArcView程序,选择“file”命令,点击“extensions”命令,进行设置。

GIS地理信息与二次开发专业面试宝典(130912)

GIS地理信息系统与二次开发专业面试宝典 一、简述题 1、什么是GIS: GIS(geographic information system),即地理信息系统,是利用现代计算机图形技术和数据库技术,输入、存储、编辑、分析、显示空间信息及其属性信息的地理资料系统。在地GIS信息数据分两大类:第一类是地图数据,即图形数据。第二类是属性信息,即属性数据(也可称为文字数据,非图形数据)。通过GIS 系统这两类信息的特有管理方式,在它们之间建立双向对应关系,实现图形和数据的互查互用。 2、GIS与CAD系统的区别: 首先,GIS 是图形和属性的结合体,而CAD 是单纯的图形,很难和大数据量的属性信息关联;其次,GIS 中的图形有拓扑信息,可以进行各种复杂的空间分析,而CAD 图形要素之间的关系是松散的,没有空间的概念;再次,GIS 可以做多种基于图形或属性的查询统计,也能制作各种表现形式的专题图,而CAD 一般不能;最后,GIS 能理大数据量,甚至是高达数十G 的海量数据,也能读写存储于数据库中的空间图形,而CAD 不能。 二、名词解释 3.地理参考系统(geographic Coordinate system):地理信息包含有明确的地理参照系统,例如经度和纬度坐标,或者是国家网格坐标。 4.地图投影:地图投影就是指建立地球表面上的点与投影平面上点之间一一对应关系的数学方法。地图投影是解决地球椭球面上地物绘制到平面图纸上的问题。 5. 空间分析:是基于空间对象的位置和形态特征的空间数据分析技术。常见的有拓扑叠加分析、缓冲区分析、网格分析和地形分析等。

6.1954 年北京坐标系Beijing Geodetic Coordinate System l9541954 年我国决定采用的国家大地坐标系,实质上是由原苏联普尔科沃为原点1942 年坐标系的延伸。 7.1956 年黄海高程系统Huang hai Vertical Datum l956以青岛验潮站根据1950 年一1956 年的验潮资料计算确定的平均海面作为基准面,据以计算地面点高程的系统。 8.1985 国家高程基准National Vertical Datum 1985:1987 年颁布命名的,以青岛验潮站1952 年一1979 年验潮资料计算确定的平均海面作为基准面的高程基准。 9.WGS-84 坐标系WGS-84 Coordinate System: 一种国际上采用的地心坐标系。坐标原点为地球质心,称为1984 年世界大地坐标系统。 10.城市地理信息Urban Geographic lnformation: 城市地理信息是城市中一切与地理分布有关的各种地理要素图形信息、属性信息及其相互间空间关系信息的总称。 11. 城市基础地理信息Urban FundamentaI Geographic lnformation: 城市基础地理信息是指城市最基本的地理信息,包括各种平面和高程控制点、界址点、建筑物、道路、水系、境界、地形、植被、地名及某些属性信息等,用于表示城市基本面貌并作为各种专题信息空间定位的载体。它具有统一性、精确性和基础性的特点。 12.等高线contour: 地图上地面高程相等的相邻点所连成的曲线在平面上的投影。

GIS课程设计制图报告

GIS课程设计制图报告 实验目的: 复习地信上机课学习的内容,熟悉MAPGIS的制图过程。作为一个惠州人在惠州生活了二十几年第一次知道原来惠州有七个县区,之前一直以为只有四个县区(惠城、惠阳、惠东和博罗)实在为自己的无知感觉到羞耻,于是因为时间紧迫的关系就准备简单地做下惠州的行政区划图,在此基础上连接各县区2016年的GDP数据。 制图过程说明: 1、首先在网上找惠州市的图片,将图片转换成tif格式。 2、启动MAPGIS,进行输入编辑窗口。新建工程,最大化地图窗口,并将空工程文件保存为“惠州市行政区划”。装入光栅文件即刚刚转换的tif文件: 3、在控制台窗口点击右键,新建两个线文件,分别绘制惠州市地图轮廓和水系,新建点文件(点文件放下层),标注各区/县的注释,放大窗口到适当大小,矢量化线和点,最后清除光栅文件:

4、在控制台窗口将“惠州市线”文件设为当前可编辑,对线文件进行处理,自动剪断线,清除微短线,清线重叠坐标及自相交,自动线节点平差,线拓扑错误检查,修改拓扑错误。 5、线转弧段,建立拓扑关系,保存文件,再将新文件添加进工程里面,在控制台窗口将区文件移到最上层并将其他点线文件右键打开, 更新,改变一下各区的颜色及ID属性:

6、添加图例,成图: 属性分析: 1、在网上查找2016年惠州市各区县的GDP数据制成EXCEL表格,在ACCESS中将EXCEL文件转换为DBASE文件,打开属性库管理,将DBF表文件转换为WB文件并进行属性连接(之前修改的ID属性与表格的ID相同): 3、将区文件放进工程,可以查看区属性:

结论: 由于本人水平有限,制图过程尤其画线部分相当耗时,加上底图没有选好,它没有将仲恺区划出来,所以仲恺区的位置只是大概地划出来的,准确度并不大。不过整个制图过程收获很大,比如说锻炼了耐心和熟悉了课程内容之类的,虽然过程艰辛,做完之后还是很有成就感 的。

GIS课程设计

重庆交通大学《GIS原理及应用》 课程设计报告书

专业:测绘工程 设计课程名称:《地理信息系统原理及应用》 数据单元:湖北省 班级: 设计者: 学号: 631301040116 指导教师: 完成时间: 2016年 6 月 28 日

重庆交通大学《GIS原理及应用》课程设计评分表 序 号 项目评分标准及说明评分 1 学生自评分(10%)按任务书的要求,学生根据任务完成情况及质量自我评分。多人一组共同完成者,19-20分不超过1人,17-18不超过2人,由组长评分(多人一组独立完成者按独立完成定)。 2 纪律及平时成绩 (10%) 按规定时间到实验室完成实验及综合实验,每缺1次 实验扣2分,缺4次及以上不得分。 3 系统演示(功能) 及答辩(40%) 根据学生PPT汇报、系统 演示及回答问题情况,由 答辩组(老师)给出答辩等 级(直接在此评分表中打 “√”),指导教师按等级 相应分值打分 答辩等级分值 A+39-40 A 38 A-36-37 B+ 34-35 B 32-33 B- 30-31 C+ 28-29 C 26-27 C- 24-25 D 0-23 4 项目设计报告 (40%) 根据学生完成的项目设计 报告书情况,由指导教师 给定等级(直接在此评分 表中打“√”)及成绩(特 别提醒:设计报告相同者 均记0分) 答辩等级分值 A+39-40 A 38 A-36-37 B+ 34-35 B 32-33 B- 30-31 C+ 28-29 C 26-27 C- 24-25 D 0-23 指导教师:总分:

目录 一、课程设计目的 (3) 二、课程设计任务及内容 (3) 三、课程设计使用数据说明 (4) 1、地图数据 (4) 2、专题数据 (4) 四、课程设计思路及技术流程 (4) 1、设计思路 (4) 2、技术流程 (5) 2.1 行政区划、河流和人口 (5) 2.2 流域分割和三维建模 (6) 五、课程设计实现的详细步骤 (7) 1、地图矢量化 (7) 1.1 湖北省裁剪 (7) 1.2 湖北区县裁剪 (7) 1.3 湖北行政区划图制作(四色法) (8) 2、人口统计地图 (9) 2.1 数据准备 (9) 2.2 属性表对照 (10) 2.3 表格连接 (10) 2.4 符号化 (10)

GIS课程设计实验报告

中国矿业大学 《地理信息系统》课程设计任务 姓名:曹云成 学号:07083114 学院:环测学院 班级:地信08-1 中国矿业大学环境与测绘学院 二零一零年十一月

1 实验大纲 1.1实习目的 《地理信息系统》课程设计是在学生学完GIS原理后,按照教学大纲所进行的一次重要实习。围绕有关GIS 的空间数据获取、管理、分析、设计、开发和应用等工作,在教师指导下,学生按照GIS 的原理完成实习内容。目的在于进一步巩固学生对GIS 基本原理的掌握,锻炼学生对GIS基本技能的运用,培养学生应用GIS解决实际问题的能力。 1.2实习要求 为达到本次实习目的、保障实习的顺利进行与圆满完成,特要求如下: 1.严以律己,切实遵守教学纪律。实习是教学的另一种形式,学校的纪律及教学管理制度在实习中应照常遵守。由于实习的特殊性,指导教师难以实时掌握每个学生的情况,因此每个同学需要加强自身纪律性,互相监督。 2.实习需要同学之间的协同工作,为使实习顺利进行,每个同学都应从大局出发、互相支持、互相配合。 3.在进行每项内容之前,都应认真学习实习指导书、教材和有关内容,明确有关规定及方法。作到有准备、有目的、有针对性、有热情的投入到实习中去。 4.实习中注意实践和基本知识、基本原理和基本技能相结合,认真听取教师的讲解,主动查阅相关资料,独立解决有关问题。对待工作要认真负责、细致严谨、真实可靠、团结协作,顺利展开实习任务。 5.实习后必须认真归纳、总结实习经验,达到有心得、有收获、有提高,圆满完成实习任务。 1.3实习任务 本次实习的主要内容是掌握常见GIS 软件的应用,提高GIS 软件应用技能,学生可以根据专业领域问题的需要,利用GIS软件独立完成任务要求。本次实习任务包含七个实验,包含了空间数据的采集、建库、管理、分析和应用等诸多方面,具体内容参见要求。 1.4组织分工 本次实习实验以个人为单位,要求独立完成。 1.5成果提交与考查 1.成果提交: 在完成实习任务后,每人须提交实验报告,电子版和纸质材料各 1 份,由学习委员统一后上交。 2.考查方式: 指导教师对参加实习的学生成绩评定按优、良、中、及格和不及格五档评定。成绩评定的依据为: (1)所提交的成果; (2)实习中分析问题、解决问题的能力; (3)实习主动性与协作情况; 实验1 空间数据采集和建库 1.1数字化完成中国矿业大学两校区(文昌校区、南湖校区)电子地图; 1.2要求: (1)分层提取。层次的划分请自己设计 (2)各层的数据结构自己建立,尽量包含较多的属性信息数据(该部分需要提交电子地图,不需要写报告)。 注:电子地图见末页。

arcgis 二次开发

gis的开发方法有三种,即独立开发,宿主型二次开发,基于gis组件的二次开发,其中独立开发为底层开发,不依赖于任何gis工具软件,开发难度太大,后两者是基于一种软件的二次开发,这样的二次开发则相对较简单,他的好处也是显而易见的。 宿主型二次开发是指基于GIS平台软件上进行应用系统开发。大多数GIS 平台软件都提供了可供用户进行二次开发的脚本语言,如ESRI的ArcView提供 了Avenue语言,Maplnfo公司的MapInfo Professional提供了MapBasic语言 等等。用户可以利用这些脚本语言,以原GIS软件为开发平台,开发出自己的 针对不同应用对象的应用程序。这种方式省时省心,但进行二次开发的脚本语言, 作为编程语言,功能极弱,用它们来开发应用程序仍然不尽如人意,并且所开发 的系统不能脱离GIS平台软件,是解释执行的,效率不高。相比基于组件的二次开发可以根据自己的需要扩展系统的功能,并且可以脱离原gis平台软件,综合看来,单纯二次开发受gis基础平台提供的编程语言的限制,而基于组件式的二次开发不仅能提高开发效率,同时可靠性好,易于移植,便于维护。所以,结合gis基础平台软件与当今可视化开发语言的组件式二次开发成为gis开发的主流。但是二次开发也不是十全十美的,只要我们使其中的瑕疵减少,误差也就会减少。 ArcGIS Engine开发工具包是一个基于组件的软件开发产品,用于建立和部署自定义GIS和制图应用程序。ArcGIS Engine开发工具包不是一个终端用户产品,而是一个应用程序开发人员的工具包。可以用ArcGIS Engine开发工具包建立基本的地图浏览器或综合、动态的GIS编辑工具。使用ArcGIS Engine开发工具包,开发人员在建立定制的地图接口方面具有前所未有的灵活性。开发人员可以使用几个API中的任何一个来建立独一无二的应用程序,或者将ArcGIS Engine组件与其他软件组件组合起来实现地图与用户管理信息之间的协同关系。 (可选资料) 从第一个GIS系统一加拿大地理信息系统(CGIS)到目前用户可以自己定制 的GIS系统,GIS二次开发经历了巨大的变化。在这个发展过程中主要出现了两 种GIS二次方式,即宿主型二次开发和基于GIS组件的二次开发131。 GIS开发过程中常用的两种构架(c/s和B/S) 基于c/s结构的GIS是 由客户机完成GIS分析、输出工作。GIS数据和分析工具最初放在服务器上,运 行时下载到客户机,操作灵活。但是c/s应用软件模式大都是基于“胖客户机” 结构下的两层结构应用软件。客户端软件一般由应用程序及相应的数据库连接程 序组成,服务器端软件一般是某种数据库系统。客户机端软件的主要功能是处理 与用户的交互、按照某种应用逻辑实现与数据库系统的交互;服务器端软件的主 要功能是数据库系统根据客户端软件的请求进行数据库操作,然后将结果传送到 客户端软件。客户端软件与服务器端软件之问的通信主要是通过SQL语句。两层 C/S结构应用软件的开发工作主要集中在客户端,客户端端软件不但要完成用户

GIS课程设计报告

《GIS原理》课程设计报告 专业测绘工程 班级学号 姓名 指导教师 学期 2010学年第二学期 南京工业大学测绘学院 2011 年06 月 23 日

目录 一、课程设计时间 (1) 二、课程设计目的 (1) 三、课程设计内容 (1) 四、课程设计使用数据 (1) 五、课程设计步骤 (2) 六、课程设计总结 (7) 1、课程设计过程中遇到的问题: (7) 2、心得体会 (8) 3、关于GIS的学习感谢和建议 (9) 附注: (10)

一、课程设计时间:6月20日至6月24日共 5 天。 课程设计进度 项目时间 1、布置课程设计任务及有关准备工作0.5 2、使用ArcCatalog将CAD数据中指定的图 0.5 层转出。 3、给水图层的配准、编辑、入库 2 4、给水图层符号化设计、制作专题图 1 4、撰写设计报告0.5 5、成果与设计报告验收、操作考核0.5 总计 5.0天 二、课程设计目的 GIS原理课程设计是测绘工程专业的专业课实践环节,是《GIS原理》课程教学的重要组成部分,是巩固和深化课堂教学内容的重要步骤,是培养学生动手能力和实践的有效手段。 通过图形配准的课程设计,掌握地理信息系统的基本原理,熟练对AcrMap 和AcrCatalog的操作,能熟练使用ArcGIS软件进行基本的地理信息分析与操作。 三、课程设计内容 有南京工业大学江浦校区给水现状图,格式为CAD,以及江浦校区基础地理信息图,格式为ArcGIS。要求: 1.将CAD图中的给水线、消防、闸阀井等给水专题图层转换为ArcGIS格式,并对转换后的图编辑、整理。 2.接着将整理后给水专题图层,存入南京工业大学基础地理信息图数据库中。 3.完成给水图层的符号化配置,并最终完成江浦校区给水现状专题图的制作。 四、课程设计使用数据 1.CAD格式南京工业大学江浦校区给水现状图。 2. ArcGIS格式南京工业大学江浦校区基础地理信息图。 以上数据由教师提供。

GIS实验报告课件

实验报告GIS应用软件开发 专业:测绘工程 班级:10 级测绘三班 姓名: 学号: 指导教师:胡亚 撰写时间:2013 年5 月20 日星期一

目录 一、程序运行演示 (2) 二、问题及解决方案 (6) 三、源程序代码 (7) 四、心得体会 (14) 一、程序运行演示 1. 新建项目文件,并实现file 中的基本功能,显示地图基本要素。如图 1 图1 2. 在工具栏加载按钮,按钮功能是对当前视图缩小 3 倍;在工具栏加载工具,工具功能在地图上标注当前日期。如图 2

图2 按钮实现缩小 3 倍功能操作,如图 3 图3 3.点击地图节点,弹出如图4,图5 菜单并实现菜单中的内容: 图4

图5 4. 点击图层节点,弹出如图 6 菜单并需要实现菜单中的内容 图6 5. 点击Legend Class ,弹出符号选择对话框,该对话框供用户按需要选择符号并进行更改。如图7

图7 6.打开图层属性表,用户选择某条记录,可弹出如图8,9 所示的右键菜单,并实现右键菜单中的内容

图8 图9 二、问题及解决方案 问题1.VS2008 与2010 之间要进行格式转换,按照所导向的步骤进行,否则程序将无法正常运行,出现错误 问题2. 构建好基本框架后,地图文档中要素显示出现问题。 此问题要添加licence 控件,否则无法显示地图要素。 问题3. 使用Toolbar 和Toc功能时无法进行操作 此问题应在属性设置时建立关联功能。 问题4. 程序Program文件中要添加相应功能键语句,否则将无法实现功能。 问题5. 引用接口,方法,例如ADF,要添加相应的引用,否则程序出现错误。 问题6. 在实现两个自定义按钮与工具时,遇到的问题:先直接引用现有项未实 现,发现缺少一些东西,后自己直接创建的Basetool 和Basecomman类d ;在代码中报错,重新生成解决方案后顺利解决这个问题。 问题7. 在实现地图和图层节点的右键功能时,遇到琐碎的问题,在这个过程中 直接引用老师所给的几个类,但是报错,是因为命名空间未做修改;缺少引用, 需要根据错误提示添加相应的引用

中南大学gis课程设计报告实验报告

GIS课程设计实验报告 小组:第五组 组员:钟蕾,邢磊,张成, 乃古色拉,司宝元 班级:测绘试验班1101 指导老师:李光强,赵玲

一、课程设计数据 中南大学校本部CASS数字地形图数据文件(csu.dwg) 中南大学校本部遥感地图 二、实验所使用的平台 ArcGIS 10.1(自己的电脑) 三、课程设计的任务、性质与目的 本课程设计是GIS专业的技术实践课,是在完成地理信息系统的课堂教学后进行的,旨在加深学生对地理信息系统基本概念、基本原理的理解,提高学生的地理信息系统的理论水平和分析问题、解决问题能力以及编写设计报告的能力。 (1)掌握ArcGIS软件的基本功能,学习AutoCAD数据(DWG)向SHAPE文件转换的基本流程,掌握显示、查询和编辑空间数据的方法和基本操作; (2)掌握影像数据处理和校准的基本方法; (3)掌握ArcCatalog管理空间数据的基本功能,学习ArcSDE建立空间数据库和数据入库的基本流程和操作; (4)掌握ArcMap修饰地图文件的基本方法; (5)掌握ArcGIS Server部署和发布空间数据的流程与基本方法; (6)掌握由高程点生成TIN,再转换生成DEM的方法和流程; (7)学习掌握利用DEM生成坡向、坡度图的方法,以及重分类的方法和原理; (8)学习2.5维数字地表模型DTM的创建方法; (9)掌握ArcScene建立三维模型的基本方法; 四、课程设计基本要求 1、课程设计分小组进行,组内要有明确分工与合作,本设计的具体上机操作步骤由学生独立完成。 2、在课程设计的教学过程中,指导教师应分阶段对学生完成的工作及所得结果进行检查。 3、学生要按照课程设计任务的要求,按时按量按质地完成课程设计。在课程设计过程中,凡累计旷课时间达到或超过课程设计全过程1/3或未完成课程设计任务要求者,按不及

相关主题
文本预览
相关文档 最新文档