Umwandlung von lat-long in PostGIS-Geometrie ohne Abfrage der Datenbank

8

Ich habe eine Tabelle in postgresql mit einer PostGIS-Geometrie (Punkt, 4326) -Spalte (Ort, mit SRID 4326) und ich habe eine Python-Anwendung, die mit SQL Alchemy die Tabelle (den Rest der Spalten) ohne Probleme aktualisiert.

Jetzt muss ich die Standortspalte aktualisieren und weiß, dass ich die richtige Textdarstellung eines bestimmten Standorts verwenden kann, um die Spalte mit SQL Alchemy zu aktualisieren, ohne GEOAlchemy verwenden zu müssen, z. B. kann ich die Spalte mit dem Wert aktualisieren : '0101000020E6100000AEAC7EB61F835DC0241CC418A2F74040'

entspricht lat: 33,9346343 long: -118.0488106

Die Frage ist: Gibt es eine Möglichkeit, in Python diese '0101000020E6100000AEAC7EB61F835DC0241CC418A2F74040' mit dieser (33.9346343, -118.0488106) als Eingabe zu berechnen, ohne die Datenbank abzufragen? oder eine Möglichkeit, die Spalte mit einer richtigen Texteingabe zu aktualisieren?

Ich weiß, dass ich SQLAlchemy verwenden kann, um diese Abfrage auszuführen:

%Vor%

und erhalten Sie den Wert, um die Spalte zu aktualisieren, aber das möchte ich vermeiden.

Vielen Dank im Voraus!

    
Sergio Ayestarán 07.03.2013, 16:15
quelle

1 Antwort

11

Die Lösung für dieses Problem ist eher einfacher als es scheint. Um das Feld mit Text und der Eingabe lat-long zu aktualisieren, musste ich nur die SRID im Text assign:

definieren

location = 'SRID = 4326; PUNKT (-118.0488106 33.9346343)'

Dies aktualisiert die Geometrie (Punkt, 4326) Spalte richtig und wenn Sie eine Auswahl in der Tabelle vornehmen, ist der Wert der Spalte der erwartete:

"0101000020E6100000AEAC7EB61F835DC0241CC418A2F74040"

Danke Leute!

    
Sergio Ayestarán 07.03.2013, 18:40
quelle

Tags und Links