arcgis js统计FeatureLayer的椭球面积、平面面积

1、导入依赖

sql 复制代码
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

sql 复制代码
onMounted(() => {
  // 第一步:加载投影引擎
  projectionLoad()
})

3、计算椭球面积、平面面积

sql 复制代码
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.geometry

      // 坐标系转换
      if (geometry.spatialReference.wkid !== 4326) {
        geometry = await project(geometry, { wkid: 4326 }) as any
      }

      // 简化多边形
      const simplifiedPolygon = simplify(geometry)

      // 椭球面积
      const geoArea = geodesicArea(simplifiedPolygon, "square-kilometers")
      totalGeoArea += geoArea

      // 平面面积
      const projectedGeometry = await project(simplifiedPolygon, { wkid: 3857 }) as any
      const planarAreaResult = planarArea(projectedGeometry, "square-kilometers")
      totalPlanarArea += planarAreaResult
    }
  }

  console.log("椭球面积(平方千米):", totalGeoArea)
  console.log("毛面积(平方千米):", totalPlanarArea)

}
相关推荐
楠楠子呀1 小时前
英语、西语、阿语客户各开一个口:多语言获客的分流方案
开发语言·javascript·ecmascript·跨境电商·whatsapp·营销工具
半个落月1 小时前
LangGraph.js 实战:从状态图到分支、循环、检查点与人工中断
javascript·人工智能·langchain
默_笙4 小时前
🧀 让大模型的答案"流"出来:NestJS AI 模块 + SSE + RxJS 实战
javascript·人工智能
mbshqqb4 小时前
TypeScript基础教程之同步生成器
前端·javascript·typescript
尤水就下5 小时前
🔥预热:在线文档的 block 架构是如何实现的(未完待续...)
前端·javascript·架构
全栈项目管理程序猿5 小时前
ArcGIS JS 基础教程(29):CSVLayer 表格点位图层
前端·javascript
骑着蜗牛撵大象3276 小时前
豆包 Seed 驱动的记账智能体:从拍票抽取到月报生成的全链路落地记录
java·前端·javascript·结构化输出·豆包seed·多模态识别·记账系统
溪语流沙6 小时前
【Web全栈进阶】前端世界观:现代工具链与框架为什么存在
前端·javascript·vue.js
kyriewen6 小时前
我逐个测了 JSON.stringify 的 7 个坑:第 1 个就在丢数据
前端·javascript·程序员
song5017 小时前
React Native for OpenHarmony 实战:三方库 react-native-ratings 的鸿蒙化适配指南
javascript·react native·react.js·分类·harmonyos