从 varchar (x,y) 创建点几何
Creating point geometry from varchar (x,y)
我有很多 table 个地点。这些位置在 varchar 中写为 (x,y)。我需要为所有位置创建一个单独的点。我在 table 中创建了一个点几何列,但不知道如何根据它们所在的格式为位置创建点。
地理数据坐标位于 (x,y) 的单列中
例如 (52.3852758,4.8682022)
我正在使用这个脚本但是出现错误。
更新“tlblocation”设置 geom=ST_GeomFromText(geodata);
如有任何帮助,我们将不胜感激
您可以使用 ST_* 函数。即:
drop table if exists geosample;
CREATE TABLE geosample(gid serial PRIMARY KEY, geog geography(POINT) null, pointAsVarchar varchar(100));
insert into geoSample (pointAsVarchar) values
('(-74.06414465351811,40.70677298472955)'),
('(-122.33383026916862,47.62266259856472)'),
('(2.3501235468097144,48.86267330918897)');
update geoSample set geog = st_pointfromtext('POINT'||replace(pointAsVarchar,',',' ')) where 1=1;
select *, st_astext(geog) from geosample;
我有很多 table 个地点。这些位置在 varchar 中写为 (x,y)。我需要为所有位置创建一个单独的点。我在 table 中创建了一个点几何列,但不知道如何根据它们所在的格式为位置创建点。
地理数据坐标位于 (x,y) 的单列中 例如 (52.3852758,4.8682022)
我正在使用这个脚本但是出现错误。
更新“tlblocation”设置 geom=ST_GeomFromText(geodata);
如有任何帮助,我们将不胜感激
您可以使用 ST_* 函数。即:
drop table if exists geosample;
CREATE TABLE geosample(gid serial PRIMARY KEY, geog geography(POINT) null, pointAsVarchar varchar(100));
insert into geoSample (pointAsVarchar) values
('(-74.06414465351811,40.70677298472955)'),
('(-122.33383026916862,47.62266259856472)'),
('(2.3501235468097144,48.86267330918897)');
update geoSample set geog = st_pointfromtext('POINT'||replace(pointAsVarchar,',',' ')) where 1=1;
select *, st_astext(geog) from geosample;