vba > featureclass an anderer position zuladen

hallo,

ich möchte ins vba-programmieren einsteigen, habe ein grundverständnis von programmieren an sich, aber noch keinerlei kenntnis oder erfahrung mit vba.
ich würde gerne anhand einer konkreten aufgabe anfangen und bin dabei, mir ein paar basics aus in manual, referenz und internet gefundenen codes beizubringen...

grundproblem:
ich will per button-click eine featureclass aus einer database (enthält einige features in der nähe der koordinaten 0,0) an eine bestimmte position dazuladen (so, dass diese features dann z.b. bei 1000, 1000 sitzen).

kann ich dazu folgenden code modifizieren, wenn ja wie? oder bin ich da ganz weit weg?!?!

-----
Private Sub UIButtonControl1_Click()

Dim pWorkspaceFactory As IWorkspaceFactory
Set pWorkspaceFactory = New ShapefileWorkspaceFactory

Dim pWorkSpace As IFeatureWorkspace
'Change C:\Source to the source location of the shapefile you wish to add
Set pWorkSpace = pWorkspaceFactory.OpenFromFile("C:\Source", 0)

Dim pClass As IFeatureClass
'Change xxxx to the name of the shapefile you wish to add
Set pClass = pWorkSpace.OpenFeatureClass("xxxx")

Dim pLayer As IFeatureLayer
Set pLayer = New FeatureLayer
Set pLayer.FeatureClass = pClass
pLayer.Name = pClass.AliasName

Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument

pMxDoc.AddLayer pLayer
pMxDoc.ActiveView.PartialRefresh esriViewGeography, pLayer, Nothing

End Sub
-----

kann mir jemand helfen?
welche literatur bietet sich ansonsten zum einstieg an?

herzlichen dank!
martin
Hallo Martin,

du kannst z. B. die Methode MoveLayer verwenden:

' Quelle: Hilfe zu MoveLayer
Public Sub MoveLayer()
Dim pMxDocument As IMxDocument
Dim pMap As IMap
Dim pLayer As ILayer
Set pMxDocument = Application.Document
Set pMap = pMxDocument.FocusMap
Set pLayer = pMxDocument.SelectedLayer
pMap.MoveLayer pLayer, pMap.LayerCount - 1
End Sub
Gruß

Uwe
hallo uwe,

so, bin jetzt auch registriert...
vielen dank für die antwort.

wenn ich es richtig verstanden habe, bewegt MoveLayer einen Layer im TOC hoch und runter, richtig?

was ich aber bräuchte, ist ein tipp, wie ich die features einer featureclass an einer anderen stelle im koordinatensystem, also z.b. x+1000, y+1000, zuladen kann.

vielleicht geht das ja irgendwie?

gruß
martin
Hallo Martin,

ich hätte mal zuende lesen sollen.

Mir ist nicht bekannt, dass man eine FeatureClass in ArcMap um einen bestimmten Vektor verschieben kann. Das geht höchstens bei Raster- und CAD-Layern. Ergo nehme ich an, dass du das auch nicht programmatisch machen kannst.

Wenn du alle Features programmatisch verschieben möchtest, wobei eine neue FeatureClass erstellt wird, dann schau mal in das Sample Move features programatically.

Gruß


Uwe