在下面的帖子中,我提出了一些问题,效果很好。但是,当我添加执行坐标转换的行和查询geom
的行时,我在运行web服务时收到以下错误:
Input geometry has unknown (0) SRID
我是波斯吉斯的新手。如何解决此问题
代码:
query = """ WITH data AS (
SELECT '{featuresArray}'::json AS featuresCollection
)
SELECT gid,geom,type::text,properties::text,
array_to_string(array_agg(x_4326||' '||y_4326 ORDER BY gid),',') AS g4326,
array_to_string(array_agg(x_25832||' '||y_25832 ORDER BY gid),',') AS g25832
FROM (
SELECT
ROW_NUMBER() OVER () AS gid,
ST_AsText(ST_GeomFromGeoJSON(feature->>'geometry')) AS geom,
feature->>'type' AS type,
feature->>'properties' AS properties,
ST_X((ST_DumpPoints((ST_GeomFromGeoJSON(feature->>'geometry')))).geom) x_4326,
ST_Y((ST_DumpPoints((ST_GeomFromGeoJSON(feature->>'geometry')))).geom) y_4326,
ST_X((ST_DumpPoints((ST_Transform(ST_GeomFromGeoJSON(feature->>'geometry'),25832)))).geom) x_25832,
ST_X((ST_DumpPoints((ST_Transform(ST_GeomFromGeoJSON(feature->>'geometry'),25832)))).geom) y_25832
FROM (SELECT json_array_elements(featuresCollection->'features') AS feature FROM data) AS f) j
GROUP BY gid,type::text,properties::text,geom
ORDER BY gid;""".format(featuresArray=featuresArray)
一些PostGIS功能依赖于SRS,例如^{} 。必须指定要从哪个SRS进行转换,否则转换脚本没有用于计算新坐标的引用,例如从
EPSG:25832
到EPSG:4326
:。。否则将引发异常
使用^{} 可以将SRS设置为几何图形,以防它们没有任何几何图形-如您的示例所示,例如
同样的原则适用于
CREATE TABLE
和INSERT
/UPDATE
语句。创建表时,我们声明SRS如下。。因此PostGIS希望所有传入的几何体具有相同的SRS
。。否则它也会引发一个例外
相关问题 更多 >
编程相关推荐