我在矢量工具中找不到该功能。
#1 楼
使图层可编辑,然后使用字段计算器(“图层”>“打开属性表”>“字段计算器/ Ctrl + I”,或右键单击“ shapefile”>“打开属性表”>“字段计算器/ Ctrl + I”)。有一个运算符“ $ area”将计算表中每一行的面积。所有单位都将以投影的单位进行计算,因此您可能希望将其投影到使用英尺或米的投影之前,而不是经/纬度。#2 楼
也可以使用“向量” |“几何工具” |“添加/导出几何”列来完成,这将创建一个新的shapefile,其中添加了“面积”和“周长”(或长度)列。也可以在V1.8中取消选择“另存为新形状文件”,现在仅更新shapefile!)创建一个新的shapefile。评论
您必须先启用编辑功能,才能更改shapefile的属性(计算面积数与编辑属性一样,您要添加新列)。请记住,所有单位都将以投影单位(默认为米bu)计算,因此您首先要将其重新投影到投影坐标系中。
–哈桑·穆斯塔法(Hasan Mustafa)
16-2-4在4:42
#3 楼
我专门为此编写了一个脚本。如果不想重新投影数据,则可以使用椭圆数学来计算面积。Processing Toolbox -> Tools -> Get scripts from on-line scripts collection -> Ellipsoidal Area
您将找到安装在
Processing Toolbox -> Utils -> Ellipsoidal area
该工具应该是自解释性的,并且无论投影如何,都可以使用您选择的单位来计算面积。
评论
你能给出更好的示例代码吗?
–LéoLéopoldHertz준영
16年7月4日在19:55
#4 楼
在当前版本的QGIS(即QGIS 3.12)中,如果不能获得非常准确的面积计算不会打扰您(或者您不想像上面的一些答案和注释所提到的那样在字段计算器中使用其他选项) )有一种简单的方法可以解决这个问题。转到“项目>>属性>>常规”,然后更改距离和面积测量的单位。现在,现场计算器中的$area
会自动转换CRS的面积(以及其他重要几何计算的CRS)。但是,我个人建议使用@Alexandre进行此方法,因为它将为您提供更准确的结果。尽管您需要进行一些搜索,然后才能找到
transform
函数的第三个参数,即最适合您感兴趣的区域及其单位的CRS。 评论
那是非常重要的。 $区域不再以图层的CRS单位计算。以项目设置中设置的单位计算。
–纪尧姆
10月28日15:49
#5 楼
如果您要查看的区域可能会发生变化,例如查看基础结构布局,集水区,研究区域等,我发现简单地标记区域而不是将其添加为属性很有用。Label-> round($area/10000,2)||' ha'
这样,您无需记住经常更新属性表中的汇水区域。
评论
这不会将您的值另存为字符串吗?我建议不要将数字数据另存为字符串,而应在字段名称中包含面积单位。
– thymaro
2月26日在16:02
评论
在当前版本的QGIS中,如果您的数据位于地理CRS中,则可以使用函数transform()将几何投影到投影系统(最好是等面积的投影系统),而无需重复数据。在Field计算器中,应执行以下操作:area($ geometry,'EPSG:4326','EPSG:3763')
–亚历山大·内托(Alexandre Neto)
16-2-3在23:11
@AlexandreNeto:您是指面积(变换($ geometry,'EPSG:4326','EPSG:3763'))吗?
– Stewart Macdonald
17年4月20日在5:33
@smacdonald是的,我的错。
–亚历山大·内托(Alexandre Neto)
17年4月20日在6:58
从QGIS 3.14开始,我相信$ area和$ length的单位是在项目首选项中设置的单位,而不是图层的单位。对此要特别小心。
–纪尧姆
10月28日15:47