我不需要创建一个单独的表示质心的点矢量文件,然后找到这些坐标并复制并粘贴。
#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
评论
您的文本文档是什么格式?这是一个MS Word文档,但实际上可以是任何东西。