PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como converter texto de ponto em geometria


Você também pode usar ST_MakePoint, que provavelmente é mais limpo, pois não precisa concatenar valores de latitude e longitude como texto. Use-o em conjunto com ST_SetSrid para definir o sistema de referência de coordenadas para 4326, por exemplo,
Select ST_SetSrid(ST_MakePoint(lon, lat),4326) from sometable;

retornará um tipo de geometria. Observe que a ordem é lon/lat (x/y), uma causa de muita confusão, devido às pessoas dizerem lat/lon na fala cotidiana.

ST_GeomFromText geralmente é mais útil quando você tem uma geometria no formato de texto bem conhecido (WKT), por exemplo,
Select ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326);

Se seus dados estiverem realmente no formato ((-79.4609576808001,43.9726680183837)) e você não quiser dividi-los como sugeri acima, o formato correto para usar com ST_GeomFromText para um ponto é:
Select ST_GeomFromText('POINT(-79.4609576808001 43.9726680183837)', 4326)

onde o SRID é opcional, mas recomendado.

Consulte http://en.wikipedia.org/wiki/Well_Known_Text Para maiores informações.