ArcGIS Engine将圆弧转为加密的线段

在CityEngine中的圆柱体建模 CityEngine中不支持弧段的存储,各种面都是折线面,也就是ArcGIS中的Polygon。当遇到圆柱体的建筑物或实体时,如何为其建模呢?        考虑到ArcGIS与CityEngine的数据是可以互操作的,那就在ArcGIS中来构建圆形或者弧段,然后将之处理成近似弧段的多边形,然后导入CityEngine来作为模型的底面基础。按照这个思路,来动手做一下。 1. 阅读详情

文章目录

代码

/// <summary>
/// 将面状图层的圆弧转为加密的线段
/// </summary>
/// <param name="pWorkspace">工作空间(FileGDB)</param>
/// <param name="sPolygonFeatureClassName">面状要素类名称</param>
/// <param name="nSegLength">加密线段每段的参考长度</param>
private static void CircularArcToDensifiedLines(IFeatureWorkspace pWorkspace, string sPolygonFeatureClassName, int nSegLength = 10)
{
	try
	{
		var pFeatureClass = pWorkspace.OpenFeatureClass(sPolygonFeatureClassName);
		var pFeatureCursor = pFeatureClass.Search(null, false);
		var bChange = false;
		IFeature pFeature;
		while (null != (pFeature = pFeatureCursor.NextFeature()))
		{
			var pGeoCol = pFeature.ShapeCopy as IGeometryCollection;
			for (int i = pGeoCol.GeometryCount - 1; i >= 0; i--)
			{
				var pGeo = pGeoCol.Geometry[i];
				if (pGeo.GeometryType == esriGeometryType.esriGeometryRing)
				{
					var pSegCol = pGeo as ISegmentCollection;
					var nCount = pSegCol.SegmentCount;
					for (int j = nCount - 1; j >= 0; j--)
					{
						var pSeg = pSegCol.Segment[j];
						if (pSeg.GeometryType != esriGeometryType.esriGeometryCircularArc)
						{
							continue;
						}
						var pCircularArc = pSeg as ICircularArc;
						var nLength = pCircularArc.Length;
						var nShareCount = (int)(nLength / nSegLength) + 1;
						if (nShareCount < 3)
						{
							nShareCount = 3;
						}
						int nNum = 0;
						var lstLine = new ILine[nShareCount];
						IGeometryBridge2 geometryBridge2 = new GeometryEnvironmentClass();
						geometryBridge2.Densify(pSeg, 0.1, ref nNum, ref lstLine);
						var pGeometryBag = new GeometryBagClass();
						ISegmentCollection pGeometryCollection = new PolygonClass();
						lstLine.ToList().ForEach(p => pGeometryCollection.AddSegment(p as ISegment));
						bChange = true;
						if (bChange)
						{
							pSegCol.RemoveSegments(j, 1, false);
							pSegCol.InsertSegmentCollection(j, pGeometryCollection);
						}
					}
				}
			}
			if (bChange)
			{
				pFeature.Shape = pGeoCol as IGeometry;
				pFeature.Store();
			}
		}
	}
	catch { }
}
ArcGIS教程:3D 折线要素 面要素是一个 GIS 对象,其地理制图表达(一系列的 x 和 y 坐标对)作为其属性(或字段)之一存储在数据库的行中。某些线要素(例如地铁线)还需要包含 z 值或高度,以在 3D 空间对自身进行正确定位。这些对象必须作为 3D 线要素进行建模。 阅读详情

相关推荐

将cad里圆弧改为多义线

打开任意一个版本的CAD软件,运行appload,加载程序后就可以运行,在命令行输入CC,选择需要转化的弧即可。方便简捷吧。

018集——圆弧(ARC)转多段线(lwpolyline)——cad vba 中按一定精度拟合加点实现

