在QGIS中计算多边形面积?


72

如何计算面积shapefile的面积(以平方米或英亩(ha)为单位)?

我在矢量工具中找不到该功能。


后续问题:我在State Plane NAD83中有一层。当我使用这些命令时,它将以英尺为单位创建面积。如果我想要英亩或平方英里怎么办?谢谢
C_K 2013年

这两个答案提供了工作,但实现起来有些慢,尤其是当试图确定许多多边形矢量文件的区域时。是否没有插件或通过其他方法仅通过右键单击多边形即可获取多边形的面积?提供的答案以新的字段属性(即area)结尾,但是如果更改了多边形,则该值不会更新。因此,在许多情况下,无需在单独的字段属性中显示区域。如果该区域可以在小图上,页面底部等处以数字显示,则足够了。所以
David

2
使用识别工具,单击一个多边形。计算面积并将其显示在识别窗口的“派生”下。您可以在设置下更改单位。
csk

Answers:


70

使图层可编辑,然后使用字段计算器(“图层”>“打开属性表”>“字段计算器/ Ctrl + I”,或右键单击“ shapefile”>“打开属性表”>“字段计算器/ Ctrl + I”)。有一个运算符“ $ area”将计算表中每一行的面积。所有单位都将以投影单位计算,因此您可能希望将其投影到使用英尺或米而不是经/纬度的投影。


6
在当前版本的QGIS中,如果您的数据位于地理CRS中,则可以使用函数transform()将几何图形投影到投影系统(最好是等面积的投影系统),而无需复制数据。在Field计算器中,类似这样的方法应该起作用:area($ geometry,'EPSG:4326','EPSG:3763')
Alexandre Neto

9
@AlexandreNeto:你的意思是area(transform($geometry, 'EPSG:4326','EPSG:3763'))
斯图尔特·麦克唐纳

@smacdonald是的,我的错。
亚历山德拉·内托

18

也可以使用“向量” |“几何工具” |“添加/导出几何”列来完成,该操作将创建一个新的shapefile,其中添加了“面积”和“周长”(或长度)列。

编辑:(使用上面的工具,您还可以在V1.8中取消选择“另存为新形状文件”,现在仅更新shapefile!)

但是,使用字段计算器可能是一个更好的主意,因为它不需要创建新的shapefile。


您必须先启用编辑功能,才能更改shapefile的属性(计算面积数与编辑属性一样,您要添加新列)。请记住,所有单位都将以投影单位(默认为米bu)计算,因此您首先要将其重新投影到投影坐标系中。
哈桑·穆斯塔法

4

我专门为此编写了一个脚本。如果您不想重新投影数据,则可以使用椭圆数学来计算面积。

Processing Toolbox -> Tools -> Get scripts from on-line scripts collection -> Ellipsoidal Area

您会在以下位置找到安装的脚本 Processing Toolbox -> Utils -> Ellipsoidal area

该工具应该是自解释性的,无论投影如何,都可以使您以选择的单位来计算面积。


你能给出更好的例子作为代码吗?
莱奥波德·赫兹(LéoLéopoldHertz)2016年

0

如果您要查看的区域可能会发生变化,例如查看基础结构布局,集水区,研究区域等,我发现简单地标记区域而不是将其添加为属性很有用。

Label-> round($area/10000,2)||' ha'

这样,您无需记住经常更新属性表中的汇水区域。

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.