如何将shapefile转换为WKT?


12

我正在尝试在以下示例中将shapefile转换为简单的“众所周知的文本(WKT)”格式(来自http://en.wikipedia.org/wiki/Well-known_text)。

MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),
((20 35, 45 20, 30 5, 10 10, 10 30, 20 35),
(30 20, 20 25, 20 15, 30 20)))

我知道我使用QGIS将shapefile另存为CSV,并且可以使用ogr2​​ogr进行任意数量的转换。实际上,这ogr2ogr -f CSV out.wkt source.shp -lco GEOMETRY=AS_WKT使我与我到目前为止所取得的成就相距甚远,但还远远不够。有什么建议?

Ps作为注意到Mapperz,该线很相似,这一个。该线程虽然提供了我上面提到的ogr2ogr方法,但并不能解决这一特殊挑战。我得到的ogr2ogr输出看起来像这样(我已经将行截断了)。显然,我只是还没有弄清楚如何让ogr2ogr使用多面体。

WKT,AREA,PERIMETER,PINUPOND_,PINUPOND_I,CODE
"POLYGON ((-120.630531650950061 50.838562484449184, . . .
"POLYGON ((-123.206067372148397 51.038984074378327, . . .


ogr2ogr输出有什么问题?
til_b 2013年

@til_b:在编辑中寻址。
2013年

1
您的形状是MULTIPOLYGON吗?
于尔根Zornig

@JürgenZornig:我怎么知道?将其设为多多边形是有意义的,但我想验证一下。
格雷戈里

Answers:


10

众所周知的文本并不意味着保存诸如由许多对象组成的形状文件之类的图层。WKT定义了如何表示一个对象的几何形状。该几何形状可以是单个或多个部分。多零件几何意味着一个对象的几何由许多零件组成。例如,夏威夷群岛可以表示为一个对象,但它由许多几何组成。

形状文件是这些对象的集合。对象通常还具有一些属性信息,这些信息也是形状文件的一部分。

您的ogr2ogr方法将这些对象转换为具有WKT几何形状(以及属性的文本表示形式)的csv格式。如果您真的想将所有几何图形合并为一个MULTIPOLYGON,则必须首先将所有对象转换为一个多重几何图形。您可以在QGIS中做到这一点。从“矢量”菜单“几何工具”中选择,然后从“单件转换为多件”。然后,您可以使用ogr2​​ogr将其转换为wkt。

希望这是有道理的。


确实有道理,我将有机会尽快尝试。
2013年

好的,在QGIS中,我使用了矢量/几何工具/单部分进行多部分处理。我将输出另存为新的shapefile,但是当我将该文件加载到QGIS中时,它显示为空白,并且属性表完全为空(也许因为没有标题,所以void可能是更好的描述)。
2013年

当工具要求时,您@pyrogerg是否选择了任何唯一字段?这意味着该工具会将在该字段中具有相同值的所有特征“分组”。如果您没有要唯一的字段,则可以使用字段计算器创建一个。您可以从属性表访问它。确保图层处于编辑模式(笔形图标)。然后选择字段计算器,并将“值”(例如值1)“计算”到新字段的每一行。
LauriK

1
+1我自由地通过明确提及输出将包含属性来进一步澄清您的编辑。
ub

5

我编写了一个QGIS插件,该插件可将活动层立即保存到.wkt文件中。

插件的名称是“ WktExport”。您可以在默认的QGIS插件面板中搜索它。

顺便说一句,插件页面的链接是这样的:

https://plugins.qgis.org/plugins/wktexport/

QGIS的“ WktExport”插件会创建一个名为“ WktExport”的文件夹,原始SHP所在的文件夹,然后在该文件夹中插入一个.wkt文件,其中包含SHP所有对象(也包括KML或其他原始文件)的WKT ascii格式的元素格式)。

.wkt的名称包含在保存的日期和时间内,因此将其保存很多次,您将拥有同一文件的多个版本。

这对于创建制图工作进度的动画或记录文件的当前状态可能很有用。

请发送消息到qgis-developer列表,尤其是在发现wktexport有用的情况下。


项目链接已断开。
卢克·哈奇森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.