
ArcEngion 二次开发
基于C# ArcGIS二次开发
mouka~
西南石油大学2015级 13-305
展开
-
C#将shp数据导入Oracle数据库
通过两天的尝试,将shp导入oracle数据库终于成功了,现在就给大家分享一下这两天的收获吧。shpPath:shp文件路径server:我用的localhost哈instance:实例database:数据库user:用户password:密码下来就开始干货吧using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Data...原创 2019-04-22 14:54:45 · 787 阅读 · 0 评论 -
C#ArcEngion绘制多边形
上一篇讲了怎么绘制矩形,这次来绘制一个多边形。/// <summary> /// 绘制多边形 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> ...原创 2019-09-12 17:30:35 · 589 阅读 · 0 评论 -
C#ArcEngion绘制矩形
最近开始做一些简单的二次开发,绘制矩形可以用于筛选、测量、选择等等,所以先学会绘制矩形。 /// <summary> /// 绘制矩形 /// </summary> /// <param name="sender"></param> /// <param name...原创 2019-09-12 17:27:10 · 570 阅读 · 0 评论 -
C#AE通过字段去标注注记要素
通过在网上查阅资料终于将图层注记功能实现:pFeatureLayer为即将要注记的图层fieldname为注记字段public static void AddlableTolayer(IFeatureLayer pFeatureLayer, string fieldname) { //IGeoFeatureLayer继承了IFeatureL...原创 2019-04-29 13:48:27 · 740 阅读 · 2 评论 -
C#AE获取要素图层某个字段的唯一值
推漫(超能力女儿):开始喔:IFeatureLayerfeatureLayer=你要获取唯一值的图层//存储唯一值字段List<string> myValueList = new List<string>();#region//获取唯一值字段//数据统计IDataStatistics dataStatistics = new DataStati...原创 2019-04-24 16:28:52 · 1110 阅读 · 10 评论 -
C#AE实现框选要素
该方法应该放在鼠标事件下,通过鼠标点击来执行此方法已达到点击后框选要素IGeometry geometry = axMapControl1.TrackRectangle(); axMapControl1.Map.SelectByShape(geometry,null, false); axMapControl1.R...原创 2019-04-11 09:07:08 · 901 阅读 · 0 评论 -
C#AE将当前地图导出为一张图片地图
using (saveFileDialog = new SaveFileDialog()) { saveFileDialog.Filter = "jpeg图片(*.jpg)|*.jpg|tiff图片(*.tif)|*.tif|bmp图片(*.bmp)|*.bmp|emf图片(*.emf)|*.emf|png图片(*.png)|*.png|gi...原创 2019-04-11 09:07:24 · 1028 阅读 · 0 评论 -
C#AE利用GP工具实现裁剪
参数设置:输入要素,裁剪要素,输出要素public static void Clip(string in_features, string clip_features, string out_feature_class) { Geoprocessor GP = new Geoprocessor(); GP.OverwriteOut...原创 2019-04-11 09:07:39 · 1159 阅读 · 0 评论 -
C#AE二次开发打开CAD文件
using (openFileDialog = new OpenFileDialog()) { openFileDialog.Title = "打开CAD文件"; openFileDialog.Filter = "(*.dwg)|*.dwg"; if (open...原创 2019-04-11 09:07:53 · 1636 阅读 · 0 评论 -
C#AE投影坐标系变换
pFeatureLayer为要素图层,gcsType代表坐标代号(例如:4214代表Beijing1954)try { IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass; IGeoDataset pGeoDataset = pFeatu...原创 2019-04-11 09:08:09 · 704 阅读 · 0 评论 -
C#AE地理坐标系变换
pFeatureLayer为图层,gcsType代表坐标系代号(例如:4214代表Beijing1954)try { IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass; IGeoDataset pGeoDataset = pFeatur...原创 2019-04-11 09:08:29 · 642 阅读 · 0 评论 -
C#AE加载GDB数据
打开数据库所在文件夹FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); folderBrowserDialog.Description = "打开GDB文件夹"; if (DialogResult.OK == folderBrowserDialog.ShowDi...原创 2019-04-11 09:08:48 · 2796 阅读 · 0 评论 -
C#AE加载MDB数据
IFeatureLayer pFeatureLayer = new FeatureLayerClass(); openFileDialog = new OpenFileDialog(); openFileDialog.Title = "打开MDB文件"; openFileDialog.Filter = "Personal Ge...原创 2019-04-10 17:15:06 · 1078 阅读 · 0 评论 -
C#AE将栅格字段浮点转整型
elementPath为栅格所在位置,outPath为输出要素位置private void DatatypeToInt(string elementPath, string outPath) { if (File.Exists(outPath)) { File.Delete(outPath); ...原创 2019-04-10 16:51:54 · 415 阅读 · 0 评论 -
C#AE利用GP工具实现栅格转面
rasterPath为栅格所在位置,midDataPath为要素输出位置//栅格数据转整型 DatatypeToInt(rasterPath,midDataPath); Geoprocessor GP = new Geoprocessor(); GP.OverwriteOutput = true; ...原创 2019-04-10 16:50:08 · 1218 阅读 · 0 评论 -
C#AE对地图中的图层进行统计,结果以数据、表格、条形图的形式呈现
我自己做的一个窗体专门用来做统计:(只需传入地图参数即可,所需其他静态函数在其他文章均有)public class StatisticsAnalysis : Form { //地图 AxMapControl map; public StatisticsAnalysis(AxMapControl mid) { ...原创 2019-04-10 16:48:00 · 1277 阅读 · 7 评论 -
C#AE使用GP工具进行导出图层至shp文件
map为地图控件,layerName是图层名字ILayer pLayer = MapControlHelper.GetLayerFromName(map, layerName); if (pLayer != null && pLayer is IFeatureLayer) { ...原创 2019-04-10 16:41:53 · 846 阅读 · 0 评论 -
C#AE之返回上一级和下一级操作
try { //判断是否可以返回上一视图 if (mapControl.ActiveView.ExtentStack.CanUndo()) { //执行操作 mapControl.ActiveView...原创 2019-04-10 16:39:03 · 2748 阅读 · 0 评论 -
C#AE获得feature的属性及字段
public static DataTable GetFeatureDataTable(IFeature pFeature) { DataTable dt = new DataTable(); dt.Columns.Add("位置:"); dt.Columns.Add("数据:"); ...原创 2019-04-10 12:58:37 · 2041 阅读 · 0 评论 -
C#AE获取对应要素的属性表,返回值为DataTable
#region//获取对应要素的属性表dataTable private static DataTable GetElementDataTable(IFeatureLayer pFLayer) { DataTable pdataTable = new DataTable(); IFeatureClass pFeatur...原创 2019-04-10 12:58:54 · 1097 阅读 · 0 评论 -
C#AE获取指定路径下的shp要素
#region//获取指定路径下得shp要素 private static IFeatureLayer GetLayerFromPath(string path) { int index = path.LastIndexOf("\\"); //获得文件路径 string filePath = p...原创 2019-04-10 12:59:05 · 872 阅读 · 0 评论 -
C#AE ersi数据和普通数据数据类型的相互转换
/// <summary> /// 获取esri数据类型 /// </summary> /// <param name="type"></param> /// <returns></returns> public static esriFieldT...原创 2019-04-10 12:59:15 · 416 阅读 · 0 评论 -
C#AE获取指定图层的图层路径
#region//获取图层路径 private static string getLayerPath(ILayer pLayer) { IDatasetName pDatasetName = (pLayer as IDataLayer2).DataSourceName as IDatasetName; IWorkspa...原创 2019-04-09 13:54:53 · 1432 阅读 · 0 评论 -
C#AE获取地图中的所有图层要素,不包括图层组
#region//获取图层所有要素 public static List<ILayer> GetAllLayer(AxMapControl map) { List<ILayer> layers = new List<ILayer>(); for (int i = 0; i < ...原创 2019-04-09 13:54:12 · 994 阅读 · 0 评论 -
C#AE获取图层指定图层
#region//由名字获取图层要素 public static ILayer GetLayerFromName(AxMapControl mid, string name) { for(int i=0;i<mid.LayerCount;i++) { ILayer layer = ...原创 2019-04-09 13:53:18 · 1978 阅读 · 0 评论 -
C#AE实现框选查询
mapControl.MousePointer = esriControlsMousePointer.esriPointerArrowQuestion;//设置鼠标样式//添加鼠标事件 mapControl.OnMouseDown += new AxESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEventHandl...原创 2019-04-09 13:42:22 · 638 阅读 · 0 评论 -
C#AE实现点选查询
查询结果mapControl.MousePointer = esriControlsMousePointer.esriPointerIdentify;//修改鼠标样式 mapControl.OnMouseDown += new AxESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEventHandler(E...原创 2019-04-09 13:36:23 · 1414 阅读 · 0 评论 -
C#AE加载shp文件
using (OpenFileDialog ofd = new OpenFileDialog()) { ofd.Filter = "矢量数据(*.shp)|*.shp"; if (ofd.ShowDialog() == DialogResult.OK) { ...原创 2019-04-09 13:32:23 · 1031 阅读 · 0 评论 -
C#AE加载栅格图层
using (OpenFileDialog ofd = new OpenFileDialog()) { ofd.Filter = "栅格数据(*.jpg,*.bmp,*.tiff,*.tif)|*.jpg;*.bmp;*.tiff;*.tif"; if (ofd.ShowDialog() == Dialo...原创 2019-04-09 13:30:13 · 738 阅读 · 0 评论 -
C#AE加载工程文件(.MXD)
mapControl是地图面板控件using (OpenFileDialog ofd =new OpenFileDialog()) { ofd.Filter = "地图文档(*.mxd)|*.mxd"; if (ofd.ShowDialog()== DialogResult.OK) ...原创 2019-04-09 13:28:45 · 721 阅读 · 0 评论 -
C#AE面积测量
传入AxmapControl参数即可实现实时面积测量代码如下:using System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using AxESRI.ArcGIS.Cont...原创 2019-04-09 13:25:16 · 1033 阅读 · 0 评论 -
C# AE距离测量
封装好的一个距离测量类,只需要调用就行(传入参数AxMapControl myMapControl)using ESRI.ArcGIS.Geometry;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks...原创 2019-03-13 17:11:15 · 1600 阅读 · 0 评论