操作方法

操作方法:在 ArcGIS Online 中使用 Arcade 计算面要素的坐标

Last Published: July 11, 2025

描述

与点要素不同,具有面积的面要素的坐标不确定。 因此,要确定面要素的坐标,需要计算面的质心。 质心是表示面要素的中心的点要素。

本文将介绍在 ArcGIS Online 中使用 Arcade 表达式基于面要素的质心计算其坐标的工作流。

解决方案或解决方法

  1. 登录到 ArcGIS Online。 单击内容 > 我的内容
  2. 确保面要素的属性表可编辑。 将要素图层发布为托管要素图层,并启用编辑功能
  3. 在面要素图层的项目详细信息页面中,单击数据选项卡以显示该表。
ArcGIS Online 中项目详细信息页面上的“数据”选项卡。
  1. 添加新的字符串数据类型字段。 有关说明,请参阅 ArcGIS Online:添加字段。 在本示例中,将创建新的 Coordinate 字段。
Coordinate 字段将添加到表中。
  1. 可以使用 Arcade 表达式填充新字段。
    1. 单击 Coordinate 字段,然后从字段选项中选择计算
Coordinate 字段选项中的“计算”选项。
  1. 计算字段:Coordinate 窗口中,选择 Arcade
  2. Arcade 计算器:Coordinate 窗口的表达式框中,输入以下 Arcade 表达式:
//return the geometry of the feature
var poly = Geometry($feature);

var result = "";
//return the centroid of the polygon feature
if (!IsEmpty(poly)) {
    var pnt_centr = Centroid(poly);
    Console(pnt_centr);    
    result = "(" + Round(pnt_centr.X, 2) + ", " + Round(pnt_centr.Y, 2) + ")";
}
//return the result
return result
  1. 单击确定
“Arcade 计算器”窗口中的 Arcade 表达式。

Coordinate 字段填充了面要素质心的坐标。 坐标的单位遵循地图的坐标系。

Coordinate 字段将填充质心的坐标。

或者,要以十进制度为单位计算坐标,请在表达式框中使用以下 Arcade 表达式:

function MetersToLatLon(mx, my) {
    var originShift = 2.0 * PI * 6378137.0 / 2.0;
    var lon = (mx / originShift) * 180.0;
    var lat = (my / originShift) * 180.0;

    lat = 180.0 / PI * (2.0 * Atan( Exp( lat * PI / 180.0)) - PI / 2.0);
    return [lat, lon];
}
var poly = Geometry($feature);
var result = "";
if (!IsEmpty(poly)) {
    var pnt_centr = Centroid(poly);
    var latlon = MetersToLatLon(pnt_centr.x, pnt_centr.y);
    result = "(" + Round(latlon[0], 6) + ", " + Round(latlon[1], 6) + ")";
} else {
    result = "";
}
return result

Lat_Long 字段填充了以十进制度为单位的面要素质心的坐标。

以十进制度为单位的坐标填充 Lat_Long 字段。

文章 ID: 000028324

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项