上一次我们提到了如何使用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()的过程中不需要这个环节。