esriFeatureType与esriGeometryType的区别与联系

本文详细解释了esriGeometryType与esriFeatureType两种枚举类型的定义及应用,esriGeometryType主要关注数据的几何形状,如点、线、面等;而esriFeatureType则侧重于数据的存储结构,例如简单的点、线、面特征以及复杂网络中的节点和边。

转自原文 esriFeatureType与esriGeometryType的区别与联系

 

esriFeatureType通常用来表示数据的存储结构,即物理层;

esriGeometryType通常用来表示数据的几何形状,即表现层。

 

esriGeometryType枚举类型详

常量

对象

esriGeometryNull

0

未知类型(Unknown)

esriGeometryPoint

1

点(Point)

esriGeometryMultipoint

2

多点(Multipoint)

esriGeometryLine

13

线段(Line)

esriGeometryCircularArc

14

圆弧(CircularArc)

esriGeometryEllipticArc

16

椭圆弧(EllipticArc)

esriGeometryBezier3Curve

15

贝兹曲线(BezierCurve)

esriGeometryPath

6

路径(Path)

esriGeometryPolyline

3

多段线(Polyline)

esriGeometryRing

11

环(Ring)

esriGeometryPolygon

4

多边形(Polygon)

esriGeometryEnvelope

5

外包(Envelope)

esriGeometryAny

7

任何类型(Any valid geometry)

esriGeometryBag

17

任意几何类型的集合(GeometryBag)

esriGeometryMultiPatch

9

表面几何(MultiPatch)

esriGeometryTriangleStrip

18

三角带(TriangleStrip)

esriGeometryTriangleFan

19

三角扇形(TriangleFan)

esriGeometryRay

20

射线(Ray)

esriGeometrySphere

21

球体(Sphere)

esriGeometryTriangles

22

三角形(Triangles)

 

 

 

esriFeatureType枚举类型详解

常量

描述

对象

esriFTSimple

1

Polygons, polylines, and points representing objects or places that have area, such as water bodies; linear objects, such as rivers; and localized positions, such as houses or sample sites.

Simple Feature.

esriFTSimpleJunction

7

Simple junction feature in a geometric network representing point objects, such as a fuse, service point, or telephone pole.

Simple Junction Feature.

esriFTSimpleEdge

8

Simple edge feature in a geometric network representing polyline objects, such as primary or secondary overheads.

Simple Edge Feature.

esriFTComplexJunction

9

Complex junction feature in a geometric network, not in general use.

Complex Junction Feature.

esriFTComplexEdge

10

Complex edge feature in a geometric network representing polyline objects such as primary overheads, which have midspan connectivity. Network resources flow through complex edge without interruption by midspan connectivity.

Complex Edge Feature.

esriFTAnnotation

11

Place or object names or identifiers, such as street names, hydrant ID numbers, land values, or elevation.

Annotation Feature.

esriFTCoverageAnnotation

12

Place or object names or identifiers, such as street names, hydrant ID numbers, land values, or elevation. Not supported in geodatabases, only supported in coverage datasets.

Coverage Annotation Feature.

esriFTDimension

13

Measurements, such as distances, lengths, widths, and depths.

Dimension Feature.

esriFTRasterCatalogItem

14

A raster dataset in a raster catalog that has information, such as footprints, names, metadata, and any other user-defined attributes.

Raster C

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。




    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6885341.html ,如需转载请自行联系原作者


