Distanzen berechnen

Servus,

folgende Situation: Ich hab ein Shapefile mit zahlreichen Polygonen (FFH-Schutzgebiete) und ich hab ein Shapefile, das als Punkt vorliegt und die Stadt Ludwigsburg ist. Nun will ich die Entfernung der einzelnen Polygone (FFH-Schutzgebiete) zu meinem Punktsymbol (Ludwigsburg) berechnen und die berechnete Entfernung in der Attributtabelle der FFH-Schutzgebiete darstellen lassen. Hilfe!!!!!! Wer kann helfen?

Danke
Bei ArcScripts gibt es einige Erweiterungen, die so was in der Art machen.

Wenn du aber wirklich nur den einen Punkt hast, kannst du auch das Skript unten benutzen. Oberstes Thema im View muss dein Punkt sein, zweites deine FFH-Gebiete, die Tabelle der FFH-Gebiete muss editierbar sein und ein Feld namens [Dist] enthalten. Vorsicht, es wird keinerlei Fehlercheck gemacht.


' Distances for many Shapes to one Shapes

' 1'st Theme in the View: the "One-Shape" Theme
' 2'nd Theme in the View: the "Many-Shapes" Theme

' Expects the "Many-Table" editable

' Expects Field [Dist] in the "Many-Table"
' to set the Distances


theView = av.GetActiveDoc
theThms = theView.GetThemes

theOFTab = theThms.Get(0).GetFTab
theMFTab = theThms.Get(1).GetFTab
theOShpFld = theOFTab.FindField("Shape")
theOShp = theOFTab.ReturnValue(theOShpFld,0) ' First Obj

theMShpFld = theMFTab.FindField("Shape")
theMDistFld = theMFTab.FindField("Dist")
for each rec in theMFTab
theMShp = theMFTab.ReturnValue(theMShpFld,rec)
theDist = theOShp.Distance(theMShp) 'in MapUnits
theMFTab.SetValue(theMDistFld,rec,theDist)
end
Hmmm.. schade, in meinem Feld [Dist] erscheint überall ne "0". Hab alles wie beschrieben gemacht, Map Units sind auch entsprechend eingestellt.

Hat jemand ne Idee woran das liegen könnte?
Ohne Fehlermeldung? Der Feldname muss ohne die eckigen Klammern vergeben sein - ist klar, oder?
Nee, is nich klar *verschämt zu Boden guck* ;-)

Aber es steht immer noch die "0" :-(
Irgend ne Fehlermeldung?
Nein nix, einfach ne "0".
Hmm *grübel-grübel* wie hast du das Feld denn definiert? Sollte zumindest vier Kommastellen haben, also:

Name: Dist
Typ: Zahl
Breite: 16
Dezimalstellen: 4
Schade, jetzt hab ich "0.0000" da stehen. Muss ich denn im View, ausser der Reihenfolge irgendwas beachten?
Na das ist ja schon mal viel genauer ;o)

Nee, eignetlich musst du sonst nichts beachten. Vieelicht hast du die Anzeige einfach noch nicht aktualisiert (einmal Tabelle aktivieren)? Kannst auch mal in einer neuen Zeile folgendes ganz unten an das Skript anfügen:

theMFTab.Refresh
Bringt auch nichts, schade. Du machst dir so viel Mühe, und es bringt nichts, danke auf jeden Fall.

Was mich ein wenig irritiert: Ich bekomme die 0.0000 erst,wenn ich vorher einmal im View bei den FFH-Gebieten auf "Start Editting" gegangen bin und dann erst in die Attributtabelle. Ansonsten bekomm ich nichtmal die 0.0000 sondern nur ein leeres Feld. Hilft das weiter?
Hm, ist mir n Rätsel, hat bei mir bislang immer einwandfrei funktioniert. Lass mal als Test die Version unten durchlaufen. Was steht dann in der MessageBox?

theView = av.GetActiveDoc
theThms = theView.GetThemes

theOFTab = theThms.Get(0).GetFTab
theMFTab = theThms.Get(1).GetFTab
theOShpFld = theOFTab.FindField("Shape")
theOShp = theOFTab.ReturnValue(theOShpFld,0) ' First Obj

theMShpFld = theMFTab.FindField("Shape")
theMDistFld = theMFTab.FindField("Dist")
theRep = ""
for each rec in theMFTab
theMShp = theMFTab.ReturnValue(theMShpFld,rec)
theDist = theOShp.Distance(theMShp) 'in MapUnits
theRep = theRep+theDist.AsString+nl
end

MsgBox.Report(theRep,"")
Nichts bzw. welche Messagebox?

Jetzt mal generell: Ich erstelle die Scripts doch im Fenster, wo ich View, Tabelle, Layout, usw. auswählen kann in "Scripts", gehe dann auf "new" und gebe den Text ein. Muss ich dann noch was machen? Nein, oder?
Doch, kompilieren (Häkchen-Button). Dann das Viewfenster und das Skriptfenster so nebeneinander stellen, dass du beide Fenster sehen kannst. Dann das Viewfenster anklicken. Jetzt direkt das Skriptfenster anklicken und auf Ausführen klicken (Läufer-Button).

Falls du das bisher alles nicht gemacht hast, vergiss das 2. Skript. Sorry, ich wusste nicht, dass du nicht weißt, wie man ein Skript ausführt...
Jihaaa, supi, danke dir.

Eine Frage noch, na ja eigentlich zwei zum Verständnis:

- Das sind jetzt Meterangaben, wenn ich die im View als Einheit angegeben habe, oder?

- Bezieht sich die Distanz auf den Mittelpunkt der Polygone?

Nochmal Danke, ich werde dich weiter empfehlen ;-)
1. Ja, Karteneinheiten
2. Nein, Kante

Danke gleichfalls, war schon ganz lustig ;o)
Ja witzig wars :-D

Und zuletzt ja auch noch erfolgreich!!!