现在在网上找到了一段代码,利用它可以求曲线上任意点到端点的距离,应该可以满足求曲线上任意两点沿曲线的距离的要求,大家可以看一下,希望能提出宝贵的意见
具体做法如下:
1、在ARCMAP中加载点图层和对应的线图层,注意只能加载这两个图层,且点图层必须在线图层之上,为了便于大家更清楚地看清起点,我把符号改为指向末端的方向箭头
2、在点图层属性表中新加到端点的字段如aa,类型为double,如下
3、选中列aa ,在field caculator中输入以下代码
' ----- You'll need to change this value ----
Const TOLERANCE As Double = 500
' - 这个容差的设置一定要注意,要多次尝试.若属性表中出现-1,就加大这个值
Static pMxDoc As IMxDocument
Static pFtrLyr As IFeatureLayer
Static pFtrCls As IFeatureClass
Static pSpFltr As ISpatialFilter
Static pOutPt As IPoint
Dim pInPt As IPoint
Dim pTopOp As ITopologicalOperator
Dim pFtrCsr As IFeatureCursor
Dim pFtr As IFeature
Dim pPline As IPolyline
Dim dDis As Double
Dim dDummy As Doub
具体做法如下:
1、在ARCMAP中加载点图层和对应的线图层,注意只能加载这两个图层,且点图层必须在线图层之上,为了便于大家更清楚地看清起点,我把符号改为指向末端的方向箭头
2、在点图层属性表中新加到端点的字段如aa,类型为double,如下
3、选中列aa ,在field caculator中输入以下代码
' ----- You'll need to change this value ----
Const TOLERANCE As Double = 500
' - 这个容差的设置一定要注意,要多次尝试.若属性表中出现-1,就加大这个值
Static pMxDoc As IMxDocument
Static pFtrLyr As IFeatureLayer
Static pFtrCls As IFeatureClass
Static pSpFltr As ISpatialFilter
Static pOutPt As IPoint
Dim pInPt As IPoint
Dim pTopOp As ITopologicalOperator
Dim pFtrCsr As IFeatureCursor
Dim pFtr As IFeature
Dim pPline As IPolyline
Dim dDis As Double
Dim dDummy As Doub