在国土资源管理项目中,我们经常会遇到CAD转gis数据实现入库,而cad中的arc圆弧转为gis数据只能转出弧的顶点坐标,导致图形变形失真。若一个一个对弧进行手工增加点转为多段线,耗时耗力,效率极其低下。函数如上,我们对圆弧进行80等分,此数值可根据用户需求进行调整。首先,在cad中画出一个弧,然后转为多段线,最后删除弧。接下来我们对弧转多段线进行函数封装,使用时直接调用即可。接下来我们随意打开一个cad图,调用函数实现弧转多段线。由上图可知,我们已成功转为多段线。至此,我们圆满完成任务。

山水CAD 二次开发 2849

从零开始,用Cadence Virtuoso手把手仿真一个1.5V LDO(附完整电路与仿真脚本)

本文详细介绍了如何使用Cadence Virtuoso从零开始仿真一个1.5V LDO,包括环境准备、电路导入、Testbench构建、核心仿真类型分析以及高级调试技巧。通过完整的电路与仿真脚本,帮助读者掌握LDO设计与仿真的关键技术,提升电路设计能力。

weixin_31309419的博客 444

ArcGIS弧线段转折线段的方法总结

工具,功能类似【增密】,但它可能会修改其它复杂的边界,并且不能很好的控制只处理弧线段,被【增密】完爆。SHP要素的一个特点是不能保存弧线段,因此我们可以将图斑导出为SHP要素,弧线段就自动转为折线段了。工具,可以很好的实现增密,但是手动处理相对于使用地理处理工具,还是不够方便。转SHP的情况,折点密度不够,生成结果的面积偏差自然也就比较大。【增密方法】为【距离】时,不需要增密的部分也被处理了。【增密方法】为【偏移】的情况,所得到的结果是最理想的。这时候仅有弧线段被增密,是比较理想的结果。

规划GIS会 5588

【墨者学院 】uWSGI 漏洞复现(CVE-2018-7490)

0x01 漏洞详情 uWSGI是一款Web应用程序服务器,它实现了WSGI、uwsgi和http等协议。 uWSGI 2.0.17之前版本中存在路径遍历漏洞,该漏洞源于程序没有正确的处理DOCUMENT_ROOT检测。攻击者可通过发送带有‘…’序列的特制URL请求利用该漏洞查看系统上的任意文件。 uWSGI 2.0.17之前版本中存在路径遍历漏洞,该漏洞源于程序没有正确的处理DOCUMENT_RO...

Summer's blog 1万+

差分隐私(Differential Privacy)

差分隐私,拉普拉斯机制和高斯机制的证明

Michale_L的博客 1万+

关于ArcGIS Pro中的弧转多段线的问题

好了,前段时间按照自己的理解开始做大比例尺成图工具,现在空间数据库定义好了,开始把乱七八糟的数据开始入库,然后,然后问题再次出现,果然,局方拿回来的不是什么数据标准级,Update到PostgreSQL开始报错,报啥错呢,如下所示:好好好,1000+的数据量就开始给我整幺蛾子是吧,那就搞!

ShouHuXiong的博客 1966

用KalmanNet搞定非线性状态估计:当卡尔曼滤波遇上神经网络

本文深入探讨了KalmanNet如何将神经网络与卡尔曼滤波结合,以解决非线性状态估计中的模型失配和噪声不确定性问题。通过保留经典滤波框架并用RNN学习卡尔曼增益,该方法在无人机导航、机器人定位等场景中实现了模型驱动与数据驱动的优势互补,提升了估计的鲁棒性和灵活性。

mango的博客 309

GIS 25种必备编辑工具

GIS 25种必备编辑工具【创建要素】1. 线段2.涂鸦3.直角4.圆弧5. 追踪6. 放射【对齐现有要素】7. 移动8. 旋转9. 按比例缩放【改变现有要素形状】10.编辑顶点11. 重塑12.替换13.延伸14. 裁剪15.圆弧16.简化17.增密18.平滑【分割与合并现有要素】19. 分割20.合并21. 缓冲区22. 等分23. 线段分割24.拆分【坐标几何】25.导线 本文源于对GISGeography网站的文章翻译,原文链接: GIS Editing Tools [Cheatsheet] -

Shirmy的博客 5486

【动态规划】背包问题(详细总结,很全)

