我想使用现有表格的经度和纬度列创建一个POINT。
这是ST_MakePoint文档的链接。
这是我的桌子:
CREATE TABLE sysinst.bio (
oid INTEGER PRIMARY KEY,
longitude FLOAT,
latitude FLOAT,
geom GEOMETRY(POINT, 26913)
);
添加几何列:
SELECT AddGeometryColumn ('sysinst', 'bio', 'geom', 26913, 'POINT', 2);
这是我的查询:
UPDATE sysinst.bio SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 26913);
尽管在QGIS中查看POINTS时错误绘制了点,但没有返回错误。
对于(-97.5959, 21.1922)
,我收到(-109.4896, 0.0002)
有什么建议么?
如果有更简单的方法,我愿意更有效地执行此操作。
我没有看到查询问题。也许您可以尝试部分地诊断问题-也许尝试消除QGIS的部分,而仅使用postgis的命令行?
—
BradHards
也许我听不懂,但您似乎正在将以度为单位的经度纬度坐标(-97,21)输入到基于UTM并使用仪表的CRS中。如果您将其声明为SRID 26918,则long / lat值必须在该CRS中。如果经度/纬度值以度为单位,则需要将几何创建为ST_SetSRID(MakePoint(...),4326),然后将图层转换为26913
—
Micha
@Micha,您应该添加您的评论作为答案。我希望正确的SRID将解决OP问题。包括并举例说明如何添加ST_Transform可能也会有所帮助。
—
katahdin