Ergebnis 1 bis 7 von 7

Thema: Koodinaten zwischen 2 EPGS transformieren

  1. #1
    joergmkam ist offline Neuer Benutzer
    Registriert seit
    19.06.2008
    Beiträge
    4

    Ausrufezeichen Koodinaten zwischen 2 EPGS transformieren

    Hallo,

    hab ein Problem bei der Transformation von normalen Werten von Länge und Breite(EPSG: 4326) in eine andere EPSG(3395).

    Bin eigentlich totaler Post(Gis/Gres)-Neuling, aber nach langem Suchen hab ich so etwas zusammengebastelt:

    select st_transform(makePoint(10,30),3395) from xxx

    allerdings erhalte ich immer nur ein:

    FEHLER: Input geometry has unknown (-1) SRID

    Was mache ich falsch?

    btw:
    select st_transform(makePoint(10,30),4326) from xxx

    geht auch nicht.

    Vielen Dank für jegliche Hilfe im Voraus...

  2. #2
    Gisman ist offline Erfahrener Benutzer
    Registriert seit
    20.01.2006
    Ort
    Pfalz
    Beiträge
    794

    Standard

    Hoi!

    Code:
    select st_transform(geomfromtext('POINT(10 30)',4326), 3395) from xxx
    Sollte funktionieren, eventuell mußt du noch ein paar Anführungszeichen plazieren.
    makepoint macht nur Punkte ohne SRID, deshalb kommt da die -1. st_transform kann aber nur was transformieren, wenn es weiß was es ist und wirft deshalb einen Fehler.

    Gruß Uwe
    Have a lot of fun!

  3. #3
    joergmkam ist offline Neuer Benutzer
    Registriert seit
    19.06.2008
    Beiträge
    4

    Standard

    Besten Dank für die Antwort. Nach langem Suchen war gestern auch auf diese Lösung gekommen und jetzt scheint es zu funktionieren...

  4. #4
    Maik ist offline Benutzer
    Registriert seit
    20.07.2006
    Beiträge
    74

    Standard

    Wenn du schon Daten in der DB hast kannst du auch mit SetSRID(geom, EPSG) arbeiten:

    z.B.:
    SELECT ST_Transform(SetSRID(the_geom, 4326), 3395) FROM xxx

    Oder du legst das SRID mit:
    UPDATE xxx SET the_geom = SetSRID(the_geom, 4326)
    für alle Datensätze fest. Dann kannst du auch wie folgt arbeiten:
    SELECT ST_Transform(the_geom, 3395) FROM xxx

    Ich poste es nur, für den Fall, dass du die Daten schon in einer Tabelle gespeichert hast. Wenn nicht, dann kannst du auch das "FROM xxx" weglassen. Du selektierst in dem Fall ja nicht aus einer Tabelle.

  5. #5
    Wolf ist offline Neuer Benutzer
    Registriert seit
    19.09.2008
    Beiträge
    26

    Standard

    Hi,

    angenommen einer hat die Punkte in die Datenbank schon eingetragen.
    Nun stehlt sich heraus sie sind Verkehrt also X und Y vertauscht.

    Gibt es eine elegante Lösung die Koordinaten um zudrehen!?

    Angenommen 'Srid:... Point( 30 50)' soll dann zu 'Srid:... Point(50 30)' werden.

    Meine nächste Frage ist kann man auch über diese variante die Punkte ändern?

    select geomfromtext('SRID=1;Point( ' + (select x(geom) from xxx where id='1' + ' 5 )') ;

    Danke für eure Hilfe bzw. Meinungen

  6. #6
    Nuadu ist offline Benutzer
    Registriert seit
    09.10.2008
    Ort
    Essen
    Beiträge
    45

    Standard

    Hallo

    Gibt es eine elegante Lösung die Koordinaten um zudrehen!?

    Angenommen 'Srid:... Point( 30 50)' soll dann zu 'Srid:... Point(50 30)' werden.
    Ich sehe auf Anhieb zwei Möglichkeiten:

    1.
    Du schreibst dir eine kleine Funktion in Pl/pgsql
    Mit den beiden Methoden ST_X und ST_Y kann man die beiden Werte aus
    einem Punkt auslesen. Du musst Sie dann nur noch in der richtigen Reihenfolge neu einfügen.

    2.
    Du schreibst dir ein kleines Program (z.B. Java), dass dir das Problem behebt!



    mfg
    Gregor

  7. #7
    Gisman ist offline Erfahrener Benutzer
    Registriert seit
    20.01.2006
    Ort
    Pfalz
    Beiträge
    794

    Standard

    Eigentlich bräuchte man keine Funktion dazu, das sollte auch so gehen:

    Code:
    Update <table> set
      the_geom = geomfromtext(st_geometrytype(the_geom):st_y(the_geom) st_x(the_geom), st_srid(st_geom))
    where Bedingung_die_richtig_von_falsch_unterscheidet
    Die richtige Syntax darfst du selbst raussuchen, ich hab Urlaub

    Grüssle Uwe
    Have a lot of fun!

Ähnliche Themen

  1. Zahlen EIngaben nur zwischen 1 und 5
    Von Hanno im Forum Trigger und Funktionen
    Antworten: 2
    Letzter Beitrag: 03.04.2011, 13:44
  2. problem bei der verbindung zwischen php und postgre
    Von veronica im Forum Programmierung
    Antworten: 7
    Letzter Beitrag: 01.02.2009, 19:31
  3. Frage Daten zwischen 2 Datumsangaben
    Von proark im Forum SQL
    Antworten: 14
    Letzter Beitrag: 29.09.2008, 15:11
  4. Vergleich zwischen zwei Tabellen
    Von Sauerkraut im Forum SQL
    Antworten: 6
    Letzter Beitrag: 05.06.2008, 10:49
  5. Tablle zwischen Datenbanken kopieren
    Von Sauerkraut im Forum Allgemeines
    Antworten: 4
    Letzter Beitrag: 10.04.2008, 19:39

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum