求C#安卓课程设计源代码码。基于AECGISEngine的空间数据符号化具体实现

《地球科学类专业实验与实践系列教材·GIS程序设计教程:基于ArcGIS Engine的C#开发实例》(张丰,等)【摘要 书评 试读】- 京东图书
地球科学类专业实验与实践系列教材·GIS程序设计教程:基于ArcGIS Engine的C#开发实例
京 东 价 &
[定价 &¥]
PLUS会员专享价
您购买此商品可享受专属价
增值业务 &
重  量 &
搭配赠品 &
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
商品介绍加载中...
下载客户端,开始阅读之旅
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
印刷版次不同,印刷时间和版次以实物为准。
价格说明:
京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。
划线价:商品展示的划横线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
iframe(src='//www.googletagmanager.com/ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')【源代码】GIS 点、线缓冲区生成算法的C#实现(V0.95)
今天将源代码都贴上,请大家多多批评赐教。
广泛希望大家能指出一些错误,谢谢。
以后我会抽空学习一下特殊情况的处理,然后加上去,希望大家多多支持。
源代码结构:
源代码分别附上:
1.MathTool.cs
/*******************************************************&* 文档作者:dxj&* 创建时间:&* 文档说明:&*&&&&& 在GIS中常用的通用数学函数。&******************************************************/using Susing System.Collections.Gusing System.T
using DXJ.Teresa.GIS.GeoO
namespace DXJ.Teresa.GIS.Utility{&&& /// &summary&&&& /// 常用的通用数学函数&&& /// &/summary&&&& public static class MathTool&&& {&&&&&&& /// &summary&&&&&&&& /// 获取由两个点所形成的向量的象限角度&&&&&&& /// &/summary&&&&&&&& /// &param name="preCoord"&第一个点的坐标&/param&&&&&&&& /// &param name="nextCoord"&第二个点的坐标&/param&&&&&&&& /// &returns&&/returns&&&&&&&& public static double GetQuadrantAngle(Coordinate preCoord, Coordinate nextCoord)&&&&&&& {&&&&&&&&&&& return GetQuadrantAngle(nextCoord.X - preCoord.X, nextCoord.Y - preCoord.Y);&&&&&&& }&&&&&&& /// &summary&&&&&&&& /// 由增量X和增量Y所形成的向量的象限角度&&&&&&& /// &/summary&&&&&&&& /// &param name="x"&增量X&/param&&&&&&&& /// &param name="y"&增量Y&/param&&&&&&&& /// &returns&象限角&/returns&&&&&&&& public static double GetQuadrantAngle(double x, double y)&&&&&&& {&&&&&&&&&&& double theta = Math.Atan(y / x);&&&&&&&&&&& if (x & 0 && y & 0)&&&&&&&&&&& if (x & 0 && y & 0) return Math.PI * 2 +&&&&&&&&&&& if (x & 0 && y & 0) return theta + Math.PI;&&&&&&&&&&& if (x & 0 && y & 0) return theta + Math.PI;&&&&&&&&&&&&&&&&&& }&&&&&&& /// &summary&&&&&&&& /// 获取由相邻的三个点所形成的两个向量之间的夹角&&&&&&& /// &/summary&&&&&&&& /// &param name="preCoord"&&/param&&&&&&&& /// &param name="midCoord"&&/param&&&&&&&& /// &param name="nextCoord"&&/param&&&&&&&& /// &returns&&/returns&&&&&&&& public static double GetIncludedAngel(Coordinate preCoord, Coordinate midCoord, Coordinate nextCoord)&&&&&&& {&&&&&&&&&&& double innerProduct = (midCoord.X - preCoord.X) * (nextCoord.X - midCoord.X) + (midCoord.Y - preCoord.Y) * (nextCoord.Y - midCoord.Y);&&&&&&&&&&& double mode1 = Math.Sqrt(Math.Pow((midCoord.X - preCoord.X), 2.0) + Math.Pow((midCoord.Y - preCoord.Y), 2.0));&&&&&&&&&&& double mode2 = Math.Sqrt(Math.Pow((nextCoord.X - midCoord.X), 2.0) + Math.Pow((nextCoord.Y - midCoord.Y), 2.0));&&&&&&&&&&& return Math.Acos(innerProduct / (mode1 * mode2));&&&&&&& }&&&&&&& /// &summary&&&&&&&& /// 获取由两个点所形成的向量的模(长度)&&&&&&& /// &/summary&&&&&&&& /// &param name="preCoord"&第一个点&/param&&&&&&&& /// &param name="nextCoord"&第二个点&/param&&&&&&&& /// &returns&由两个点所形成的向量的模(长度)&/returns&&&&&&&& public static double GetDistance(Coordinate preCoord, Coordinate nextCoord)&&&&&&& {&&&&&&&&&&& return Math.Sqrt(Math.Pow((nextCoord.X - preCoord.X), 2) + Math.Pow((nextCoord.Y - preCoord.Y), 2));&&&&&&& }&&& }}
2.Coordinate.cs
/*******************************************************&* 文档作者:dxj&* 创建时间:&* 文档说明:&*&&&&& 本文件是坐标类。&******************************************************/using Susing System.Collections.Gusing System.T
namespace DXJ.Teresa.GIS.GeoObject{&&& /// &summary&&&& /// GEOObject坐标类&&& /// &/summary&&&& public class Coordinate&&& {&&&&&&& #region Private Members&&&&&&& private double _x = 0.0;&&&&&&& private double _y = 0.0;&&&&&&& #endregion
&&&&&&& #region Public Construtors&&&&&&& public Coordinate()&&&&&&& {&&&&&&&&&&& //&&&&&&& }&&&&&&& public Coordinate(double x, double y)&&&&&&& {&&&&&&&&&&& this._x =&&&&&&&&&&& this._y =&&&&&&& }&&&&&&& public Coordinate(string x, string y)&&&&&&& {&&&&&&&&&&& try&&&&&&&&&&& {&&&&&&&&&&&&&&& this._x = x.Trim() == "" ? 0.0 : Convert.ToDouble(x.Trim());&&&&&&&&&&&&&&& this._y = y.Trim() == "" ? 0.0 : Convert.ToDouble(y.Trim());&&&&&&&&&&& }&&&&&&&&&&& catch (Exception)&&&&&&&&&&& {
&&&&&&&&&&& }&&&&&&& }&&&&&&& public Coordinate(string coord)&&&&&&& {&&&&&&&&&&& if (coord.Trim().Length & 0)&&&&&&&&&&& {&&&&&&&&&&&&&&& string[] coords = coord.Split(new char[] { ',' });&&&&&&&&&&&&&&& if (coords.Length == 2)&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& this._x = coords[0].Trim().Length & 0 ? Convert.ToDouble(coords[0].Trim()) : 0.0;&&&&&&&&&&&&&&&&&&& this._y = coords[1].Trim().Length & 0 ? Convert.ToDouble(coords[1].Trim()) : 0.0;&&&&&&&&&&&&&&& }&&&&&&&&&&& }&&&&&&& }&&&&&&& #endregion
&&&&&&& #region Public Properities&&&&&&& public double X&&&&&&& {&&&&&&&&&&& get&&&&&&&&&&& {&&&&&&&&&&&&&&& return this._x;&&&&&&&&&&& }&&&&&&&&&&& set&&&&&&&&&&& {&&&&&&&&&&&&&&& this._x =&&&&&&&&&&& }&&&&&&& }&&&&&&& public double Y&&&&&&& {&&&&&&&&&&& get&&&&&&&&&&& {&&&&&&&&&&&&&&& return this._y;&&&&&&&&&&& }&&&&&&&&&&& set&&&&&&&&&&& {&&&&&&&&&&&&&&& this._y =&&&&&&&&&&& }&&&&&&& }&&&&&&& #endregion
&&&&&&& #region Public Override Methods&&&&&&& public override string ToString()&&&&&&& {&&&&&&&&&&& return "(" + this._x.ToString() + "," + this._y.ToString() + ")";&&&&&&& }&&&&&&& #endregion&&& }}
3.PointBuffer.cs
/************************************************************&*& 文档作者:dxj&*& 创建时间:&*& 文档说明:&*&&&&& 本文件是点缓冲区边界生成算法的C#实现。&* &************************************************************/
using Susing System.Collections.Gusing System.T
using DXJ.Teresa.GIS.GeoO
namespace DXJ.Teresa.GIS.Buffer{&&& /// &summary&&&& /// 点缓冲区边界生成算法&&& /// &/summary&&&& public class PointBuffer&&& {&&&&&&& #region Public Members&&&&&&& /// &summary&&&&&&&& /// 用于近似表示点缓冲区边界的内接正多边形的边数N&&&&&&& /// &/summary&&&&&&&& public static int N = 12;&&&&&&& #endregion
&&&&&&& #region Public Static Methods&&&&&&& /// &summary&&&&&&&& /// 根据一个给定点的坐标,生成基于这个点的点缓冲区边界点坐标串(逆时针)&&&&&&& /// &/summary&&&&&&&& /// &param name="center"&一个给定点的坐标&/param&&&&&&&& /// &param name="radius"&缓冲区的半径&/param&&&&&&&& /// &returns&点缓冲区边界点坐标串(逆时针)&/returns&&&&&&&& public static string GetBufferEdgeCoords(Coordinate center, double radius)&&&&&&& {&&&&&&&&&&& double alpha = 0.0;//Math.PI / 6;&&&&&&&&&&& double gamma = (2 * Math.PI) / N;
&&&&&&&&&&& StringBuilder strCoords = new StringBuilder();&&&&&&&&&&& double x = 0.0, y = 0.0;&&&&&&&&&&& for (double phi = 0; phi & (N - 1) * phi += gamma)&&&&&&&&&&& {&&&&&&&&&&&&&&& x = center.X + radius * Math.Cos(alpha + phi);&&&&&&&&&&&&&&& y = center.Y + radius * Math.Sin(alpha + phi);&&&&&&&&&&&&&&& if (strCoords.Length & 0) strCoords.Append(";");&&&&&&&&&&&&&&& strCoords.Append(x.ToString()+","+y.ToString());&&&&&&&&&&& }&&&&&&&&&&& return strCoords.ToString();&&&&&&& }&&&&&&& #endregion&&& }}4.PolylineBuffer.cs
/***********************************************************************&*& 文档作者:dxj &*& 创建时间: 20:17&*& 文档说明:&*&&&&& 本文件是线缓冲区边界生成算法的C#实现。&**********************************************************************/using Susing System.Collections.Gusing System.T
using DXJ.Teresa.GIS.GeoOusing DXJ.Teresa.GIS.U
namespace DXJ.Teresa.GIS.Buffer{&&& /// &summary&&&& /// 线缓冲区边界生成算法&&& /// &/summary&&&& public class PolylineBuffer&&& {&&&&&&& /// &summary&&&&&&&& /// 根据给定的一系列有顺序的坐标,逆时针生成缓冲区的边界坐标。&&&&&&& /// &/summary&&&&&&&& /// &param name="strPolyLineCoords"&一系列有顺序的坐标&/param&&&&&&&& /// &param name="radius"&缓冲区半径&/param&&&&&&&& /// &returns&缓冲区的边界坐标&/returns&&&&&&&& public static string GetBufferEdgeCoords(string strPolyLineCoords, double radius)&&&&&&& {&&&&&&&&&&& //参数处理&&&&&&&&&&& if (strPolyLineCoords.Trim().Length & 1) return "";&&&&&&&&&&& string[] strCoords = strPolyLineCoords.Split(new char[] { ';' });&&&&&&&&&&& List&Coordinate& coords = new List&Coordinate&();&&&&&&&&&&& foreach (string coord in strCoords)&&&&&&&&&&& {&&&&&&&&&&&&&&& coords.Add(new Coordinate(coord));&&&&&&&&&&& }
&&&&&&&&&&& //分别生成左侧和右侧的缓冲区边界点坐标串&&&&&&&&&&& string leftBufferCoords = GetLeftBufferEdgeCoords(coords, radius);&&&&&&&&&&& coords.Reverse();&&&&&&&&&&& string rightBufferCoords = GetLeftBufferEdgeCoords(coords, radius);&&&&&&&&&&& return leftBufferCoords + ";" + rightBufferC&&&&&&& }&&&&&&& #region Private Methods&&&&&&& /// &summary&&&&&&&& /// 根据给定的一系列有顺序的坐标,逆时针生成轴线左侧的缓冲区边界点&&&&&&& /// &/summary&&&&&&&& /// &param name="coords"&一系列有顺序的坐标&/param&&&&&&&& /// &param name="radius"&缓冲区半径&/param&&&&&&&& /// &returns&缓冲区的边界坐标&/returns&&&&&&&& private static string GetLeftBufferEdgeCoords(IList&Coordinate& coords, double radius)&&&&&&& {&&&&&&&&&&& //参数处理&&&&&&&&&&& if (coords.Count & 1) return "";&&&&&&&&&&& else if (coords.Count & 2) return PointBuffer.GetBufferEdgeCoords(coords[0], radius);
&&&&&&&&&&& //计算时所需变量&&&&&&&&&&& double alpha = 0.0;//向量绕起始点沿顺时针方向旋转到X轴正半轴所扫过的角度&&&&&&&&&&& double delta = 0.0;//前后线段所形成的向量之间的夹角&&&&&&&&&&& double l = 0.0;//前后线段所形成的向量的叉积
&&&&&&&&&&& //辅助变量&&&&&&&&&&& StringBuilder strCoords = new StringBuilder();&&&&&&&&&&& double startRadian = 0.0;&&&&&&&&&&& double endRadian = 0.0;&&&&&&&&&&& double beta = 0.0;&&&&&&&&&&& double x = 0.0, y = 0.0;
&&&&&&&&&&& //第一节点的缓冲区&&&&&&&&&&& {&&&&&&&&&&&&&&& alpha = MathTool.GetQuadrantAngle(coords[0], coords[1]);&&&&&&&&&&&&&&& startRadian = alpha + Math.PI;&&&&&&&&&&&&&&& endRadian = alpha + (3 * Math.PI) / 2;&&&&&&&&&&&&&&& strCoords.Append(GetBufferCoordsByRadian(coords[0], startRadian, endRadian, radius));&&&&&&&&&&& }
&&&&&&&&&&& //中间节点&&&&&&&&&&& for (int i = 1; i & coords.Count - 1; i++)&&&&&&&&&&& {&&&&&&&&&&&&&&& alpha = MathTool.GetQuadrantAngle(coords[i], coords[i + 1]);&&&&&&&&&&&&&&& delta = MathTool.GetIncludedAngel(coords[i - 1], coords[i], coords[i + 1]);&&&&&&&&&&&&&&& l = GetVectorProduct(coords[i - 1], coords[i], coords[i + 1]);&&&&&&&&&&&&&&& if (l & 0)&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& startRadian = alpha + (3 * Math.PI) / 2 -&&&&&&&&&&&&&&&&&&& endRadian = alpha + (3 * Math.PI) / 2;&&&&&&&&&&&&&&&&&&& if (strCoords.Length & 0) strCoords.Append(";");&&&&&&&&&&&&&&&&&&& strCoords.Append(GetBufferCoordsByRadian(coords[i], startRadian, endRadian, radius));&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& else if (l & 0)&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& beta = alpha - (Math.PI - delta) / 2;&&&&&&&&&&&&&&&&&&& x = coords[i].X + radius * Math.Cos(beta);&&&&&&&&&&&&&&&&&&& y = coords[i].Y + radius * Math.Sin(beta);&&&&&&&&&&&&&&&&&&& if (strCoords.Length & 0) strCoords.Append(";");&&&&&&&&&&&&&&&&&&& strCoords.Append(x.ToString() + "," + y.ToString());&&&&&&&&&&&&&&& }&&&&&&&&&&& }
&&&&&&&&&&& //最后一个点&&&&&&&&&&& {&&&&&&&&&&&&&&& alpha = MathTool.GetQuadrantAngle(coords[coords.Count - 2], coords[coords.Count - 1]);&&&&&&&&&&&&&&& startRadian = alpha + (3 * Math.PI) / 2;&&&&&&&&&&&&&&& endRadian = alpha + 2 * Math.PI;&&&&&&&&&&&&&&& if (strCoords.Length & 0) strCoords.Append(";");&&&&&&&&&&&&&&& strCoords.Append(GetBufferCoordsByRadian(coords[coords.Count - 1], startRadian, endRadian, radius));&&&&&&&&&&& }
&&&&&&&&&&& return strCoords.ToString();&&&&&&& }
&&&&&&& /// &summary&&&&&&&& /// 获取指定弧度范围之间的缓冲区圆弧拟合边界点&&&&&&& /// &/summary&&&&&&&& /// &param name="center"&指定拟合圆弧的原点&/param&&&&&&&& /// &param name="startRadian"&开始弧度&/param&&&&&&&& /// &param name="endRadian"&结束弧度&/param&&&&&&&& /// &param name="radius"&缓冲区半径&/param&&&&&&&& /// &returns&缓冲区的边界坐标&/returns&&&&&&&& private static string GetBufferCoordsByRadian(Coordinate center, double startRadian, double endRadian, double radius)&&&&&&& {&&&&&&&&&&& double gamma = Math.PI / 6;
&&&&&&&&&&& StringBuilder strCoords = new StringBuilder();&&&&&&&&&&& double x = 0.0, y = 0.0;&&&&&&&&&&& for (double phi = startR phi &= endRadian + 0.001; phi += gamma)&&&&&&&&&&& {&&&&&&&&&&&&&&& x = center.X + radius * Math.Cos(phi);&&&&&&&&&&&&&&& y = center.Y + radius * Math.Sin(phi);&&&&&&&&&&&&&&& if (strCoords.Length & 0) strCoords.Append(";");&&&&&&&&&&&&&&& strCoords.Append(x.ToString() + "," + y.ToString());&&&&&&&&&&& }&&&&&&&&&&& return strCoords.ToString();&&&&&&& }&&&&&&& /// &summary&&&&&&&& /// 获取相邻三个点所形成的两个向量的交叉乘积&&&&&&& /// &/summary&&&&&&&& /// &param name="preCoord"&第一个节点坐标&/param&&&&&&&& /// &param name="midCoord"&第二个节点坐标&/param&&&&&&&& /// &param name="nextCoord"&第三个节点坐标&/param&&&&&&&& /// &returns&相邻三个点所形成的两个向量的交叉乘积&/returns&&&&&&&& private static double GetVectorProduct(Coordinate preCoord, Coordinate midCoord, Coordinate nextCoord)&&&&&&& {&&&&&&&&&&& return (midCoord.X - preCoord.X) * (nextCoord.Y - midCoord.Y) - (nextCoord.X - midCoord.X) * (midCoord.Y - preCoord.Y);&&&&&&& }&&&&&&& #endregion&&& }}
4.测试代码
/************************************************************&*& 文档作者:dxj&*& 创建时间:&*& 文档说明:&*&&&&& 本文件是测试程序,根据一系列点生成边界值。&* &************************************************************/using Susing System.Collections.Gusing System.Wusing System.Web.UI;using System.Web.UI.WebC
using DXJ.Teresa.GIS.Busing DXJ.Teresa.GIS.GeoO
public partial class _Default : System.Web.UI.Page {&&& protected void Page_Load(object sender, EventArgs e)&&& {&&&&&&& //Coordinate coord = new Coordinate(117.5,36.7177825);&&&&&&& double radius = 0.;&&&&&&& //string strCoords = PointBuffer.GetBufferEdgeCoords(coord, radius);&&&&&&& //Response.Write(strCoords);
&&&&&&& string coords = "117.5,36..49,36..51,37.,37..,37..5,37..,36.,36..48,36..5,36.189865";&&&&&&& string strCoords = PolylineBuffer.GetBufferEdgeCoords(coords, radius);&&&&&&& Response.Write(strCoords);&&& }}
【注:】本算法是我根据网上的一篇论文提供的一种思路,自己编写代码实现的缓冲区算法,编写本算法的初衷只是为了服务自己的项目,现在发布出来也是为了方便大家,以使大家免得再周折一番,但请务必不要作为学术论文发表。
下载:http://files.cnblogs.com/longshaoye/BufferV1.0.0.7z
阅读(...) 评论()《ArcGIS&Engine+C#实例开发教程》第八讲&属性数据表的查询显示-ArcObjects开发-技术专栏-GIS空间站
http://www.gissky.net- GIS空间站
网站资讯通告:
您现在的位置:&&>>&&>>&&>>&&>>&正文
《ArcGIS&Engine+C#实例开发教程》第八讲&属性数据表的查询显示
在上一讲中,我们完成了图层符号选择器的制作。这一讲中,我们将实现图层属性数据表的查询显示。
在ArcMap中,单击图层右键菜单中的“Open Attribute Table”命令,便可弹出属性数据表。本讲将完成类似的功能,效果如下:
数据表显示,我们用了DataGridView控件。DataGridView 控件提供一种强大而灵活的以表格形式显示数据的方式。可以使用 DataGridView 控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图。我们可以很方便地把一个DataTable作为数据源绑定到DataGridView控件中。
本讲的思路大体如下:首先根据图层属性中的字段创建一个空的DataTable,然后根据数据内容一行行填充DataTable数据,再将DataTable绑定到DataGridView控件,最后调用并显示属性表窗体。
<FONT color=#.创建属性表窗体
新建一个Windows窗体,命名为“AttributeTableFrm.cs”。
从工具箱拖一个DataGridView控件到窗体,并将其Dock属性设置为“Fill”。
添加如下引用:
using ESRI.ArcGIS.C
using ESRI.ArcGIS.C
using ESRI.ArcGIS.esriS
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.G
using ESRI.ArcGIS.G
<FONT color=#.创建空DataTable
首先传入ILayer,再查询到ITable,从ITable中的Fileds中获得每个Field,再根据Filed设置DataTable的DataColumn,由此创建一个只含图层字段的空DataTable。实现函数如下:
/// &summary&
/// 根据图层字段创建一个只含字段的空DataTable
/// &/summary&
/// &param name="pLayer"&&/param&
/// &param name="tableName"&&/param&
/// &returns&&/returns&
private static DataTable CreateDataTableByLayer(ILayer pLayer, string tableName)
//创建一个DataTable表
DataTable pDataTable = new DataTable(tableName);
//取得ITable接口
ITable pTable = pLayer as IT
IField pField =
DataColumn pDataC
//根据每个字段的属性建立DataColumn对象
for (int i = 0; i & pTable.Fields.FieldC i++)
pField = pTable.Fields.get_Field(i);
//新建一个DataColumn并设置其属性
pDataColumn = new DataColumn(pField.Name);
if (pField.Name == pTable.OIDFieldName)
pDataColumn.Unique =//字段值是否唯一
//字段值是否允许为空
pDataColumn.AllowDBNull = pField.IsN
//字段别名
pDataColumn.Caption = pField.AliasN
//字段数据类型
pDataColumn.DataType = System.Type.GetType(ParseFieldType(pField.Type));
//字段默认值
pDataColumn.DefaultValue = pField.DefaultV
//当字段为String类型是设置字段长度
if (pField.VarType == 8)
pDataColumn.MaxLength = pField.L
//字段添加到表中
pDataTable.Columns.Add(pDataColumn);
pDataColumn =
return pDataT
因为GeoDatabase的数据类型与.NET的数据类型不同,故要进行转换。转换函数如下:
/// &summary&
/// 将GeoDatabase字段类型转换成.Net相应的数据类型
/// &/summary&
/// &param name="fieldType"&字段类型&/param&
/// &returns&&/returns&
public static string ParseFieldType(esriFieldType fieldType)
switch (fieldType)
case esriFieldType.esriFieldTypeBlob:
return "System.String";
case esriFieldType.esriFieldTypeDate:
return "System.DateTime";
case esriFieldType.esriFieldTypeDouble:
return "System.Double";
case esriFieldType.esriFieldTypeGeometry:
return "System.String";
case esriFieldType.esriFieldTypeGlobalID:
return "System.String";
case esriFieldType.esriFieldTypeGUID:
return "System.String";
case esriFieldType.esriFieldTypeInteger:
return "System.Int32";
case esriFieldType.esriFieldTypeOID:
return "System.String";
case esriFieldType.esriFieldTypeRaster:
return "System.String";
case esriFieldType.esriFieldTypeSingle:
return "System.Single";
case esriFieldType.esriFieldTypeSmallInteger:
return "System.Int32";
case esriFieldType.esriFieldTypeString:
return "System.String";
return "System.String";
上一篇文章: 下一篇文章:
相关文章列表
关于我们 - 联系我们 - 广告服务 - 友情链接 -基于C#的GIS校园电子地图实现_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于C#的GIS校园电子地图实现
&&系统是根据校园规划地图,结合校园信息特点,利用MapInfo 构建地图数据,并将不同的数据图层通过Geoset Manager 整合集成,在.NET 编程环境下通过C# 语言对MapX 控件的二次开发而实现的校园电子地图系统。系统除了具备地图缩放、漫游等功能外,还实现了鹰眼、测距、图元与属性之间互查与定位功能。文中给出了主要功能的开发过程及核心代码。
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢GIS程序设计与开发AE实习教程实习十一:ArcGIS Engine实现打开个人数据库(.mdb)_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
GIS程序设计与开发AE实习教程实习十一:ArcGIS Engine实现打开个人数据库(.mdb)
&&GIS程序设计与开发AE实习教程实习十一:ArcGIS Engine实现打开个人数据库(.mdb)
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
&#xe64e;加入VIP
还剩1页未读,
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 j2ee课程设计源代码 的文章

 

随机推荐