暴力的解法是指数级别的时间复杂度。进而才需要动态规划的解法来进行优化!背包问题是动态规划(Dynamic Planning) 里的非常重要的一部分,关于几种常见的背包,其关系如下:在解决背包问题的时候,我们通常都是按照如下五部来逐步分析,把这五部都搞透了,算是对动规来理解深入了。二维dp数组01背包,先遍历物品还是先遍历背包都是可以的,且第二层for循环是从小到大遍历一维dp数组01背包,只能先遍历物品再遍历背包容量,且第二层for循环是从大到小遍历。求组合数:外层遍历物品,内层遍历背包。

m0_51370744的博客 4万+

Python实战:逐笔高频因子构建与回测全流程解析

本文详细解析了使用Python构建与回测逐笔高频因子的全流程。从逐笔数据的价值与清洗入手,通过实战代码演示了‘大买成交金额占比’因子的计算逻辑,并重点阐述了因子正交化处理的重要性以剔除风格影响。最后,提供了一个经典的分位数回测框架来验证因子有效性,并分享了数据质量、计算效率与过拟合等核心避坑指南。

grass的博客 391

ArcGIS查找弧线段的简单方法

这里不需要写python脚本或二次开发(当然其实用代码会更有效率,更准确),就单纯使用地理处理工具来解决这个问题。弧线段的首末点的直线距离要小于弧线段本身的长度。字段名不一样的话,注意把几个字段参数替换掉。因此我们只要计算并比较一下这2个值就行了。现在的问题是要怎么将这些弧线段找出来。】工具将弧线段转为折线段,以上是查找弧线段的方法。这里再稍提一下处理方法。

规划GIS会 2762

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

weixin_45390670的博客 1869

2020口碑最好的数据可视化分析工具大集合

商场如战场,数据是把枪。亚马逊运用大数据为客户推荐商品信息,阿里用大数据成立了小微金融服务集团,而谷歌更是计划用大数据接管世界……不知不觉,数据已经成为我们生活中必不可少的利器。本文收集了各个平台各种行业的数据可视化分析工具,让你不仅大饱眼福,而且还可以让你事半功倍。 1、Datawrapper Datawrapper是一个用于制作交互式图表的在线数据可视化工具。一旦您从CSV文件上传数据或直接将其粘贴到字段中,Datawrapper将生成一个条,线或任何其他相关的可视化文件。许多记者和新闻机构使用Data

明月说数据 1012

3.详解Labview串口通讯--从串口线连接到串口通讯保姆级教程

本文非常详细的介绍了使用Labview实现串口通讯,读完题主这篇文章,即使你是今天刚下载的Labview,也能熟练的连接并驱动串口执行,接下来和我一起学习下,记得关注并点赞不迷路

关注我,更多技术问题欢迎私聊~ 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ArcGIS Engine将多边形Polygon转为多段线Polyline

示例代码如下: /// <summary> /// Geometry(Polygon)转Polyline /// </summary> /// <param name="pGeometry">传入的Polygon多边形</param> /// <returns&...

a_dev的专栏 4225

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

判断一个shape是折线还是弧段

一个feature.shp是一个geometry,将其转换 ISegmentCollection SegmentCollection = pFeature.Shape as ISegmentCollection; 可以看到其组成部分。基本上分为四种  1.esriGeometryType.esriGeometryEllipticArc 2.esriGeometryType.esriGeome

wujianyouhun的专栏 2427

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ArcGIS之Data Reviewer空间数据质量检查(GIS思维)

课程采用ArcGIS10.6录制,4章47节,13个小时。试用于ArcGIS10.X整个系列。Data Reviewer模块英文界面录制,配合PPT中英对照界面。介绍ArcGIS空间质量检查。复习了传统的拓扑、属性域、子类。介绍了DataReviewer模块的全流程应用,配合实际案例学习各检验规则,再配合三调案例深入学习。想看课程概述。 课程资料下载请在网页端看目录提示。

lisp插件圆弧转折线_AutoCAD中圆弧折线化方法与实现

