PIE-engine 教程 ——矢量集合的循环计算使用for循环(中国各省市面积统计)

2024-02-02 08:24:51 浏览数 (1)

上一次我们提到了如何使用map()函数来完成相应的面积统计,本次我们将同样使用for驯化来完成我们所需要的全国各省市面积的统计,

同样我们先看一下获取矢量集合中每一个矢量的位置应该如何获取:

getAt(index)

获得指定编号的Feature对象。

方法参数:

- featureCollection(FeatureCollection)

FeatureCollection实例

- index(Number)

Feature的编号

返回值:Feature

另外,我们用的是矢量集合,而并没有把他转化成geometry形式,所以我们要介绍一下geometry函数,这个函数的功能就是将你的矢量图形进行几何化,方便用于计算面积

geometry(maxError,proj,geodesic)

返回给定要素在给定投影下的几何形状。

方法参数:

- feature(Feature)

Feature实例

- maxError(MaxError)

未启用

- proj(Project)

坐标系,默认为WGS84

- geodesic(Boolean)

未启用

返回值:Geometry

代码:

代码语言:javascript复制
/**
 * @File    :   map-05-FeatureCollection循环计算_使用for循环
 * @Time    :   2022/3/1
 * @Author  :   piesat
 * @Version :   1.0
 * @Contact :   400-890-0662
 * @License :   (C)Copyright 航天宏图信息技术股份有限公司
 * @Desc    :   FeatureCollection使用for循环
 */

var ftrCol = pie.FeatureCollection("NGCC/CHINA_PROVINCE_BOUNDARY");
print("ftrCol", ftrCol);
for (i = 0; i <= 34; i  ) {
    var province = ftrCol.getAt(i).get("name");
    var geometry = ftrCol.getAt(i).geometry();
    var area = geometry.area().divide(1000000);
    print(province, area);
}
Map.addLayer(ftrCol, { color: "ff0000", fillColor: "00000000" }, "ftrCol");
Map.setCenter(118, 39.7, 3);

大家可以发现,这里我们如果使用for循环你必须知道你的矢量集合中有多少个个数,这样才能进行下一步操作,而使用map()的过程中不需要这个环节。

0 人点赞