上一次我们提到了如何使用map()函数来完成相应的面积统计,本次我们将同样使用for驯化来完成我们所需要的全国各省市面积的统计,
(930条消息) PIE-engine 教程 ——矢量集合的循环计算使用map()映射函数(中国各省市面积统计)_此星光明的博客-CSDN博客
同样我们先看一下获取矢量集合中每一个矢量的位置应该如何获取:
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
代码:
/** * @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()的过程中不需要这个环节。