我有一个多边形矢量,我想快速获得该多边形的质心,以将其插入文本文档中。我正在使用QGIS。我搜索了其他问题,尽管有些问题有些接近,但它们并不能完全回答我的问题。坐标。

我不需要创建一个单独的表示质心的点矢量文件,然后找到这些坐标并复制并粘贴。

评论

您的文本文档是什么格式?

这是一个MS Word文档,但实际上可以是任何东西。

#1 楼

根据定义,质心是点层而不是多边形。因此,您需要创建一个新层,在QGIS 1.8和更高版本中,它很容易成为饼图。


在多边形中加载
转到菜单->矢量->几何工具->多边形质心并创建质心点图层
通过单击->矢量菜单->几何工具->导出/添加几何列,将创建的质心的坐标导出到属性表。

之后,您可以进行空间连接以将质心列添加到多边形中,然后再次删除点图层。

评论


感谢您的答复,我感谢您的帮助。尽管如此,要知道质心的坐标是多少,仍然要做很多工作。不幸的是,QGIS中没有简单的方法。

–大卫
13年1月5日在20:26

如果仍然希望它更简单,则可以看一下下面提到的PostGIS和ST_Centroid函数。这样,您无需创建临时文件。或者,您可以为QGIS编写自己的python脚本或使用SEXTANTE Modeler。

–卷发
2013年1月5日在22:09

#2 楼

迈克答案的更强大解决方案:
long = toreal(regexp_substr(geom_to_wkt(centroid($geometry)), '(-?\d+\.?\d*) -?\d+\.?\d*')) lat = toreal(regexp_substr(geom_to_wkt(centroid($geometry)), '-?\d+\.?\d* (-?\d+\.?\d*)'))

评论


被低估的答案;)

–费尔南多·伊拉拉萨瓦尔(FernandoIrarrázavalG)
17年7月14日在18:28

#3 楼

确实,制作新的shapefile是您最简单的选择之一。但是,您不需要复制和粘贴坐标。为此:


使用多边形质心工具制作质心文件。
打开质心属性表并使其可编辑(底部的铅笔图标)。
打开字段计算器(底部的计算器图标),然后选择“创建新字段”选项,并将其命名为有意义的名称(例如Easting)。为$ y(例如称其为Northing)。
保存您的编辑,现在,所有坐标都作为属性表的一部分包含原始多边形ID和属性(如果使用了质心工具)。

或者,您必须将数据导入PostGIS,然后使用ST_Centroid函数在多边形上进行迭代,并将结果存储在新字段中。所涉及的工作大致相同,但是第二种选择意味着您没有单独的质心点文件。

评论


感谢你的回答。我感谢您的帮助。看来Curlew的回答对我来说要容易一些。这两个答案仍然是我想要做的很多工作。最后,您将获得各种shapefile,必须对其进行命名,删除,编辑等。

–大卫
13年5月5日在20:28

#4 楼

在2.2字段计算器中如何使用呢?

长字段=
substr(geomToWKT(centroid($ geometry)),7,12)

纬度字段=
substr(geomToWKT(重心($ geometry)),strpos(geomToWKT(centroid($ geometry)),'')+2,12)

似乎在2.6中使用xmin选项解决了这个问题($ geometry))

#5 楼

我刚刚遇到了将近5年的帖子(!),但是这是我在2.18.14版本中计算多边形质心的方法:


开始编辑多边形层
创建一个新的文本字段,将其称为质心

使用字段计算器,计算质心= x($ geometry)|| ','|| y($ geometry)
结果类似于:397640.915545362,2126924.53637653
保存编辑。
您的多边形层现在包含一个具有x,y重心值的字段


评论


简单而精湛

– Kazuhito
17年12月9日在6:19

1.我想知道答案是否已经在这里。 2.我将使用分别由x和y组成的两个新列,但这是个人选择。当它处于两个列时,它可以与excel复制。 3.不管您的映射单位是什么,您都在计算具有这么多小数的质心分子或原子的坐标。通常,两个或三个绰绰有余。 :D

– thymaro
20-04-27在21:59

#6 楼

出现在这篇文章中,很难理解,建议更新:

注意:
这将计算投影坐标中的纬度和经度(可能是米)。如果要用十进制度数表示坐标(我想是这样,或者它们大多很难理解),请首先在此CRS中保存该图层:EPSG:4326,WGS 84。
创建新字段
输入名称(纬度或经度)
选择十进制作为输出字段类型
为纬度输入此表达式y($ geometry),为经度输入此表达式: x($ geometry)
按确定


#7 楼

将质心点表与多边形表关联,然后将坐标与多边形名称和形状放在一起。多边形本身不长一格

评论


感谢您的回答。是的,我知道多边形没有一个纬度,而多边形本身就是可以计算的。不幸的是,在QGIS中,这并不比这简单。再次感谢大家的回答。而且速度也很快。谢谢!

–大卫
13年5月5日在20:30

#8 楼

lon = ToReal(regexp_substr(geomToWKT(centroid($ geometry)),'([\ s]'))

评论


这根本没有答案。请访问旅游,以更好地了解如何回答问题...

– Nightwatch
17年11月20日在13:57