gpt4 book ai didi

postgresql - postgis中的坐标类型

转载 作者:行者123 更新时间:2023-11-29 13:26:52 26 4
gpt4 key购买 nike

当我尝试将数据插入 postgis 几何列时出现错误。

错误:地理类型的坐标值超出范围 [-180 -90, 180 90]SQL状态:22023

我的插入查询是。

INSERT INTO meter1(meter_id, meter_no,location,type) 
VALUES ('M1', 200,ST_GeographyFromText('SRID=3857;
POINT(256300.11 9856321.09)'),'automatic' );

最佳答案

首先,它看起来像是您可能不需要使用地理类型的情况之一。

If your data is geographically compact (contained within a state, county or city), use the geometry type with a Cartesian projection that makes sense with your data.

http://workshops.boundlessgeo.com/postgis-intro/geography.html#why-not-use-geography

话虽如此,如果你毕竟需要使用地理类型,你必须接受地理列只能以度数而不是以米为单位保存值。因此,您需要将数据转换为支持经纬度的空间引用系统。因此,您的查询需要更改如下:

INSERT INTO meter1(meter_id, meter_no,location,type)    
VALUES ('M1', 200,
ST_Transform(ST_SetSrid(ST_GeomFromText('POINT(256300.11 9856321.09)'), 3587), 4326),
'automatic' );

这里使用的函数是ST_Transform

关于postgresql - postgis中的坐标类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32230396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com