我正在尝试弄清楚如何使用QGIS字段计算器计算点的纬度/经度。
是否有一种简单的方法来做到这一点? Python,以返回点的纬度和经度?),但是它处理的是更高级的方法。
在ArcGIS Desktop中,这类似于Calculate Geometry函数;我只是在QGIS中找不到这样做的地方。

#1 楼

当然可以。首先,将图层另存为WGS84并再次导入。然后,在字段计算器中,可以使用$ x或$ y作为变量来获取x和y。



注意:这是1.7中添加的。 />

#2 楼

您必须先将点图层重新投影到EPSG:4326。右键单击图层列表中的图层名称,然后选择“另存为...”。在此处,您可以将目标CRS指定为EPSG:4326。

加载新的重新投影的点图层,然后运行“导出/添加几何列”。

评论


请注意,使用更新版本的QGIS(可通过OSGeo4W安装程序访问),您甚至无需将图层导出到新的CRS。您只需将地图画布的CRS更改为输出单位和CRS的任意选项,并在执行“导出/添加几何列”并输出到相同的shapefile时选中“使用Project CRS计算”即可。

– Maxim Dubinin
2012年3月31日14:40

仅供参考:“导出/添加几何列”可在菜单>矢量>几何工具>导出/添加几何列中找到

– clhenrick
16年2月25日在18:18

#3 楼

一种选择是将CRS图层指定为WGS 84(无投影)。可能是您也必须更改项目CRS。现在使用“矢量>几何工具>导出/添加几何列”。这应该给您纬度/经度坐标。

#4 楼

在QGIS 3.8(2019年6月)中,现在有一种算法可以将X和Y值相加。它可以即时重新投影坐标。



如果仍然需要度数或度数秒格式,则需要先使用to_dmto_dms表达式添加这些字段放入属性表。

评论


抱歉,etrimaille,我很la脚,我找不到如何找到该屏幕的方法(“将X / Y字段添加到图层”)。你能给我一些指导吗?

– TVZ
20年1月25日在16:50

在3.10.3中,我在以下位置找到它:处理>工具箱>向量表>将X / Y字段添加到图层

– Stu Smith
20 Mar 25 '21:20

#5 楼

提取节点。这使其成为一个点层。然后打开属性表,进行字段计算,选择几何-$ y / $ x

查找多边形角点坐标

#6 楼

先前的最佳答案可能被认为是过时的。 >您可以找到配方,其中包含公式和插图GIF。

评论


来自以上链接的公式:经度= x(transform($ geometry,'EPSG:FROM','EPSG:4326'))和纬度= y(transform($ geometry,'EPSG:FROM','EPSG:4326'))用于WGS84纬度/经度。

–布赖恩·费希尔(Brian Fisher)
19年11月15日在22:27

您能否提供“以前的最佳答案”的链接?如果过时了,它可能应该接受不赞成票,以便告知社区,它不再被视为最佳。

– PolyGeo♦
20-10-7的1:05

#7 楼

如今,如果图层尚未位于所需的CRS中,则对于x | lon坐标来说,这是最简单的表达方式:您可以在例如QGIS字段计算器或其他任何接受表达式的地方使用它。只需用要在其中显示坐标的CRS的EPSG代码替换y | latEPSG:4326是WGS 84的代码,因此它将返回纬度和经度。

说明:
EPSG:4326函数将每个已知的CRS转换为指定的目标CRS(此处为transform())。您也可以在这里键入其他所有已知的EPSG代码。 EPSG:4326 WGS 84函数通过layer_property()自动检测源图层CRS,并通过'crs'自动检测当前图层名称。 @layer_namex()返回当前y()的坐标。
如果图层已经在您要显示坐标的CRS中,则使用$geometry$x可以接受的答案仍然是最短的表达式。

#8 楼




对于像我这样的用户,经过7年以上的努力,会有一个更好,更简单的答案。

这里> https://stackoverflow.com/a/51164270/9620153