Czy tworzysz geometrię z lat / lon w tabeli za pomocą PostGIS?

16

Mam tabelę z ponad 800 000 rekordów, w tym długą i długą kolumną. Źródło danych nie tworzyło geometrii, więc rozglądałem się, jak to zrobić. Wiem, że istnieje ST_MakePoint (x, y, SRID), ale cała dokumentacja i inne wątki pokazują, jak tworzyć pojedyncze punkty. Jak utworzyć typ geometrii za pomocą tych kolumn?

dknuth
źródło
1
masz na myśli tworzenie linii z tych punktów? Ponieważ punkty są geometrią tak jak linie i wielokąty ... Więc jeśli szukasz tworzenia linii z tych punktów, sprawdź ten najnowszy post na blogu od Paula Ramseya: blog.cleverelephant.ca/2015/03/making-lines-from -points.html
DPSSpatial
Nie. Miałem na myśli konwersję ich na typy geometryczne do wykorzystania w zapytaniach przestrzennych. Wygląda na to, że odpowiedź na moje pytanie, więc dziękuję!
dknuth

Odpowiedzi:

14

Jeśli nie dodałeś jeszcze kolumny geometrii (zakładając, że EPSG: 4326 tutaj):

SELECT AddGeometryColumn ('your_table','geom',4326,'POINT',2);

Następnie UPDATEprzekazując nazwy pól xiy:

UPDATE yourtable SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326);

Spowoduje to zaktualizowanie całej tabeli, chyba że podasz WHEREklauzulę

Odniesienie do ST_SetSrid: https://postgis.net/docs/ST_SetSRID.html

tomy
źródło
2
Myślę, że ST_SRID powinien być ST_SetSRID. Wystąpił błąd podczas używania ST_SRID
Vipin Gupta