教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

经纬度生成点图层

来源:网络收集 时间:2026-08-04
导读: 经纬度生成点图层 private IFeatureClass CreateShapefile(string folderPath, DatabaseRecordset model,string strFeatureClassName, int GeometryType) { IWorkspaceFactory pFeatWorkspaceFac = new ShapefileWorkspaceFactory(); IFeatureWorkspace pFea

经纬度生成点图层

private IFeatureClass CreateShapefile(string folderPath, DatabaseRecordset model,string strFeatureClassName, int GeometryType) {

IWorkspaceFactory pFeatWorkspaceFac = new ShapefileWorkspaceFactory();

IFeatureWorkspace pFeatWorkspace =

pFeatWorkspaceFac.OpenFromFile(folderPath, 0) as IFeatureWorkspace; if (pFeatWorkspace == null) return null; ESRI.ArcGIS.Geodatabase.IField oField = new ESRI.ArcGIS.Geodatabase.FieldClass();

ESRI.ArcGIS.Geodatabase.IFields oFields = new ESRI.ArcGIS.Geodatabase.FieldsClass(); IFieldsEdit oFieldsEdit = null; IFieldEdit oFieldEdit = null;

IFeatureClass oFeatureClass = null; long FCount = model.GetFieldCount(); try {

oFieldsEdit = oFields as ESRI.ArcGIS.Geodatabase.IFieldsEdit; oFieldEdit = oField as ESRI.ArcGIS.Geodatabase.IFieldEdit; oFieldEdit.Name_2 = \

oFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry; IGeometryDef pGeo = new GeometryDefClass(); IGeometryDefEdit pGeoEdit = (IGeometryDefEdit)pGeo; if (GeometryType == 0) {

pGeoEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint; }

else if (GeometryType == 1) {

pGeoEdit.GeometryType_2 = esriGeometryType.esriGeometryPolyline;

} else {

pGeoEdit.GeometryType_2 = esriGeometryType.esriGeometryPolygon; }

//依据GeometryType创建相应几何类型的要素类

string ProjPath = Application.StartupPath + \\\\\xian1980 gk zone 18.prj\

ISpatialReferenceFactory2 spatialReferenceFactory = new SpatialReferenceEnvironmentClass();

ISpatialReference2 spatialReference =

spatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(ProjPath) as ISpatialReference2;

pGeoEdit.SpatialReference_2 = spatialReference; //新要素类的空间参考依据投影文件xian1980 gk zone 18.prj pGeoEdit.SpatialReference.SetDomain(-450359962737.05, 450359962737.05, -450359962737.05, 450359962737.05); oFieldEdit.GeometryDef_2 = pGeo; oFieldsEdit.AddField(oField);

oField = new ESRI.ArcGIS.Geodatabase.FieldClass(); oFieldEdit = oField as ESRI.ArcGIS.Geodatabase.IFieldEdit; oFieldEdit.Name_2 = \

oFieldEdit.Type_2 = esriFieldType.esriFieldTypeOID; oFieldsEdit.AddField(oField); for (int k = 0; k < FCount; k++) {

oField = new FieldClass(); oFieldEdit = oField as IFieldEdit;

oFieldEdit.Name_2 = model.GetFieldName(k); switch (model.GetFieldType(k)) {

case ADODB.DataTypeEnum.adBigInt: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger; break;

case ADODB.DataTypeEnum.adBoolean: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeSmallInteger; break;

case ADODB.DataTypeEnum.adBSTR: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeString; break;

case ADODB.DataTypeEnum.adChar: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeString; break;

case ADODB.DataTypeEnum.adCurrency: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeDouble; break;

case ADODB.DataTypeEnum.adDate: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeDate; break;

case ADODB.DataTypeEnum.adDBDate: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeDate; break;

case ADODB.DataTypeEnum.adDBTime: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeDate; break;

case ADODB.DataTypeEnum.adDBTimeStamp: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeDate; break;

case ADODB.DataTypeEnum.adDecimal: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeDouble; break;

case ADODB.DataTypeEnum.adDouble: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeDouble; break;

case ADODB.DataTypeEnum.adInteger: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeDouble; break;

case ADODB.DataTypeEnum.adLongVarChar: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeString; break; case ADODB.DataTypeEnum.adLongVarWChar: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeString; break;

case ADODB.DataTypeEnum.adNumeric: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeDouble; break;

case ADODB.DataTypeEnum.adSingle: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeSingle; break;

case ADODB.DataTypeEnum.adSmallInt: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger; break;

case ADODB.DataTypeEnum.adTinyInt: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger; break;

case ADODB.DataTypeEnum.adUnsignedBigInt: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger; break; case ADODB.DataTypeEnum.adUnsignedInt: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger; break; case ADODB.DataTypeEnum.adUnsignedSmallInt: oFieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger; break; case ADODB.DataTypeEnum.adUnsignedTinyInt: oFieldEdit.Type …… 此处隐藏:3898字,全部文档内容请下载后查看。喜欢就下载吧 ……

经纬度生成点图层.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/615342.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)