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)

}
相关推荐
秋田君4 小时前
深入理解JavaScript设计模式之命令模式
javascript·设计模式·命令模式
风吹落叶花飘荡6 小时前
2025 Next.js项目提前编译并在服务器
服务器·开发语言·javascript
yanlele6 小时前
我用爬虫抓取了 25 年 6 月掘金热门面试文章
前端·javascript·面试
烛阴7 小时前
WebSocket实时通信入门到实践
前端·javascript
草巾冒小子7 小时前
vue3实战:.ts文件中的interface定义与抛出、其他文件的调用方式
前端·javascript·vue.js
DoraBigHead7 小时前
你写前端按钮,他们扛服务器压力:搞懂后端那些“黑话”!
前端·javascript·架构
前端世界8 小时前
鸿蒙UI开发全解:JS与Java双引擎实战指南
javascript·ui·harmonyos
@Dream_Chaser8 小时前
uniapp ruoyi-app 中使用checkbox 无法选中问题
前端·javascript·uni-app
上单带刀不带妹9 小时前
JavaScript中的Request详解:掌握Fetch API与XMLHttpRequest
开发语言·前端·javascript·ecmascript
ningmengjing_9 小时前
在 PyCharm 中安装并配置 Node.js 的指南
开发语言·javascript·ecmascript