AutoCAD中圆弧折线化方法与实现刘虎*【摘要】AutoCAD作为一种重要的地形图制图软件,图中存在大量的圆弧图元。由于圆弧只有端点或圆心坐标,弧线本身缺乏精确的坐标信息,因此导致一些数据检查时出错。AutoCAD软件本身不提供圆弧转折线的功能。本文尝试采用等角切分方法,利用VBA二次开发技术,在保持图形原有特征及精度要求的前提下,将圆弧、圆及多段线中的圆弧分别转换为纯折线的多段线,从而去除圆弧...

weixin_35049138的博客 2479

ArcGIS Pro脚本工具(3)——直线转弧线

OD成本矩阵求解后的生成线为直线,如下左图,略丑。一通捣鼓终于实现了将直线转为弧线,效果见右图。 实现的方法主要是参考了这片文章,在此先感谢前辈大佬。 生成流向弧线工具 - GIS知乎-新一代GIS问答社区 http://zhihu.geoscene.cn/article/2811在前文的基础上,修改了添加折点的方法(为此还解了一道几何题,几乎抓破脑壳,不得不说高中才是知识的顶峰),增加了对弧线方向和弧度的控制。值得一提的是,将原直线的属性信息也一并增加到了新生成的弧线中,方便后续的符号化。 .

圈圈的博客 6580

ArcGIS Engine - 自定义编辑器,绘制点、线、面、弧线,编辑折点。

1.绘制点 using System; using System.Drawing; using System.Runtime.InteropServices; using ESRI.ArcGIS.ADF.BaseClasses; using ESRI.ArcGIS.ADF.CATIDs; using ESRI.ArcGIS.Controls; using System.Windows.Forms; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.Carto; u.

weixin_42562567的博客 3142

lisp插件圆弧转折线_插件:真实弯曲与形体弯曲使用详解

小吧有两个神奇的插件,除了直男掰不弯它能掰弯一切,包括直男的模型。很厉害有木,有让我们一起来了解一下这两个插件吧!插件介绍使用前我们先了解一下两者的区别。真实弯曲SUAPP编号388作者:thomthom插件下载:www.suapp.me/plugin/388真实弯曲插件可将群组或组件实例弯曲到指定的程度,并保留参考段的原始长度。当前参考段是边界框的底部前面的位置。因为弯曲在底部前的边界框边缘执行...

weixin_42253260的博客 815

CAD圆弧转GIS

在线CAD转GIS 请点击链接 CAD和GIS之间的区别 文件类型区别: CAD为DWG文件。 GIS分为SHP、GDB、MDB以及ArcSde。 实体类型区别: CAD常用的类型:直线、多段线、圆弧、圆、椭圆、面域、块、属性块、单行文字、多行文字。 GIS常用的类型:点(Point)、多点(Multipoint)、线段(Line)、圆弧(CircularArc)、椭圆弧(Elli...

zzia72的专栏 2469

图文并茂详解ArcGIS中的线和多边形

本文主要详细讲解ArcGIS中的线、多线段和多边形的结构关系。        在ArcGIS的定义中,线部分的类结构视图如下:        从上图可以非常直观地看到其结构关系。 一、线段(ISegment)        ArcGIS中的线段都继承于ISegment,分四种线段。贝拉曲线(IBezierCurve)、直线段(ILine)、圆弧线(ICircularArc)、椭圆弧

zy332719794的专栏 1万+

解析dwg文件圆弧段被直线化解决方案及相关可能出现的问题(AutomationException: 0x800401f5和AutomationException: 0x80040228)

在做Java环境下进行空间解析时遇到的问题,一共时遇到了两个问题: 1、上传CAD的dwg类型文件叠加显示,包含圆弧段的数据解析成了一条直线。 2、在初始化ArcObjects环境时报错AutomationException: 0x800401f5以及后面shapefile工作区打开的时候报错AutomationException: 0x80040228。 首先说一下第一个问题,CAD和ar...

qq_33777040的博客 2114
上一篇: ArcPy计算尖锐角
下一篇: Oracle分页查询
acngiser
博客等级 码龄15年 118粉丝 214原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值