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是获取程序启动路径,表面上看二者没什么区别,但实际 ...
随机推荐
- express+nodemon 修改后浏览器自动刷新
添加nodemon模块 cnpm install --save nodemon 根目录添加文件 nodemon.json { "restartable": "rs&quo ...
- WebDriverAPI(3)
获取页面的Title属性 被测网址http:http://www.baidu.com Java语言版本的API实例代码 String url = "http://www.baidu.com& ...
- 用COS实现文件上传
cos是O'Rrilly公司开发的一款用于HTTP上传文件的OpenSource组件 需要cos.jar,下载地址:http://www.servlets.com/cos/ cos上传文件很简单,比f ...
- 删除文件以后,如何通过git撤销删除的文件,不提交到远端代码库
检查状态,看看发生了什么:$ git statusOn branch masterChanged but not updated:(use "git add/rm <file>. ...
- 【树】Construct Binary Tree from Preorder and Inorder Traversal
题目: Given preorder and inorder traversal of a tree, construct the binary tree. 思路: 线序序列的第一个元素就是树根,然后 ...
- freepbx的SIP通话客户端X-lite Yate eyeBeam Linphone
在上一篇文章安装freepbx后创建sip分机里我们已经创建好了SIP分机,接下来我们使用几大客户端进行登陆.我们接下来会使用到的软件有X-lite,Yate client,eyeBeam, Linp ...
- redis集群与分片(2)-Redis Cluster集群的搭建与实践
Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后版本支持redis-cluster集群,Re ...
- Mac配置多个版本JDK
2016年mac上已经安装有jdk1.6的版本 目录在/Library/Java/JavaVirtualMachines/1.6.0.jdk 有时候mac版本跟新会自动删除jdk1.6 所以要去ma ...
- 开例外!微信小程序登录绕过CAS单点登录(SSO)认证检查
1 为了让微信API能够绕过CAS认证检查,将微信api入口部分设计为独立的模块.放入controller目录下,命名为wechat.java文件为WechatController.java 文件大体 ...
- 【WePY小程序框架实战一】-创建项目
最近两个小程序项目使用了微信自己出的框架wepy开发,开发完的感受就是比原生小程序顺溜很多.我就从安装到一些重点和整个项目把wepy使用整理下 全局安装WePY命令行工具 npm install we ...