Georefernzierung

Hallo zusammen,

ich möchte ein Programm schreiben, dass ein rasterbild georeferenziert. Dafür habe ich geographische Koordinaten für die vier Ecken und die Spalten und zeilenanzahl des bildes.
meine frage ist jetzt, gibt es irgendeine Möglichkeit, das im ArcGIS 8.3 vorhandene Tool zum Teil zu nutzen und wenn ja, wie komme ich da ran? Zum beispiel würde das direkte Eintragen meiner Daten in die "Link Table" die manuelle Arbeit dehr erleichtern.

hat irgendjemand dazu eine Idee und/oder kann mir einen Tipp geben, wie ich da am besten anfange?

Vielen Dank schon mal im Voraus.
Gruß Imke
hallo nochmal,

hab inzwischen noch ein bisschen mehr ausprobiert und glaube, dass die "TwoPointsAdjust" methode mir helfen könnte. allerdings ist es mir nicht gelungen, sie anzuwenden. Kann mir jemand auf die Sprünge helfen?

Bitte!

Gruß Imke Dörge

Hier noch mein Code, den ich bisher geschrieben habe.


Public Sub reference()

Dim pApp As IApplication
Dim pdoc As IMxDocument
Dim pMap As IMap
Dim pActiveView As IActiveView

Dim pLayer As ILayer
Dim pWorkspaceFactory As esriCore.IWorkspaceFactory
Dim pRasterWorkspace As esriCore.IRasterWorkspace
Dim pRasterDataset As esriCore.IRasterDataset
Dim pRasterLayer As IRasterLayer

Dim pPoint1_to As IPoint
Dim pPoint1_from As IPoint
Dim pPoint2_to As IPoint
Dim pPoint2_from As IPoint
Dim pPoint3_to As IPoint
Dim pPoint3_from As IPoint
Dim pPoint4_to As IPoint
Dim pPoint4_from As IPoint


Set pdoc = Application.Document
Set pMap = pdoc.FocusMap
Set pActiveView = pMap


'**** Zuweisung der Koordinaten an die Punkte
'LO
Set pPoint1_to = New Point
Set pPoint1_from = New Point
pPoint1_to.X = 450197.18
pPoint1_to.Y = 5445030.93
pPoint1_from.X = 0
pPoint1_from.Y = 0

'LU
Set pPoint2_to = New Point
Set pPoint2_from = New Point
pPoint2_to.X = 450575.3
pPoint2_to.Y = 5437289.29
pPoint2_from.X = 0
pPoint2_from.Y = 986

'RU
Set pPoint3_to = New Point
Set pPoint3_from = New Point
pPoint3_to.X = 458347.36
pPoint3_to.Y = 5437647.69
pPoint3_from.X = 982
pPoint3_from.Y = 986

'RO
Set pPoint4_to = New Point
Set pPoint4_from = New Point
pPoint4_to.X = 457971.26
pPoint4_to.Y = 5445389.51
pPoint4_from.X = 982
pPoint4_from.Y = 0

' *** weist pLayer den obersten Layer aus TOC zu und gibt dessen Namen aus.
Set pLayer = pMap.Layer(0)
Dim pLayerName As String
pLayerName = pLayer.Name
MsgBox pLayerName


Dim pRaster As IRaster

Dim pRWS As IRasterWorkspace
Set pRaster = pRWS.OpenRasterDataset(pLayerName).CreateDefaultRaster

Dim geoRef As IGeoReference


Dim points_from As IPointCollection
points_from.AddPoint pPoint1_from
points_from.AddPoint pPoint2_from
'points_from.AddPoint pPoint3_from
'points_from.AddPoint pPoint4_from

Dim points_to As IPointCollection

points_to.AddPoint pPoint1_to
points_to.AddPoint pPoint2_to
'points_to.AddPoint pPoint3_to
'points_to.AddPoint pPoint4_to

pRaster = geoRef.TwoPointsAdjust(points_from, points_to)
' hier kriege ich einen Fehler:
'"Compile Error, expected funktion or variable"

End Sub
TwoPointsAdjust ist keine Funktion, hat also auch keinen Rückgabewert. Damit kannst du auch nicht schreiben pRaster = geoRef...
Du solltest aber auch geoRef und deine PointCollections instanzieren :-)

In der DeveloperHelp gibt's auch ein Sample, in dem die Methode benutzt wird.
Dann muss ich jetzt mal ganz doof nachfragen, hab ich geoRef und PointCollection mit "dim ... as ..." nicht instanziiert? wenn nein, was ist es dann?
Ich habe in der Developer help nach einem sample gesucht, aber keines gefunden, kannst du mir den genauen namen sagen?

Vielen Dank, Gruß Imke Dörge
Mit Dim...As hast du nur den Datentyp der Variable festgelegt. Was fehlt ist so was wie: Set points_to = New Multipoint. Damit hast du dann das Objekt erzeugt (eben eine neue Instanz).

Geh mal in die Hilfe (Registerkarte "Suchen"), gib "TwoPointsAdjust" ein und klick auf "Themen auflisten", dann wird das Sample "Resample raster datasets to same cell size and align" angezeigt.