如何使用WKT在qgis中绘制多边形?
How to use WKT to draw polygon in qgis?
我有一个包含数据字段的 CSV 文件,其中包含如下数据
POLYGON ((79.87749999947846 6.997500000409782, 79.88249999947845
6.997500000409782, 79.88249999947845 7.002500000409782, 79.87749999947846 7.002500000409782, 79.87749999947846 6.997500000409782))
我想在 qgis 中使用这个数据字段绘制一个多边形。我该怎么做?
您将文本复制到剪贴板。
然后:
- 开启QGIS
- 打开 "Edit" 菜单
- 进入"Insert Objects as"/"Insert Features as"子菜单
- 选择矢量层或临时层
- Select正确的坐标系
大功告成。
就这么简单
例如,我有一个包含两列“Id”和“geom”的 csv,geom 有您的 POLYGON 示例,
转到图层->添加图层->添加分隔文本图层并浏览您的 csv 和几何字段组合框select 包含你的 wkt 数据的列,在我的例子中是“geom”和 Geometry definition select (WKT) 选项
结果是:
另一种方式,使用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()
正在使用知名文本 (WKT) 从剪贴板创建新图层
可以将剪贴板上的地图项粘贴到新图层中。为此,Select 一些特征,将它们复制到剪贴板,然后使用编辑 ‣ 将特征粘贴为 ‣ 并选择:
将它们粘贴到新图层中
新建矢量图层...:出现将矢量图层另存为...对话框(有关参数,请参阅从现有图层创建新图层)
或 Temporary Scratch Layer...:您需要为图层提供名称
创建了一个新图层,其中填充了所选要素及其属性(并添加到地图 canvas)。
Note
Creating layers from the clipboard is possible with features selected
and copied within QGIS as well as features from another application,
as long as their geometries are defined using well-known text (WKT).
我有一个包含数据字段的 CSV 文件,其中包含如下数据
POLYGON ((79.87749999947846 6.997500000409782, 79.88249999947845 6.997500000409782, 79.88249999947845 7.002500000409782, 79.87749999947846 7.002500000409782, 79.87749999947846 6.997500000409782))
我想在 qgis 中使用这个数据字段绘制一个多边形。我该怎么做?
您将文本复制到剪贴板。
然后:
- 开启QGIS
- 打开 "Edit" 菜单
- 进入"Insert Objects as"/"Insert Features as"子菜单
- 选择矢量层或临时层
- Select正确的坐标系
大功告成。
就这么简单
例如,我有一个包含两列“Id”和“geom”的 csv,geom 有您的 POLYGON 示例,
转到图层->添加图层->添加分隔文本图层并浏览您的 csv 和几何字段组合框select 包含你的 wkt 数据的列,在我的例子中是“geom”和 Geometry definition select (WKT) 选项
结果是:
另一种方式,使用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()
正在使用知名文本 (WKT) 从剪贴板创建新图层
可以将剪贴板上的地图项粘贴到新图层中。为此,Select 一些特征,将它们复制到剪贴板,然后使用编辑 ‣ 将特征粘贴为 ‣ 并选择:
将它们粘贴到新图层中新建矢量图层...:出现将矢量图层另存为...对话框(有关参数,请参阅从现有图层创建新图层)
或 Temporary Scratch Layer...:您需要为图层提供名称
创建了一个新图层,其中填充了所选要素及其属性(并添加到地图 canvas)。
Note
Creating layers from the clipboard is possible with features selected and copied within QGIS as well as features from another application, as long as their geometries are defined using well-known text (WKT).