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)

}
相关推荐
2601_94948006几秒前
Flutter for OpenHarmony音乐播放器App实战11:创建歌单实现
开发语言·javascript·flutter
Mr Xu_4 分钟前
解决 Vue + Axios 热更新导致响应拦截器重复注册的问题
前端·javascript·vue.js
Coder_preston10 分钟前
JavaScript学习指南
开发语言·javascript·ecmascript
Jinuss16 分钟前
源码分析之React中Scheduler调度器的最小二叉堆
javascript·算法·react.js
a11177619 分钟前
电流卡片特效(html网页 开源)
javascript·css·css3
狗都不学爬虫_21 分钟前
JS逆向 -最新版 盼之(decode__1174、ssxmod_itna、ssxmod_itna2)纯算
javascript·爬虫·python·网络爬虫·wasm
天天进步201521 分钟前
透明的可观测性:剖析 Motia Workbench 与插件系统架构
javascript
夏河始溢23 分钟前
一八四、Zustand 状态管理详解、与 Redux、MobX 的对比分析
前端·javascript·react.js·状态管理·zustand
wangmengxxw23 分钟前
设计模式 -详解
开发语言·javascript·设计模式
Code小翊29 分钟前
TypeScript 核心语法速查
前端·javascript·typescript