1、导入依赖
import FeatureLayer from '@arcgis/core/layers/FeatureLayer'
import { geodesicArea, planarArea, simplify } from '@arcgis/core/geometry/geometryEngine';
import { project, load as projectionLoad } from '@arcgis/core/geometry/projection'
2、初始化project
onMounted(() => {projectionLoad()
})
3、计算椭球面积、平面面积
const calculateFeatureLayer = async (featureLayer: FeatureLayer) => {const query = featureLayer.createQuery()query.where = '1 = 1'const result = await featureLayer.queryFeatures(query)let totalGeoArea = 0;let totalPlanarArea = 0;for (const feature of result.features) {if (feature.geometry.type === 'polygon') {let geometry = feature.geometryif (geometry.spatialReference.wkid !== 4326) {geometry = await project(geometry, { wkid: 4326 }) as any}const simplifiedPolygon = simplify(geometry)const geoArea = geodesicArea(simplifiedPolygon, "square-kilometers")totalGeoArea += geoAreaconst projectedGeometry = await project(simplifiedPolygon, { wkid: 3857 }) as anyconst planarAreaResult = planarArea(projectedGeometry, "square-kilometers")totalPlanarArea += planarAreaResult}}console.log("椭球面积(平方千米):", totalGeoArea)console.log("毛面积(平方千米):", totalPlanarArea)}