我在名为myFile.txt的文本文件中包含以下表单的数据:
id_1 POLYGON (1.137821,-129.141488|1.137874,-129.141493|1.137970,-129.141403|1.137994,-129.141349|1.138021,-129.141238)
id_2 LINESTRING (7.294799,-122.935414|7.294679,-122.935129)
id_3 POLYGON (1.139228,-129.143349|1.139228,-129.143401|1.139150,-129.143461|1.138930,-129.143451|1.138734,-129.143445|1.138630,-129.143390|1.138007,-129.142777|1.137906,-129.142629|1.137761,-129.142286|1.137796,-129.142214|1.137844,-129.142142|1.137839,-129.142067)
id_4 POINT (1.138007,-129.142777)
此处,POLYGON
,LINESTRING
和POINT
指定纬度和经度的地点位置。我想将这些数据批量插入下表:
create table idLatLongTable
(id character varying(250), geo_column geography);
我的问题是:如何在batch insert
表格中idLatLongTable
这些数据?
我知道如何进行一次一行插入。但是,我无法理解如何在此表上执行批量插入
答案 0 :(得分:1)
您的数据几乎与Well Known Text相似,但事实并非如此。这是你自己创造的东西吗?如果是这样,您应该更改程序以WKT格式生成它。例如根据WKT,你的观点应该看起来像
POINT (1.138007 -129.142777)
但它是
POINT (1.138007,-129.142777)
类似地,线串的正确表示将是
LINESTRING (7.294799 -122.935414, 7.294679 -122.935129)
但是在您的数据中,,
应该是空格,而|
应该是,
,所以首先要做的是转换PostGIS可接受的数据或任何其他空间感知数据库。
当你在这里时,请从id中删除id_部分。将id_1
保存为varchar是没有意义的,在整数字段中应保存的是1