Linien verschneiden

Folgendes Problem habe ich: Ich habe ein Fluss als Polylinie. Entlang der Linie schneiden Querschnitte als Linienlayer den Fluss. Gibt es eine Moeglichkeit die Station des jeweiligen Querschnitts auszugeben. Die Sation ist der Ort wo sich Fluss und Linie miteinander Verschneiden, bezogen auf die Distanz, die von dem "Nullpunkt" des Flusses aus geht.

Hat jemand eine Idee?
Hallo Novosibirsk,

ich habe dieses Problem schon mal lösen müssen. Allerdings habe ich dafür nur einen Lösungsweg für ArcView3.x parat.
Damals standen mir die Querschnitte zur Verfügung und ich wusste auch genau in welchem Distanzinterval sie auftreten. Ich habe dafür ein Tool genutzt, welches äquidistante Punkte auf einer Linie setzt. Man kann angeben, welchen Abstand die Punkte von einander haben sollen und ab welchem Punkt der Linie dies beginnen soll. In meinem Fall war es die Mündung (0+000 km). Hier der Link, falls es Dir etwas helfen sollte:
http://arcscripts.esri.com/details.asp?dbid=11407

Ansonsten kann ich mir auch vorstellen, dass dieses Script hilft. Es ist für ArcGIS. Ich habe es jedoch noch nicht selbst getestet:

http://arcscripts.esri.com/details.asp?dbid=13208

Gruß,

GISbert
Hallo GISbert,

vielen Dank fuer Deine beiden Vorschlaege. Leider treffen sie annaehernd mein Problem, da mir die Distanzintervalle unbekannt sind.

Naja, ich kann es ja auch manuell machen, da ich in diesem Fall gluecklicherweise nicht soviele Querschnitte habe.
Falls ich mal wieder per Avenue und AV3.x ums Eck gehumpelt kommen darf:

Wenn du die Querschnitte in Punkte umwandelst (z.B. mit den Memo Tools '(Zentral)Koordinaten für Linien') kannst du anschließend die Avenue Request 'PointPosition' verwenden, die dir die prozentuale Position eines Punktes entlang einer Polylinie auswirft. Die kann man dann leicht in Absolutwerte umrechnen. Das Ganze ginge z.B. so:

theView = av.GetActiveDoc

' *** Namen anpassen:
thePThm = theView.FindTheme("Linie.shp") 'Nur der Fluss
theLThm = theView.FindTheme("Punkt.shp") 'Stationen

thePVTab = thePThm.GetFTab
theLVTab = theLThm.GetFTab

thePShpFld = thePVTab.FindField("Shape")
theLShpFld = theLVTab.FindField("Shape")

' *** Nimmt die erste Linie im Linienthema = Fluss:
thePL = theLVTab.ReturnValue(theLShpFld,0)
thePLLength = thePL.ReturnLength

theR = ""+nl
i = 0
for each rec in thePVTab
thePnt = thePVTab.ReturnValue(thePShpFld,rec)
thePct = thePL.PointPosition(thePnt)
thePctS = thePct.AsString
theAbs = thePLLength/100*thePCT
theAbsS = theAbs.AsString
theR = theR+"P"++i.AsString+": "++thePctS+"% -->"++theAbsS+nl
i = i + 1
end
MsgBox.Report(theR,"")
Danke, Maxilla. Ich sehe schon, dass ich verstaerkt mit AV 3.x arbeiten sollte, da es irgendwie doch mehr Moeglichkeiten hat. Hier im Office gibt es gluecklicherweise beides. Ich kenne es aber leider nicht so jut. Das klappt schon. Thx!
Nun ja, das kann man mit VBA sicherlich auch programmieren, aber das kann ich halt längst noch nicht so fließend wie Avenue.
Avenue ist super, und ich werde sicherlich noch oft drauf zurückgreifen, wenn ich mal eben auf die Schnelle irgendeine Funktion brauche. Aber es hat halt keine Zukunft und ich würde an deiner Stelle jetzt nicht unbedingt damit anfangen, mich in Avenue einzufuchsen. Bestimmt ist es sinnvoller, wenn du die Zeit in Phyton oder VBA/ArcObjects investierst.
Da wirst Du sicherlich recht haben. Kennst Du denn gute Litaratur oder Tutorials fuer Python, welches sich auf GIS-Applikationen bezieht?
Hallo liebes Forum,

gibt es für die von Novosibirsk beschriebene Aufgabe, zwei Linienthemen zu verschneiden inzwischen in ArcGIS (inzwischen 10) eine einfache Lösung. - Mir erscheind ja die Aufgabe als recht einfach, dennoch habe ich nach einer Weile Kramen in der Toolbox nichts gefunden.

Danke für Hinweise!