从json文件到Postgres几何格式的多边形

时间:2017-08-02 23:07:32

标签: json postgresql

我有一个带有邮政编码和多边形数据的Json文件。我想将多边形转换并存储到几何数据类型的Postgres表中。我的Postgres 9.5使用PostGIS扩展。

我的档案:.multiselect-container > li.disabled { display:none;}

数据:

myjson.json

Postges mytable:zipcode varchar,polygon geometry

1 个答案:

答案 0 :(得分:0)

它并不漂亮,但这应该可以解决问题:

WITH polygon AS ( SELECT json_array_elements(t->'polygon') AS data FROM json($$ { "zipcode": "97358", "polygon": [ {"lat": 44.730418, "lng": -122.544798}, {"lat": 44.763411, "lng": -122.685015}, {"lat": 44.831045, "lng": -122.616831}, {"lat": 44.863487, "lng": -122.401282}, {"lat": 44.80795, "lng": -122.40953}, {"lat": 44.730418, "lng": -122.544798} ] }$$) as t) SELECT ST_MakePolygon(ST_GeometryFromText( 'LINESTRING(' || string_agg((p.data->'lng')::text || ' ' || (p.data->'lat')::text, ',') || ')', 4326)) FROM polygon AS p;

请注意,我已将SRID(投影)硬编码为4326.如果此多边形不在俄勒冈州,那么您可能需要更正它。