你好,
我有两个特色课程。我让它们都相交。我必须返回不与另一个相交的特征。
让我们举个例子。
我有两个特色班:乡村和大学。我让它们都相交。
我的问题是“选择人口大于500但没有大学的村庄。”
所以人口更多的村庄运行得很好然后它在这些村庄里搜索大学。
我所需要的就是选择没有大学的村庄。
任何帮助都是值得感激的。提前感谢
问候
解决了!进入解决方案。
你好,Akshay,
当你在ISpatialCacheManager中调用FillCache方法时,你必须指定缓存的范围作为参数。
你可以通过任何你想通过的程度。
它可以是可见程度,可以通过IActiveView。范围在ArcObjects帮助。net开发人员。
或者可能是地图上感兴趣的区域(IMap。ArcObjects的兴趣区域(帮助。net开发者)
或您创建的任何IEnvelope。
希望对大家有所帮助。祝你好运。
这可以通过在ArcMap中使用Select By Attribute和Select By Location两步来完成。首先,选择所有人口超过500人的村庄。然后,“从当前选定的特征中删除”有学院的村庄。
如果编写脚本,类似于:
arcpy。SelectLayerByAttribute_management("villages","NEW_SELECTION", "population > 500")SelectLayerByLocation_management(“villages”,“INTERSECT”,“colleges”,“”,“REMOVE_FROM_SELECTION”)
你可以使用相同的工具在ArcObjects中使用Geoprocessor管理的程序集-例如:
使用ESRI.ArcGIS.Geoprocessor;使用ESRI.ArcGIS.DataManagementTools;…gp = new Geoprocessor();var tool = new SelectLayerByAttribute();工具。In_layer_or_view = "villages";工具。selection_type = "NEW_SELECTION";工具。where_clause = "population > 500"; gp.Execute(tool, null);
如果你通过ISpatialFilter接口使用SpatialFilter对象,你需要定义你自己的SpatialRelDescription,因为SpatialRel枚举没有你需要的关系。
设置SpatialRel属性为,可以查询不与查询几何相交的特征esriSpatialRelRelation
和SpatialRelDescription属性为“FF*FF****”
更多资料请浏览:ArcObjects 10 .NET SDK帮助
你可以尝试使用空间缓存。这将从geodatabase中获取数据并将其放入内存中,从而具有更快的访问速度,因为查询不会往返于文件系统。