Hallo Forum,
ich muss immer wieder im großen Umfang Längen von ausgewählten Linienfeatures (in einer geodatabase) addieren. Bisher wähle ich dazu immer die entsprechenden features aus und lasse mir über die Statistik die Gesamtlänge angeben.
Schön wäre es, wenn man sich die Länge der ausgewählten features irgendwie direkt anzeigen lassen könnte. Hat da jemand eine Idee oder schon ein kleines VBA-script parat?
Beste Grüße,
Achim
ich muss immer wieder im großen Umfang Längen von ausgewählten Linienfeatures (in einer geodatabase) addieren. Bisher wähle ich dazu immer die entsprechenden features aus und lasse mir über die Statistik die Gesamtlänge angeben.
Schön wäre es, wenn man sich die Länge der ausgewählten features irgendwie direkt anzeigen lassen könnte. Hat da jemand eine Idee oder schon ein kleines VBA-script parat?
Beste Grüße,
Achim
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Mi., 25.11.2009 - 15:28
PermalinkPrivate Sub UIButtonControl1_Click()
Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument
Dim pEnumFeat As IEnumFeature
Set pEnumFeat = pMxDoc.FocusMap.FeatureSelection
Dim pFeat As IFeature, pCurve As ICurve, dLen As Double
dLen = 0#
Set pFeat = pEnumFeat.Next
Do Until pFeat Is Nothing
If TypeOf pFeat.Shape Is ICurve Then
Set pCurve = pFeat.ShapeCopy
pCurve.Project pMxDoc.FocusMap.SpatialReference
dLen = dLen + pCurve.Length
End If
Set pFeat = pEnumFeat.Next
Loop
Dim sUnits As String
If TypeOf pMxDoc.FocusMap.SpatialReference Is IProjectedCoordinateSystem Then
Dim pPCS As IProjectedCoordinateSystem
Set pPCS = pMxDoc.FocusMap.SpatialReference
'dLen = dLen * pPCS.CoordinateUnit.MetersPerUnit / 1000#
'sUnits = " km"
sUnits = " m"
Else
sUnits = " unknown units"
End If
MsgBox "Total Length: " & Format(dLen, "0.0000") & sUnits
End Sub
Quelle
Gespeichert von achimovic am Mi., 25.11.2009 - 16:23
PermalinkDas erleichtert die Sache ungemein.
Vielen Dank