ASCII daten für Ortssuche in Postgis bekommen

Hallo Netzgemeinde,

ich hab nen problem und hoffe das hier jemand ist der sich damit auskennt. Ich bin grad dabei eine mapbenderAnwendung zu bauen - das läuft auch alles und sieht einigermassen aus. Nun möchte ich noch eine Ortssuche hinzufügen hierzu habe ich vom Senat berlin ASCII daten erhalten. zwei DAtensätze (einen mit Straßen und einen mit Hausnummern) wie bekomme ich die daten in Postgis und wie verküpfe ich die TAbellen dann? hab schon gegoogelt aber nichts gefunden.

Habt schönen Dank.

Das kommt halt ganz drauf an, ob Du eine Beziehung zwischen Deinen vorhandenen Daten und den erhaltenen Daten finden kannst. Da keiner hier weiß, was Du genau hast, wird auch keiner weiter helfen können.

Andreas

Hallo,

danke für die schnelle Antwort. die Daten liegen als txt-Datei mit fester Satzlänge vor.
[LEFT]strassen: StrassenNummer (n5)
[/LEFT]
[LEFT] StrassenName(a60)[/LEFT]
[LEFT] Mittelpunkt x(n6)[/LEFT]
[LEFT] Mittelpunkt y(n6)[/LEFT]
[LEFT]adressen: StrassenNummer (n5)
[/LEFT]
[LEFT] HausNummer(n3)[/LEFT]
[LEFT] Hausnummernzusatz(a1)[/LEFT]
[LEFT] x(n6)[/LEFT]
[LEFT] y(n6)

ich hoffe das hilft wieter. Mir ist schon klar das ich die StrassenNummer miteinander verknüpfen muss. Aber ich weiß erstens nicht wie ich die Daten in Postgis bekomme und zweitens wie ich dann eine verküpfung erstelle. die Zahl in der klammer gibt die jeweilige länge an. hierzu ein beispiel.
[/LEFT]
(1. Textdatei) 06080Ackerstraße 240700231494 —>StrassenNummer die ersten5 Zeichen, StrassenName die nächsten60, mittelpunkt x die nächsten 6, mittelpunkt y die nächsten 6 zahlen

(2. Textdatei) 06080001 245503224537 —> StrassenNummer die ersten 5 zeichen, Hausnummer die nächsten 3, Hausnummernzusatz ein Zeichen, die nächsten 6 Zeichen für x Koordinate, darauf folgen 6 zeichen für die y koordinate
n= feste länge, d.h. die Angaben haben immer soviel Zeichen
a= keine feste länge, d.h. die Angaben können kürzer sein (siehe Straßenname) oder nicht vorhanden sein (siehe Hausnummernzusatz)

ich muss mich korigieren es handelt sich nicht um ASCII sondern um ANSI

Ich würde die Tabellen zuerst einmal in mit COPY in die Datenbank bringen. Zuvor kannst du die Zeilen noch mit den Mitteln deinens Systems in Felder zerlegen, das kannst du aber auch später in der Datenbank mit erledigen. Da du den Aufbau kennst sollte das nicht allzu schwierig sein, eine Möglichkeit wären hier Regular Expressions die du entweder in einem Editor oder der Datenbank auf deine Daten anwendest. Am Ende solltest du zwei Tabellen in der Datenbank haben, in denen deine Daten in Felder zerlegt stehen. Dann kannst du darauf abfragen starten wie z.B.

select t1.strassenname, t2.hausnummer, st_geomfromtext('POINT('||t2.x||' '||t2.y||')',0)
   from strassentabelle t1
     join hausnummertabelle t2 on t1.strassennummer = t2.strassennummer

Dies sollte dir für alle einträge in der Hausnummertabelle die Adresse und die Position als Punktgeometrie erzeugen. Du braucht also keine weiteren Schritte unternehmen um das ‘in PostGIS zu bekommen’ (sofern das installiert ist :wink: ).
Ansonsten: Googeln wird dir bei so grundlegenden Problemen eher wenig helfen, nimm lieber die kostenfrei auf den jeweilgen Homepages erhältlichen Handbücher zu Postgres und Postgis zur Hand und frage hier wenn Probleme auftauchen.

Gruß Uwe