How to work with the snap environment
How to work with the snap environment |
In this topic
Working with the snap environment

[C#]
publicvoid SnapEnvirSettings(IEngineEditor editor)
{
//Get the snap environment from the editor.
IEngineSnapEnvironment snapEnvironment = editor as IEngineSnapEnvironment; //Ensure there is a snap agent turned on in the snap environment.if (snapEnvironment.SnapAgentCount == 0)
{
System.Windows.Forms.MessageBox.Show(
"You need to turn on at least one snapping agent!!!");
return ;
} //Code to display the snap tolerance in a message box. double tolerance = snapEnvironment.SnapTolerance;
System.Windows.Forms.MessageBox.Show(Convert.ToString(tolerance)); //Set the snap tolerance.
snapEnvironment.SnapToleranceUnits =
esriEngineSnapToleranceUnits.esriEngineSnapToleranceMapUnits;
snapEnvironment.SnapTolerance = 15; //Turn on snap tips.
((IEngineEditProperties2)editor).SnapTips = true;
}
[VB.NET]
PublicSub SnapEnvirSettings(ByVal editor As IEngineEditor)
'Get the snap environment from the editor.Dim snapEnvironment As IEngineSnapEnvironment = editor As IEngineSnapEnvironment 'Ensure there is a snap agent turned on in the snap environment.If snapEnvironment.SnapAgentCount = 0 Then
System.Windows.Forms.MessageBox.Show("You need to turn on at least one snapping agent!!!")
ReturnEndIf'Code to display the snap tolerance in a message box.Dim tolerance AsDouble = snapEnvironment.SnapTolerance
System.Windows.Forms.MessageBox.Show(Convert.ToString(tolerance)) 'Set the snap tolerance.
snapEnvironment.SnapToleranceUnits = esriEngineSnapToleranceUnits.esriEngineSnapToleranceMapUnits
snapEnvironment.SnapTolerance = 15 'Turn on snap tips.
((IEngineEditProperties2)editor).SnapTips = TrueEndSub
[C#]
privatebool CheckIsAnySnapAgentSelected(IEngineSnapEnvironment snapEnvironment)
{
int snapAgentCount = snapEnvironment.SnapAgentCount;
int checkedFeatureSnapAgentCount = 0;
int featureSnapAgentCount = 0; //Loop through all registered snap agents in the snap environment. Count feature snap agents,//checked feature snap agents, and nonfeature snap agents.for (int i = 0; i < snapAgentCount; i++)
{
IEngineSnapAgent currentSnapAgent = snapEnvironment.get_SnapAgent(i);
if (currentSnapAgent is IEngineFeatureSnapAgent)
{
IEngineFeatureSnapAgent featureSnapAgent = currentSnapAgent as
IEngineFeatureSnapAgent;
featureSnapAgentCount++; //Determine if the feature snap agent is checked.if (featureSnapAgent.HitType !=
esriGeometryHitPartType.esriGeometryPartNone)
{
checkedFeatureSnapAgentCount++;
}
}
}
if (checkedFeatureSnapAgentCount > 0 || snapAgentCount > featureSnapAgentCount)
{
returntrue;
}
else
{
returnfalse;
}
}
[VB.NET]
PrivateFunction CheckIsAnySnapAgentSelected(ByVal snapEnvironment As IEngineSnapEnvironment) AsBooleanDim snapAgentCount AsInteger = snapEnvironment.SnapAgentCount
Dim checkedFeatureSnapAgentCount AsInteger = 0
Dim featureSnapAgentCount AsInteger = 0 'Loop through all registered snap agents in the snap environment. Count feature snap agents,'checked feature snap agents, and nonfeature snap agents.Dim i AsIntegerFor i = 0 To snapAgentCount - 1 Step i + 1
Dim currentSnapAgent As IEngineSnapAgent = snapEnvironment.get_SnapAgent(i)
IfTypeOf currentSnapAgent Is IEngineFeatureSnapAgent ThenDim featureSnapAgent As IEngineFeatureSnapAgent = currentSnapAgent As IEngineFeatureSnapAgent
featureSnapAgentCount = featureSnapAgentCount + 1 'Determine if the feature snap agent is checked.If featureSnapAgent.HitType <> esriGeomeTryHitPartType.esriGeomeTryPartNone Then
checkedFeatureSnapAgentCount = checkedFeatureSnapAgentCount + 1
EndIfEndIfNextIf checkedFeatureSnapAgentCount > 0 Or snapAgentCount > featureSnapAgentCount ThenReturnTrueElseReturnFalseEndIfEndFunction
Snap agents
[C#]
publicvoid AddNewSnapAgent()
{
IEngineEditor editor = new EngineEditorClass();
IEngineEditLayers editLayers = editor as IEngineEditLayers;
IEngineSnapEnvironment snapEnvironment = editor as IEngineSnapEnvironment; //Check that the user is editing; otherwise, there will be no snap agent loaded.if (editLayers.TargetLayer == null)
{
System.Windows.Forms.MessageBox.Show("Please start an edit session");
return ;
} //Clear all existing snap agents.
snapEnvironment.ClearSnapAgents(); //Create a feature snap agent.
IEngineFeatureSnapAgent featureSnapAgent = new EngineFeatureSnap();
IFeatureClass layerFeatureClass = editLayers.TargetLayer.FeatureClass;
featureSnapAgent.FeatureClass = layerFeatureClass;
featureSnapAgent.HitType = esriGeometryHitPartType.esriGeometryPartBoundary; //Activate only the snap agent for the target layer.
snapEnvironment.AddSnapAgent(featureSnapAgent);
}
[VB.NET]
PublicSub AddNewSnapAgent()
Dim editor As IEngineEditor = New EngineEditorClass()
Dim editLayers As IEngineEditLayers = editor As IEngineEditLayers
Dim snapEnvironment As IEngineSnapEnvironment = editor As IEngineSnapEnvironment 'Check that the user is editing; otherwise, there will be no snap agent loaded.If editLayers.TargetLayer IsNothingThen
System.Windows.Forms.MessageBox.Show("Please start an edit session")
ReturnEndIf'Clear all existing snap agents.
snapEnvironment.ClearSnapAgents() 'Create a feature snap agent.Dim featureSnapAgent As IEngineFeatureSnapAgent = New EngineFeatureSnap()
Dim layerFeatureClass As IFeatureClass = editLayers.TargetLayer.FeatureClass
featureSnapAgent.FeatureClass = layerFeatureClass
featureSnapAgent.HitType = esriGeomeTryHitPartType.esriGeomeTryPartBoundary 'Activate only the snap agent for the target layer.
snapEnvironment.AddSnapAgent(featureSnapAgent)
EndSub
Snapping in z-dimension
Snap point method
See Also:
How to work with the snap environment的更多相关文章
- Ieditor
Interfaces Description IActiveViewEvents (esriCarto) Provides access to events that occur when the s ...
- arcgis arcengine Using environment settings
In this topic About using environment settings Environment settings summary table About using enviro ...
- 重新想象 Windows 8 Store Apps (56) - 系统 UI: Scale, Snap, Orientation, High Contrast 等
[源码下载] 重新想象 Windows 8 Store Apps (56) - 系统 UI: Scale, Snap, Orientation, High Contrast 等 作者:webabcd ...
- 关于Ubuntu中snap安装软件太慢解决办法
两种方法,一是下载好包手动安装,二设置snap的代理. 下载安装包方式 到 https://uappexplorer.com/snaps 搜索需要的 snap 包,然后下载 下载的时候选择对应的平台. ...
- deepin20使用snap并设置代理
snap下载 $ sudo apt update $ sudo apt install snapd https://snapcraft.io/docs/installing-snap-on-ubunt ...
- OpenCloudOS使用snap安装.NET 6
开源操作系统社区 OpenCloudOS 由腾讯与合作伙伴共同倡议发起,是完全中立.全面开放.安全稳定.高性能的操作系统及生态.OpenCloudOS 沉淀了多家厂商在软件和开源生态的优势,继承了腾讯 ...
- IEEE 802.11p (WAVE,Wireless Access in the Vehicular Environment)
IEEE 802.11p(又称WAVE,Wireless Access in the Vehicular Environment)是一个由IEEE 802.11标准扩充的通讯协定.这个通讯协定主要用在 ...
- 修改/etc/profile和/etc/environment导致图形界面无法登陆的问题
在使用ubuntu开发时,往往要修改PATH变量,有时会通过修改/etc/profile和/etc/environment来修改默认的PATH变量,但是一旦出错,很容易造成无法登陆进入图形界面的问题. ...
- System.Environment.CurrentDirectory和Application.StartupPath
System.Environment.CurrentDirectory的含义是获取或设置当前工作路径,而Application.StartupPath是获取程序启动路径,表面上看二者没什么区别,但实际 ...
随机推荐
- centos7修改默认运行级别的变化
在学习centos7,视频教学中使用的的centos6,查看权限文件命令为 cat /etc/inittab/ 但是在centos7中输入以下命令会出现这种情况 这个已经不用了,现在修改权限的命令修改 ...
- iOS根据图片url获取尺寸
可以在UIImage的分类中加入下面的代码,并且引入系统的ImageIO.framework /** 根据图片的url获取尺寸 @param URL url @return CGSize */ + ( ...
- 微信小程序 base64图片在canvas上画图
上代码 wxml <canvas canvas-id="myCanvas" style="width:400px;height:400px;">&l ...
- Java枚举源码分析
1.是一个范型类, 实现了Serializable和Comparable接口 2.只有两个成员变量:name.ordinal 3.枚举类隐含一个values函数,需通过反射调用才可获取枚举实例化对象列 ...
- Android Studio启动速度慢的问题。
Android Studio每次启动都要去fetching sdk,由于Android sdk 官网在大陆连不上,所以每次启动时界面都会停在那里很久. 要提高启动速度,就要避免每次启动Android ...
- 分析org.rpgpoet.Music.wizards.length
例子如下: package bazola; public class Gabriel { static int n = org.rpgpoet.Music.wizards.length; } pack ...
- java HashMap源码分析(JDK8)
这两天在复习JAVA的知识点,想更深层次的了解一下JAVA,所以就看了看JAVA的源码,把自己的分析写在这里,也当做是笔记吧,方便记忆.写的不对的地方也请大家多多指教. JDK1.6中HashMap采 ...
- java的逻辑与和短路与
逻辑与 --& 短路与 -- && 只说一个最大的区别,平时我们用的最多的是 短路与来进行逻辑判断: 短路与(或)会从左往右逐个判断式子,只要能得出结果后面的式子不再判断.逻辑 ...
- 记laravel5.5项目php-fpm迁移到swoole4.2.9
事起说明 最近对上线半年多的laravel项目做了一次少大的改动,由php-fpm改为swoole,这里做个记录. 2019年过年前半个月,上阿里云后台查看前一天的访问请求日志,发现很多接口响应慢.翻 ...
- Template parse errors: The pipe 'translate' could not be found
问题描述: 基于Ionic最新的super模板,创建的项目,在自己改造成懒加载机制后,原本正常的项目出现问题了,提示模板内部使用的翻译管道找不到,如图: 模板内部使用的翻译管道代码,我确定没有问题, ...