当前位置: 首页 > news >正文

openlayers结合turf geojson面获取面积和中心点

在 OpenLayers 中绘制 GeoJSON 面要素并计算面积和中心点,可以结合 OpenLayers 的 ol/format/GeoJSON 模块将 GeoJSON 数据转换为 OpenLayers 的 Feature,然后使用 Turf.js 进行计算。示例代码如下

import Map from 'ol/Map';
import View from 'ol/View';
import { Tile as TileLayer } from 'ol/layer';
import OSM from 'ol/source/OSM';
import { Vector as VectorLayer } from 'ol/layer';
import VectorSource from 'ol/source/Vector';
import GeoJSON from 'ol/format/GeoJSON';
import * as turf from '@turf/turf';

// 创建地图
const map = new Map({
  target: 'map',
  layers: [new TileLayer({ source: new OSM() })],
  view: new View({
    center: [0, 0],
    zoom: 2
  })
});

// 创建一个 GeoJSON 面要素
const geojson = {
  type: 'Feature',
  geometry: {
    type: 'Polygon',
    coordinates: [
      [
        [116.39, 39.91],
        [116.41, 39.91],
        [116.41, 39.93],
        [116.39, 39.93],
        [116.39, 39.91]
      ]
    ]
  }
};

// 将 GeoJSON 转换为 OpenLayers Feature
const vectorSource = new VectorSource({
  features: new GeoJSON().readFeatures(geojson, {
    featureProjection: 'EPSG:4326'
  })
});

const vectorLayer = new VectorLayer({ source: vectorSource });
map.addLayer(vectorLayer);

// 使用 Turf.js 计算面积和中心点
const polygon = turf.polygon(geojson.geometry.coordinates);
const area = turf.area(polygon);
const center = turf.center(polygon);

console.log('面积:', area.toFixed(2) + ' 平方米');
console.log('中心点:', center.geometry.coordinates);

相关文章:

  • redis存取list集合
  • 腿足机器人之十三-强化学习PPO算法
  • 【AI+智造】用DeepSeek分析设备温度、振动、速度、加速度量化数据:南通制造业数字化转型的“智能引擎” ——基于设备全生命周期管理的开源技术方案
  • 光谱相机的市场发展趋势
  • AWS ALB 实现灰度验证指南:灵活流量分配与渐进式发布
  • Maven的传递性、排除依赖、生命周期、插件
  • 【随手笔记】RTthread软件占用资源记录
  • 阻塞赋值和非阻塞赋值
  • Rust中的异步编程:构建简单的网页爬虫
  • 多通道数据采集和信号生成的模块化仪器如何重构飞机电子可靠性测试体系?
  • 数字化赋能:制造业如何突破低效生产的瓶颈?
  • 光流法处理水流:原理与应用
  • 本地部署DeepSeek全攻略:Ollama+Chatbox保姆级教程
  • 如何使用Python编程实现捕获笔记本电脑麦克风的音频并通过蓝牙耳机实时传输
  • BIO、NIO、AIO解析
  • 【AI学习从零至壹】Numpy基础知识
  • 鸿蒙 ArkUI 实现敲木鱼小游戏
  • 2025年跟上AI新时代:带AI人工智能的蜜罐系统T-Pot
  • 介绍下pdf打印工具类 JasperPrint
  • 使用Apifox动态生成请求参数
  • 昆廷·斯金纳:作为“独立自主”的自由
  • 俄乌互相空袭、莫斯科机场关闭,外交部:当务之急是避免局势紧张升级
  • 央行、证监会:科技创新债券含公司债券、企业债券、非金融企业债务融资工具等
  • 五一多城楼市火热:北京新房网签量同比翻倍,上海热门楼盘认购接连触发积分
  • 无人机穿越大理崇圣寺千年古塔时“炸机”,当地:肇事者已找到,将被追责
  • 宋涛就许历农逝世向其家属致唁电