Engine中查找线要素类中距离指定点最近的线,什么方法效率高?

一个线要素类,一个点要素类,想要查找出线要素类中距离指定点最近的线,有什么高效的方法?
已邀请:

朱新颖

赞同来自:

【解决办法】:
比较快的方式是对线要素类建立空间索引IFeatureIndex(数据量大,建立索引可能会慢一些,较适用于多次查询的情况),然后用IIndexQuery2.NearestFeature(IGeometry pShape, ref int pClosestFeatureFID, ref doublepDistance) 方法输入点,并且可以返回最近的线的OBJECTID和距离。 

建立索引以及查询的代码可以参考:


IFeatureIndex2 pFeatureIndex = new FeatureIndexClass(); 
pFeatureIndex.FeatureClass = FC;//这里应该是要查询的线要素类 
ITrackCancel trackCancel = new TrackCancelClass(); 
pFeatureIndex.Index(trackCancel, (FC as IGeoDataset).Extent); 
IIndexQuery2 pIndexQuery2 = (IIndexQuery2)pFeatureIndex; 
pIndexQuery2.NearestFeature();//输入点 进行遍历
 

要回复问题请先登录注册