Raster laden über den Pfad in einer Attributtabelle

Hallo Community,

ich bin neu in der Scripting-Scene und habe ein nettes VBA-Macro gefunden, das aber leider noch nicht ganz meinen Vorstellungen entspricht.

Private Sub LoadImageForSelectedFeat()

Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pFeatureLayer As IFeatureLayer
Dim pFeatureSelection As IFeatureSelection
Dim pFeatureCursor As IFeatureCursor
Dim pSelectedFeature As IFeature
Dim pSelectionSet As ISelectionSet

Set pMxDoc = ThisDocument
Set pMap = pMxDoc.FocusMap
Set pFeatureLayer = pMap.Layer(0) ' Layer index of the shape file
Set pFeatureSelection = pFeatureLayer
Set pSelectionSet = pFeatureSelection.SelectionSet

pSelectionSet.Search Nothing, False, pFeatureCursor
Set pSelectedFeature = pFeatureCursor.NextFeature

'I assume that you have single feature selected
If Not pSelectedFeature Is Nothing Then
Dim strFullPath As String
strFullPath = pSelectedFeature.Value(pSelectedFeature.Fields.Fin dField("LOCATION")) ' You can specify the field name from where you accessing the path

Dim strPath As String
Dim strFilename As String
Dim strArray() As String
Dim intI As Integer

strArray = Split(strFullPath, "\")
strFilename = strArray(UBound(strArray))
strPath = Mid(strFullPath, 1, Len(strFullPath) - Len(strFilename))

Dim pWorkspaceFactory As IWorkspaceFactory
Set pWorkspaceFactory = New RasterWorkspaceFactory

Dim pRasterWorkspace As IRasterWorkspace
Set pRasterWorkspace = pWorkspaceFactory.OpenFromFile(strPath, 0)

Dim pRasterDataset As IRasterDataset
Set pRasterDataset = pRasterWorkspace.OpenRasterDataset(strFilename)

Dim pRasterLayer As IRasterLayer
Set pRasterLayer = New RasterLayer
pRasterLayer.CreateFromDataset pRasterDataset

pMap.AddLayer pRasterLayer

pMxDoc.UpdateContents
pMxDoc.ActiveView.Refresh
End If

End Sub


Es ermöglicht das Laden einer Rasterdatei. Diese muss durch einen Pfad in der Attributtabelle eines Layers definiert und selektiert sein. Dabei treten jedoch zwei Probleme auf:

- Das Laden einer Rasterdatei funktioniert, ich möchte jedoch mehrere Rasterdaten auf einemal laden können.

- Der Layer mit der Attributtabelle (in der die Pfade stehen) muss immer an erster Stelle stehen. Wenn jedoch eine neue Rasterdatei geladen wird, wird diese an die erste Stelle gelegt. Dann muss man manuell den Layer mit der Attributtabelle wieder an die erste Stellen packen. Dies müsste vereinfacht werden.

Vielen Dank schon einmal im Voraus an alle!!

Mit freundlichen Grüßen
Jann