在postgis中导入包含多个几何的csv文件

时间:2016-03-10 05:05:38

标签: postgresql csv postgis

我在制表符分隔的csv文件中包含以下数据(包含地点的纬度和经度):

<place1>    <geo>   "POLYGON((-5.8335446 43.3655635,-5.8336337 43.3655207,-5.8349218 43.3673341,-5.8345197 43.3674013,-5.8336182 43.3660938,-5.8335037 43.365924,-5.8334505 43.3658461,-5.8334702 43.3657311,-5.8335446 43.3655635))" .
<place2>    <geo>   "POINT((-5.8374796 43.3687922))" .
<place3>    <geo>   "LINESTRING((-5.8427265 43.3678474,-5.8421236 43.3677908))" .
<place4>    <geo>   "MULTIPOINT((-5.8445678 43.3589236,-5.8435222 43.358205,-5.8429834 43.3575551,-5.8429127 43.3572642))" .

我想将这些数据导入postgis。为此,我需要先在数据库中创建一个表。我知道我可以使用:

为一个特定的几何体创建一个表格(例如,用于POINT)
create table myTable (firstColumn varchar(100));
SELECT AddGeometryColumn( 'myTable', 'geom', 4269, 'POINT', 2 );

但我无法理解如何在单个表myTable的一列中将包含不同几何的csv文件导入postgres。我还想构建一个单一的&#34; gist&#34; myTable顶部的索引

1 个答案:

答案 0 :(得分:1)

添加通用&#34; GEOMETRY&#34;专栏,使用 SELECT AddGeometryColumn( 'myTable', 'geom', 4269, 'GEOMETRY', 2 );

然后像往常一样添加gist索引。