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)

}
相关推荐
matlab_xiaowang3 小时前
Redux 入门:JavaScript 可预测状态管理库
开发语言·javascript·其他·ecmascript
前端摸鱼匠4 小时前
Vue 3 的v-bind合并行为:讲解v-bind与普通属性合并的规则
前端·javascript·vue.js·前端框架·ecmascript
REDcker5 小时前
浏览器端Web程序性能分析与优化实战 DevTools指标与工程清单
开发语言·前端·javascript·vue·ecmascript·php·js
Linsk6 小时前
Java和JavaScript的关系真是雷峰和雷峰塔的关系吗?
java·javascript·oracle
当时只道寻常6 小时前
浏览器文本复制到剪贴板:企业级最佳实践
javascript
Alice-YUE8 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
是上好佳佳佳呀9 小时前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记
莎士比亚的文学花园9 小时前
Linux驱动开发(3)——设备树
开发语言·javascript·ecmascript
01漫游者10 小时前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript
threelab12 小时前
Three.js 代码云效果 | 三维可视化 / AI 提示词
开发语言·javascript·人工智能