using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; // 添加此行,用于处理路径 using ESRI.ArcGIS.Geometry; // 几何类型(线、点、多边形) using ESRI.ArcGIS.Controls; // ArcGIS控件(DrawTool绘图工具) using ESRI.ArcGIS.Geodatabase; // 要素类、图层相关 //using ESRI.ArcGIS.DataSourcesGDB; // 内存工作空间(临时存储轨迹) using ESRI.ArcGIS.Carto; namespace 李佳怡2023030331 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnAttrQuery_Click(object sender, EventArgs e) { Form2 frm = new Form2(this); frm.Show(); } private void Form1_Load(object sender, EventArgs e) { try { // 添加System.IO命名空间引用(顶部) //using System.IO; string shapeName = "河北省行政区.shp"; string shapePath = Application.StartupPath; string fullPath = Path.Combine(shapePath, shapeName); // 检查文件及配套文件是否存在 if (!File.Exists(fullPath)) { MessageBox.Show("主文件不存在:" + fullPath); return; } if (!File.Exists(Path.ChangeExtension(fullPath, ".shx")) || !File.Exists(Path.ChangeExtension(fullPath, ".dbf"))) { MessageBox.Show("缺少.shx或.dbf配套文件"); return; } // 直接调用AddShapeFile,不接收返回值(兼容void返回类型) axMapControl1.AddShapeFile(shapePath, shapeName); axMapControl1.ActiveView.Refresh(); // 刷新地图显示 MessageBox.Show("Shapefile加载完成"); } catch (Exception ex) { MessageBox.Show("加载失败:" + ex.Message); } } private void btnDrawTrack_Click(object sender, EventArgs e) { if (_trackLayer != null) { axMapControl1.DeleteLayer(_trackLayer); _trackLayer = null; } // 2. 提示用户操作 MessageBox.Show("请在地图上点击绘制轨迹(双击结束)", "操作提示"); // 3. 调用TrackLine()方法,捕获鼠标绘制的线(核心代码) // 执行该代码后,鼠标会变成十字,在地图上点击加点,双击结束 IPolyline trackLine = axMapControl1.TrackLine() as IPolyline; // 4. 判断是否绘制了轨迹 if (trackLine == null || trackLine.IsEmpty) { MessageBox.Show("未绘制任何轨迹", "提示"); return; } // 5. 保存轨迹并添加到地图 _trackPolyline = trackLine; _trackLayer = AddTrackToMap(trackLine); // 6. 刷新地图 axMapControl1.ActiveView.Refresh(); axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } } // 绘图完成后的回调方法(保存轨迹并显示) private void DrawTool_OnDrawComplete(object drawObject) { // 1. 将绘制的对象转换为线要素(轨迹) _trackPolyline = drawObject as IPolyline; if (_trackPolyline == null) return; // 2. 将轨迹添加到地图并显示 _trackLayer = AddTrackToMap(_trackPolyline); // 3. 刷新地图视图 axMapControl1.ActiveView.Refresh(); axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } // ========== 辅助方法:将轨迹添加到地图 ========== private IFeatureLayer AddTrackToMap(IPolyline trackLine) { // 1. 创建内存工作空间(临时存储轨迹,程序关闭后消失) IWorkspaceFactory workspaceFactory = new InMemoryWorkspaceFactoryClass(); IWorkspace workspace = workspaceFactory.Create("", "TempTrackWorkspace", null, 0); IFeatureWorkspace featureWorkspace = workspace as IFeatureWorkspace; // 2. 定义轨迹图层的字段(仅需几何字段) IFields fields = new FieldsClass(); IFieldsEdit fieldsEdit = fields as IFieldsEdit; // 2.1 创建几何字段(存储线要素) IField shapeField = new FieldClass(); IFieldEdit shapeFieldEdit = shapeField as IFieldEdit; shapeFieldEdit.Name_2 = "Shape"; // 字段名 shapeFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry; // 字段类型:几何 // 2.2 设置几何字段的空间参考(地图控件一致) IGeometryDef geometryDef = new GeometryDefClass(); IGeometryDefEdit geometryDefEdit = geometryDef as IGeometryDefEdit; geometryDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPolyline; // 线要素 geometryDefEdit.SpatialReference_2 = axMapControl1.SpatialReference; // 地图同坐标系 shapeFieldEdit.GeometryDef_2 = geometryDef; // 2.3 将几何字段添加到字段集合 fieldsEdit.AddField(shapeField); // 3. 创建临时要素类(存储轨迹的要素) IFeatureClass trackFeatureClass = featureWorkspace.CreateFeatureClass( "TrackClass", // 要素类名 fields, // 字段集合 null, // 要素类扩展 null, // 配置关键字 esriFeatureType.esriFTSimple, // 要素类型 "Shape", // 几何字段名 "" // 配置字符串 ); // 4. 创建轨迹要素并添加到要素类 IFeature trackFeature = trackFeatureClass.CreateFeature(); trackFeature.Shape = trackLine; // 设置要素的几何形状为轨迹线 trackFeature.Store(); // 保存要素 // 5. 创建轨迹图层并添加到地图 IFeatureLayer trackLayer = new FeatureLayerClass(); trackLayer.FeatureClass = trackFeatureClass; trackLayer.Name = "用户绘制轨迹"; // 图层名(在TOC中显示) axMapControl1.AddLayer(trackLayer); // 将图层添加到地图 return trackLayer; } private void btnRedrawTrack_Click(object sender, EventArgs e) { // 1. 判断是否有已绘制的轨迹 if (_trackPolyline == null) { MessageBox.Show("请先绘制轨迹再执行重绘操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } // 2. 清除旧的轨迹图层 if (_trackLayer != null) { axMapControl1.DeleteLayer(_trackLayer); _trackLayer = null; } // 3. 重新添加轨迹到地图 _trackLayer = AddTrackToMap(_trackPolyline); // 4. 刷新地图视图 axMapControl1.ActiveView.Refresh(); axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); MessageBox.Show("轨迹重绘完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } // ============================================== } } 这有19个错误,帮我找出来改一下
11-28
**项目名称:** 基于Vue.jsSpring Cloud架构的博客系统设计开发——微服务分布式应用实践 **项目概述:** 本项目为计算机科学技术专业本科毕业设计成果,旨在设计并实现一个采用前后端分离架构的现代化博客平台。系统前端基于Vue.js框架构建,提供响应式用户界面;后端采用Spring Cloud微服务架构,通过服务拆分、注册发现、配置中心及网关路由等技术,构建高可用、易扩展的分布式应用体系。项目重点探讨微服务模式下的系统设计、服务治理、数据一致性及部署运维等关键问题,体现了分布式系统在Web应用中的实践价值。 **技术架构:** 1. **前端技术栈:** Vue.js 2.x、Vue Router、Vuex、Element UI、Axios 2. **后端技术栈:** Spring Boot 2.x、Spring Cloud (Eureka/Nacos、Feign/OpenFeign、Ribbon、Hystrix、Zuul/Gateway、Config) 3. **数据存储:** MySQL 8.0(主数据存储)、Redis(缓存会话管理) 4. **服务通信:** RESTful API、消息队列(可选RabbitMQ/Kafka) 5. **部署运维:** Docker容器化、Jenkins持续集成、Nginx负载均衡 **核心功能模块:** - 用户管理:注册登录、权限控制、个人中心 - 文章管理:富文本编辑、分类标签、发布审核、评论互动 - 内容展示:首页推荐、分类检索、全文搜索、热门排行 - 系统管理:后台仪表盘、用户内容监控、日志审计 - 微服务治理:服务健康检测、动态配置更新、熔断降级策略 **设计特点:** 1. **架构解耦:** 前后端完全分离,通过API网关统一接入,支持独立开发部署。 2. **服务拆分:** 按业务域划分为用户服务、文章服务、评论服务、文件服务等独立微服务。 3. **高可用设计:** 采用服务注册发现机制,配合负载均衡熔断器,提升系统容错能力。 4. **可扩展性:** 模块化设计支持横向扩展,配置中心实现运行时动态调整。 **项目成果:** 完成了一个具备完整博客功能、具备微服务典型特征的分布式系统原型,通过容器化部署验证了多服务协同运行的可行性,为云原生应用开发提供了实践参考。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值