在 Windows 上,我正在尝试将 shapefile(在此处找到)加载到 PostGIS,以便能够进行地理空间查询。使用以下 ogr2ogr 命令:
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:
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;
我在 Stack Overflow 上找到的。
但是,此查询给了我以下错误:
SQL Error [XX000]: ERROR: parse error - invalid geometry
Hint: "{"" <-- parse error at position 2 within geometry
因为几何表似乎是错误的:
这是我可以调整的 ogr2ogr 命令的问题吗?原来的shapefile有问题吗?表定义错了吗?
谢谢你的帮助。