Hallo,
ich möchte aus einer Spatial Database (SDE auf Oracle) eine FeatureClass und/oder ein Featuredataset zu meiner vorhandenen Karte (meinem Projekt)hinzufügen. Nach langem hin und her komme ich jetzt anscheinden an die FeatureClass ran, aber wie kriege ich sie ins Projekt?
es wäre schön, wenn mir jemand einen Tipp geben könnte.
hier ist noch mein Code, den ich bisher geschrieben habe:
Dim pAIFact As IWorkspaceFactory
Dim pFeatureWsp As IFeatureWorkspace
Dim pFeatureClass As IFeatureClass
Dim pFeatureLayer As IFeatureLayer
Dim pLayer As ILayer
Dim pApp As IApplication
Dim pDoc As esriCore.IMxDocument
Dim pMap As esriCore.IMap
Dim pActiveView As esriCore.IActiveView
Dim pPropset As IPropertySet
Dim pFact As IWorkspaceFactory
Dim pWorkspace As IWorkspace
Public Sub sde_feature_open()
Set pDoc = ThisDocument
Set pMap = pDoc.FocusMap
Set pPropset = New PropertySet
'diese angaben stimmen, eine Verbindung wird hergestellt
With pPropset
.SetProperty "SERVER", "meinServername"
.SetProperty "INSTANCE", "meinService"
.SetProperty "DATABASE", ""
.SetProperty "USER", "user_ich"
.SetProperty "PASSWORD", "meinPasswort"
.SetProperty "VERSION", "SDE.DEFAULT"
End With
Set pFact = New esriCore.SdeWorkspaceFactory
Set pFeatureWsp = pFact.Open(pPropset, 0)
Set pFeatureClass = pFeatureWsp.OpenFeatureClass("user_ich.test")
MsgBox pFeatureClass.FeatureClassID 'nur zum test ob er wirklich was findet
'ab hier komme ich nicht weiter
'wie kriege ich die FeatureClass in die Karte?
'als FeatureLayer?
Set pFeatureLayer = New FeatureLayer
'an die aktuelle Map
Set pLayer = pFeatureLayer
pMap.AddLayer pLayer
'inhaltsverzeichis anpassen
pDoc.UpdateContents
MsgBox "Ende"
End Sub
Viele Grüße und Danke schonmal im Vorraus,
Imke Dörge
ich möchte aus einer Spatial Database (SDE auf Oracle) eine FeatureClass und/oder ein Featuredataset zu meiner vorhandenen Karte (meinem Projekt)hinzufügen. Nach langem hin und her komme ich jetzt anscheinden an die FeatureClass ran, aber wie kriege ich sie ins Projekt?
es wäre schön, wenn mir jemand einen Tipp geben könnte.
hier ist noch mein Code, den ich bisher geschrieben habe:
Dim pAIFact As IWorkspaceFactory
Dim pFeatureWsp As IFeatureWorkspace
Dim pFeatureClass As IFeatureClass
Dim pFeatureLayer As IFeatureLayer
Dim pLayer As ILayer
Dim pApp As IApplication
Dim pDoc As esriCore.IMxDocument
Dim pMap As esriCore.IMap
Dim pActiveView As esriCore.IActiveView
Dim pPropset As IPropertySet
Dim pFact As IWorkspaceFactory
Dim pWorkspace As IWorkspace
Public Sub sde_feature_open()
Set pDoc = ThisDocument
Set pMap = pDoc.FocusMap
Set pPropset = New PropertySet
'diese angaben stimmen, eine Verbindung wird hergestellt
With pPropset
.SetProperty "SERVER", "meinServername"
.SetProperty "INSTANCE", "meinService"
.SetProperty "DATABASE", ""
.SetProperty "USER", "user_ich"
.SetProperty "PASSWORD", "meinPasswort"
.SetProperty "VERSION", "SDE.DEFAULT"
End With
Set pFact = New esriCore.SdeWorkspaceFactory
Set pFeatureWsp = pFact.Open(pPropset, 0)
Set pFeatureClass = pFeatureWsp.OpenFeatureClass("user_ich.test")
MsgBox pFeatureClass.FeatureClassID 'nur zum test ob er wirklich was findet
'ab hier komme ich nicht weiter
'wie kriege ich die FeatureClass in die Karte?
'als FeatureLayer?
Set pFeatureLayer = New FeatureLayer
'an die aktuelle Map
Set pLayer = pFeatureLayer
pMap.AddLayer pLayer
'inhaltsverzeichis anpassen
pDoc.UpdateContents
MsgBox "Ende"
End Sub
Viele Grüße und Danke schonmal im Vorraus,
Imke Dörge
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Gast am Mi., 26.05.2004 - 17:21
PermalinkSet pFeatureLayer = New FeatureLayer
muß du dem Layer die FeatureClass auch zuweisen:
Set pFeatureLayer.FeatureClass = pFeatureClass
Gespeichert von Imke am Mi., 26.05.2004 - 17:23
Permalinkmanchmal sieht man den Wald vor lauter Bäumen nicht. jetzt klappt alles.
schönen Abend, Imke Dörge