# 天津智慧农业系统 **Repository Path**: alfalee_admin/Smart-Agricultural-Management ## Basic Information - **Project Name**: 天津智慧农业系统 - **Description**: cesium+vue2 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-05-16 - **Last Updated**: 2024-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 天津智慧农业系统 ## 一、项目介绍 本项目参考天津市智慧农业产业试验田相关数据,结合GIS应用,技术栈为cesium+vue2,通过地图标注、图表(ECharts)与空间分析等方式,实时监控试验田各个监测点的水质情况,为科学指导农业规划提供及时的可视化展示。 ## 二、主要功能模块 ## (一)测量模块 在屏幕中拾取对应点位置,将屏幕坐标转换为地理坐标,再根据地球椭球参数进行几何解算,获取地理空间距离、空间面积。 **(1)距离量测** * 鼠标左键Cesium.ScreenSpaceEventType.LEFT_CLICK单击开始绘制点并获取其坐标,并监听鼠标移动Cesium.ScreenSpaceEventType.MOUSE_MOVE动态捕捉鼠标移动状态,只要点击了两个点后鼠标右键Cesium.ScreenSpaceEventType.RIGHT_CLICK结束事件就获取两点的屏幕坐标,将其转为笛卡尔空间直角坐标,然后转成WGS-84。利用WGS-84椭球体得出两点的距离,若是多线则以后一点与前一点为一段线分别测量后整合。 **(2)面积量测:** * 鼠标事件同距离测量思路采集标记点并监听鼠标移动,但面积计算需要结合turf.js进行平面面积的计算turf.area(多边形坐标点经纬度数组) ![输入图片说明](src/assets/screen/%E6%B5%8B%E9%87%8F.gif) ## (二)水质模块(echarts) (1)在线调取水质化学耗氧量数据情况,并通过echarts实现可视化。 (2)点击水质监测后可以通过查看详情flyto到标记点并弹窗弹出编辑点信息。(同监控模块实现原理) ![输入图片说明](src/assets/screen/%E5%9C%A8%E7%BA%BF%E5%88%86%E6%9E%90%E4%BB%AA.gif) ## (三)监控模块 (1)创建cesiumContainer容器。在script标签内添加cesiumContainer容器 (2)添加标记点。首先要添加点位数据,然后把点位信息标记在地图上 (3)axios获取标记点的监控数据并返回JSON格式数据。 (4)添加弹窗。添加单击事件,点击标记的点位弹出相应的信息框 (5)控制弹窗位置。实现原理:实时同步笛卡尔坐标(地图坐标)和画布(canvas)坐标,让网页元素始终保持在地图坐标的某个点上。 * Cesium.Cartesian3.fromDegrees()经纬度转为世界坐标 * viewer.scene.postRender 方法实时更新位置 * 实时位置转化为屏幕坐标 ![输入图片说明](src/assets/screen/%E6%91%84%E5%83%8F%E5%A4%B4.gif)