GIS跟踪监管系统信息查询

简介: GIS跟踪监管系统信息查询

GIS跟踪监管系统

(1)物资查询与展示。

① 几何查询。

• 单击查询:单击单元几何对象,搜索物资单元内存储的物资并展示。

• 拉框查询:在地图上绘制矩形,查询矩形范围内的物资并展示。

• 画圆查询:在地图上绘制圆形,查询圆形范围内的物资并展示。

• 多边形查询:在地图上绘制多边形,查询多边形范围内的物资并展示。

拉框查询、画圆查询、多边形查询通过在地图上绘制矢量几何对象,查询数据库中物资的位置数据,筛选在矢量几何对象内部的物资,显示查询到的物资信息,代码如下:

代码说明:

第一步,通过GetMaterialsPosition接口查询所有物资位置信息;第二步,使用isPointInCircle()函数判断点与圆形的关系,或者使用turf.booleanPointInPolygon()函数(turf是开源空间分析库,其下载地址为https://github.com/Turfjs/turf)判断点与多边形的关系,筛选圆形和多边形内部的物资ID,将符合要求的物资展示在表格中。

② 物资定位。

• 单个物资定位:

在本系统的搜索框中选择单个物资选项,在搜索框输入物资的名称,发送Ajax请求到后台服务,在数据库中查询该物资最新时间的位置信息,客户端地图上加载该物资。

• 多个物资定位:

在本系统的搜索框中选择多个物资选项,在搜索框输入物资的名称,发送Ajax请求到后台服务,在数据库中查询与输入名称匹配的所有物资位置信息,客户端地图上加载该物资。

物资查询通过Search接口实现,后台服务根据参数判断,single-material表示单个物资定位,multiple-material表示多个物资定位。


程序代码为单个物资、多个物资定位代码,其中关键部分的代码如下:

代码说明:materPosFeatureLayer为矢量要素图层组,在图层组中添加Marker标注。Marker注册以下事件:bindTooltip绑定鼠标指针悬浮提示信息;注册click事件,当单击Marker时,以Marker为中心地图缩放至16层级;注册mouseover事件,当鼠标指针悬浮在Marker上时,物资标注高亮显示;注册mouseout事件,当鼠标指针从Marker上移除时,取消物资标注高亮显示。

③ 物资统计。

物资统计是汇总所有仓库中的物资数据以图表的形式展示,实现效果如图

所示,便于直观地了解物资在每一个仓库的存储状况。本系统的物资统计实现代码如下。在工具栏的“仓库”下拉列表中选择“统计信息”选项,激活物资统计功能,在系统界面弹出“统计信息”对话框,显示所有仓库的物资统计信息。在“统计信息”对话框右上角可以根据物资类型、名称、用途、等级等选项进行统计,选择不同的选项会有不同的统计结果

代码说明:ECharts(下载地址为https://github.com/apache/incubator-echarts)是一个使用JavaScript实现的开源可视化库,它提供直观、交互丰富、可高度个性化定制的数据可视化图表,本系统的统计图使用ECharts库实现物资统计图表。在代码中,使用ID为ware-echarts的div作为ECharts图表的容器,通过echarts.init()函数初始化一个ECharts图表,使用myChart.setOption(option, true)函数将图表数据option填充到已初始的myChart图表中。使用GetMaterialsEcharts()函数后台接口获取仓库中物资的统计数据,type参数表示统计类型,使用materialsEchartsOptions()函数将物资的统计数据拼接为ECharts图表需要的option。图

所示的“统计信息”对话框右上角的下拉列表框注册了change事件,当下拉列表框改变时,发送Ajax请求重新获取统计数据,执行myChart.setOption(option, true)函数重绘统计图表。

(2)物资信息更新

。本系统的每一个仓库都可以存储大量的物资,物资的数量是动态变化的,仓库负责人需要对物资在仓库中的变化进行实时操作,合理更新仓库中的物资信息。单击仓库中的单元,可以查看单元存储的物资信息,通过“物资信息”对话框,可以实现物资在该单元中的新增、修改、删除等操作。


“物资信息”对话框使用bootstrap模态框显示,表格使用bootstrap-table实现,当模态框显示时调用TableInit()函数,通过GetMaterialsInfo接口请求物资数据并显示在模态框的表格中,代码如下:

代码说明:通过GetMaterialsInfo接口请求物资数据,请求的参数在oTableInit.queryParams()函数中进行处理,pageSize表示每页需要多少条数据,pageNo表示请求哪一页,keyword用于模糊搜索指定物资,warehouseid表示仓库ID,unitid表示单元ID,materialsId表示物资ID。后台服务根据GetMaterialsInfo接口实现物资分页查询,将物资数据返回前端,使用oTableInit.responseHandler()函数在表格中显示物资数据。

① 新增物资。

单击“物资信息”对话框中的“新增”按钮,弹出“添加物资”对话框,如图7-22所示,添加物资的form表单参数有物资类型、名称、用途、等级等信息。表单填写完成后单击“确认”按钮,通过Ajax请求将物资数据发送至后台服务处理,AddMaterials接口执行SQL语句在数据库中新增一条物资记录,添加成功后刷新物资信息的表格,显示最新物资数据。


目录
相关文章
|
消息中间件 Cloud Native 物联网
深度剖析 RocketMQ 5.0,事件驱动:云时代的事件驱动有啥不同?
本文技术理念的层面了解一下事件驱动的概念。RocketMQ 5.0 在面向云时代的事件驱动架构新推出的子产品 EventBridge,最后再结合几个具体的案例帮助大家了解云时代的事件驱动方案。
79569 6
ubuntu22.04安装QQ音乐
ubuntu22.04 下安装QQMusic
1391 0
|
消息中间件 存储 算法
RocketMQ 重试机制详解及最佳实践
本文主要介绍在使用 RocketMQ 时为什么需要重试与兜底机制,生产者与消费者触发重试的条件和具体行为,如何在 RocketMQ 中合理使用重试机制,帮助构建弹性,高可用系统的最佳实践。
1734 0
RocketMQ 重试机制详解及最佳实践
|
JavaScript
如何在Vue中使用第三方库?
如何在Vue中使用第三方库?
339 1
|
9月前
|
存储 监控 安全
RFID固定资产管理
RFID(射频识别)技术为现代企业固定资产管理提供了创新解决方案。相比传统人工管理方式,RFID技术通过标签与阅读器实现资产快速、精准识别,大幅提升管理效率与准确性。它在资产采购、入库、日常管理、盘点及折旧报废等环节均有广泛应用,帮助企业降低丢失率、优化资源配置并增强竞争力。尽管存在成本和技术标准等挑战,但随着物联网、大数据等技术融合,RFID固定资产管理将更智能化,助力企业高质量发展。
|
存储 数据可视化 项目管理
RNA-seq 差异分析的细节详解 (5)
RNA-seq 差异分析的细节详解 (5)
RNA-seq 差异分析的细节详解 (5)
|
5月前
|
Ubuntu 安全 Unix
Linux和Ubuntu有什么区别
综上所述,Linux和Ubuntu之间存在明显的区别。Linux是一种操作系统内核,而Ubuntu是基于Linux内核的发行版本,具有更好的易用性、社区支持和软件仓库。用户可以根据自己的需求选择不同的Linux发行版本,如果需要一个稳定、易于使用的桌面环境,Ubuntu是一个不错的选择。如果需要更加灵活和定制性强的系统,其他Linux发行版本可能更加适合。
|
数据采集 开发者 Python
小说爬取练习
通过Python的requests和BeautifulSoup4库爬取小说网站内容,详细说明爬取步骤和代码实现。
小说爬取练习
|
存储 Java
抽象类与抽象方法
抽象类和抽象方法是面向对象编程中的重要概念。抽象类不能被实例化,主要用于定义子类的通用接口或行为。抽象方法是在抽象类中声明但未实现的方法,要求子类必须实现这些方法。这种方式有助于构建灵活且可扩展的代码结构。
359 2
|
智能硬件
华为鸿蒙操作系统有哪些应用场景?
华为鸿蒙操作系统有哪些应用场景?
3919 1

热门文章

最新文章