如何让我们WKT在qgis中绘制多边形?

时间:2017-07-10 11:56:22

标签: gis data-science qgis

我有一个csv文件,其数据字段包含像bellow

这样的数据

POLYGON((79.87749999947846 6.997500000409782,79.88249999947845 6.997500000409782,79.88249999947845 7.002500000409782,79.87749999947846 7.002500000409782,79.88759999947846 6.997500000409782))

我想在qgis中使用此数据字段绘制多边形。我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

例如,我有一个带有两列“ Id ”和“ geom ”的csv,geom有你的POLYGON示例,

enter image description here

转到 图层 - >添加图层 - >添加分隔文本图层 并浏览您的csv和几何字段组合框选择包含您的wkt数据的列,在我的情况下是“ geom ”和几何定义选择( WKT )选项

enter image description here

结果是:

enter image description here

另一方面,使用Python:

uri ='file:///C://Users//fjraga//Desktop//test.csv?delimiter=%s&crs=epsg:4326&wktField=%s' % (",", "geom")
lyr = QgsVectorLayer(uri, 'Test','delimitedtext')
QgsMapLayerRegistry.instance().addMapLayer(lyr)

但是如果您只想使用QGIS python控制台加载此WKT几何体,请尝试使用:

wkt = "POLYGON ((79.87749999947846 6.997500000409782, 79.88249999947845 6.997500000409782, 79.88249999947845 7.002500000409782, 79.87749999947846 7.002500000409782, 79.87749999947846 6.997500000409782))"

temp = QgsVectorLayer("Polygon?crs=epsg:4326", "result", "memory")
QgsMapLayerRegistry.instance().addMapLayer(temp)

temp.startEditing()
geom = QgsGeometry()
geom = QgsGeometry.fromWkt(wkt)
feat = QgsFeature()
feat.setGeometry(geom)
temp.dataProvider().addFeatures([feat])
temp.commitChanges()

答案 1 :(得分:1)

您将文本复制到剪贴板。

然后:

  1. 打开QGIS
  2. 打开“编辑”菜单
  3. 输入“将对象插入为”/“将要素插入”子菜单
  4. 选择矢量或临时图层
  5. 选择正确的坐标系
  6. 你已经完成了。

    就这么简单。

答案 2 :(得分:0)

使用知名文本(WKT)从剪贴板创建新图层

剪贴板上的功能可以粘贴到新图层中。为此,选择一些要素,将其复制到剪贴板,然后使用“编辑‣将要素粘贴为‣”并将其粘贴到新图层中,然后选择:

“新矢量层…”:出现“将矢量层另存为...”对话框(请参阅从现有层创建新层以获取参数)

或临时刮擦层…:您需要为该层提供名称

创建一个新图层,其中填充了选定的要素及其属性(并添加到地图画布)。

注意

可以通过选择要素从剪贴板创建图层 并复制到QGIS以及其他应用程序的功能中, 只要使用众所周知的文本(WKT)定义了它们的几何形状即可。

参考: https://docs.qgis.org/3.10/en/docs/user_manual/managing_data_source/create_layers.html#creating-new-layers-from-the-clipboard