首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ogr2ogr的几何列值格式不正确

ogr2ogr的几何列值格式不正确
EN

Stack Overflow用户
提问于 2020-07-30 01:28:56
回答 1查看 140关注 0票数 0

在Windows上,我试图将shapefile (找到的here)加载到PostGIS中,以便能够进行地理空间查询。使用以下ogr2ogr命令:

代码语言:javascript
复制
set PGCLIENTENCODING=LATIN1

ogr2ogr -f "PostgreSQL" PG:"dbname=my_database user=docker password=docker port=54320" "Census2011_Garda_Subdistricts_Nov2013.shp" -a_srs "EPSG:29902" -nlt PROMOTE_TO_MULTI -skip-failures

我在控制台上没有得到任何错误或失败。所有多边形现在都是MultiPolygons。ogr2ogr自动为我创建了一个表,如下所示:

除了在这些功能中查询点这样的事情之外,我还希望能够使用以下命令查询这些表以返回GeoJSON:

代码语言:javascript
复制
SELECT jsonb_build_object(
    'type',     'FeatureCollection',
    'features', jsonb_agg(feature)
)
FROM (
  SELECT jsonb_build_object(
    'type',       'Feature',
    'id',         ogc_fid,
    'geometry',   ST_AsGeoJSON(wkb_geometry)::geometry,
    'properties', to_jsonb(row) - 'gid' - 'geom'
  ) AS feature
  FROM (SELECT * FROM public.census2011_garda_subdistricts_nov2013) row) features;

我在堆栈溢出here上找到的。

然而,这个查询给出了以下错误:

代码语言:javascript
复制
SQL Error [XX000]: ERROR: parse error - invalid geometry
  Hint: "{"" <-- parse error at position 2 within geometry

因为几何表似乎是错误的:

这是我可以调整的ogr2ogr命令的问题吗?这是原始shapefile的问题吗?表的定义有误吗?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-07-30 01:53:02

您的查询中存在错误的强制转换。

你写了

代码语言:javascript
复制
SELECT jsonb_build_object(
...
'geometry',   ST_AsGeoJSON(wkb_geometry)::geometry,

这基本上创建了一个geojson,您尝试将其转换回一个几何体,但失败了。

您可以删除此强制转换,或者像原始查询一样将其强制转换为jsonb

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63159226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档