java实现List对象转geojson文本返回前端

1.业务需求

查询带有经纬度数据的list列表,将其转为geojson格式给前端。

2.GeoJson格式说明

GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法(JavaScript Object Notation, 简称JSON)的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面这几种几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。
在这里插入图片描述
在这里插入图片描述

3.JAVA代码实现:

public Map getSectionStringGeojson(DataBaseSection dataBaseSection) {Map map = new HashMap();//查询断面数据List<DataBaseSection> dataBaseSectionList = dataBaseSectionMapper.selectDataBaseSectionListNoGeom(dataBaseSection);if(dataBaseSectionList == null || dataBaseSectionList.size() == 0) {return map;}//使用stream方法,获取dataBaseSectionList中lgtd的最大值和最小值BigDecimal maxLgtd = dataBaseSectionList.stream().map(DataBaseSection::getLgtd).max(BigDecimal::compareTo).get();BigDecimal minLgtd = dataBaseSectionList.stream().map(DataBaseSection::getLgtd).min(BigDecimal::compareTo).get();BigDecimal maxLttd = dataBaseSectionList.stream().map(DataBaseSection::getLttd).max(BigDecimal::compareTo).get();BigDecimal minLttd = dataBaseSectionList.stream().map(DataBaseSection::getLttd).min(BigDecimal::compareTo).get();map.put("maxLgtd", maxLgtd);map.put("minLgtd", minLgtd);map.put("maxLttd", maxLttd);map.put("minLttd", minLttd);//创建一个空的 SimpleFeatureTypeBuilder 对象,并添加属性字段:SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder();builder.setName("Section");builder.add("geometry", Point.class);builder.add("bscd", String.class);builder.add("bscnm", String.class);builder.add("sttp", String.class);builder.add("fcd", String.class);builder.add("ocd", String.class);//使用 SimpleFeatureBuilder 创建一个 SimpleFeatureType 对象:SimpleFeatureType featureType = builder.buildFeatureType();SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(featureType);DefaultFeatureCollection featureCollection = new DefaultFeatureCollection();//遍历查询结果集,将每一行数据转换为一个 SimpleFeature 对象,并将其添加到 SimpleFeatureCollection 中:for(int i = 0; i < dataBaseSectionList.size(); i++) {DataBaseSection obj = dataBaseSectionList.get(i);//存储数据double x = obj.getLgtd().doubleValue();double y = obj.getLttd().doubleValue();// 创建一个 Point 对象GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();Coordinate coordinate = new Coordinate(x, y);Point point = geometryFactory.createPoint(coordinate);// 将坐标和属性数据设置到 SimpleFeature 对象中featureBuilder.add(point);featureBuilder.add(obj.getBscd());featureBuilder.add(obj.getBscnm());featureBuilder.add(obj.getSttp());featureBuilder.add(obj.getFcd());featureBuilder.add(obj.getOcd());SimpleFeature feature = featureBuilder.buildFeature(null);// 将 SimpleFeature 对象添加到 SimpleFeatureCollection 中featureCollection.add(feature);}//使用 FeatureJSON 将 SimpleFeatureCollection 转换为 GeoJSON 字符串:String geojson = "";try {if(featureCollection != null && featureCollection.size() > 0){geojson = new FeatureJSON().toString(featureCollection);}}catch (IOException e){System.out.println("基础断面geojson文件保存异常!");}map.put("geojson", geojson);return map;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/14258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机系统的层次结构

操作系统的定义 操作系统&#xff08;Operating System&#xff0c; OS&#xff09;是指控制和管理整个计算机系统的硬件和软件资源&#xff0c;并合理地组织调度计算机的工作和资源的分配&#xff1b;以提供给用户和其他软件方便的接口和环境&#xff1b;它是计算机系统中最基…

GBase 8s 如何查看回滚的事务 和对应的SQL

描述&#xff1a; 如何查看当前数据库中是否有事务在回滚&#xff0c; 如果有&#xff0c; 具体是哪条 SQL 在回滚&#xff1f; 解决办法&#xff1a; 方法1&#xff1a; 通过 onstat -u|grep RP&#xff1b; 可以获取相关的 sessionid。 通过 onstat -g ses sid 获取 SQL&a…

【多模态融合】Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

论文链接&#xff1a;Cross Modal Transformer: Towards Fast and Robust 3D Object Detection 代码链接&#xff1a;https://github.com/junjie18/CMT 作者&#xff1a;Junjie Yan, Yingfei Liu, Jianjian Sun, Fan Jia, Shuailin Li, Tiancai Wang, Xiangyu Zhang 发表单位…

字符串的周期:每一期都有那么几位

【题目描述】 如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例 如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。 输入一个长度不超过80的字符串(不含空格),输出其最小周期。 输入第一行表示有T组数据,后续是T行字符串。输出的每组…

性能测试工具

性能测试工具 1.Jmeter 环境搭建1.安装JDK2.安装Jmeter1.下载2.安装3.环境配置 3.Jmeter 文件目录介绍1.bin目录2.docs 目录3.printable_docs目录4.lib目录 4.修改默认配置1.汉化配置2.修改主题 5.元件的基本介绍6.元件的作用域作用域的原则 7.元件的执行顺序 1.Jmeter 环境搭建…

Linux基础-目录命令

目录文件命令 一、概述二、文件目录1. 目录信息1. pwd&#xff1a;显示当前目录2. cd &#xff1a;切换目录3. ls&#xff1a;显示目录中的文件信息 2. 操作目录1. mkdir : 创建目录2. rm : 删除目录3. mv : 移动、重命名目录4. cp &#xff1a;拷贝命令 一、概述 这里记录一下…

【Pytorch】16.使用ImageFolder加载自定义MNIST数据集训练手写数字识别网络(包含数据集下载)

数据集下载 MINST_PNG_Training在github的项目目录中的datasets中有MNIST的png格式数据集的压缩包 用于训练的神经网络模型 自定义数据集训练 在前文【Pytorch】13.搭建完整的CIFAR10模型我们已经知道了基本搭建神经网络的框架了&#xff0c;但是其中的数据集使用的torchvision…

Flutter 中的 WidgetInspector 小部件:全面指南

Flutter 中的 WidgetInspector 小部件&#xff1a;全面指南 Flutter 的 WidgetInspector 是一个强大的工具&#xff0c;它允许开发者在运行时检查和操作他们的 widget 树。这在调试复杂的布局和 widget 结构时尤其有用。本文将为您提供一个全面的指南&#xff0c;帮助您了解如…

Excel 按顺序去重再编号

Excel的A有重复数据&#xff1a; A1Cow2Chicken3Horse4Butterfly5Cow 现在要去除重复&#xff0c;用自然数按顺序进行编号&#xff0c;结果写在相邻列&#xff1a; AB1Cow12Chicken23Horse34Butterfly45Cow1 使用 SPL XLL&#xff0c;输入公式并向下拖&#xff1a; spl(&q…

RISC-V压缩指令扩展测试

概述 RISC-V定义了压缩指令扩展&#xff08;compressed instruction-set extension &#xff09;&#xff0c;命名为“C”扩展。压缩指令使用16位宽指令替换32位宽指令&#xff0c;从而减少代码量。这个C扩展可运用在RV32、RV64和RV128指令集上&#xff0c;通常使用“RVC”来表…

Double 4 VR情景实训教学系统在商务洽谈课堂上的应用

随着科技的不断发展&#xff0c;VR&#xff08;虚拟现实&#xff09;技术已经逐渐渗透到各个领域。在商务洽谈课堂上&#xff0c;Double 4 VR情景实训教学系统不仅可以为学生提供身临其境的模拟环境&#xff0c;还可以通过互动和交互式学习方式&#xff0c;增强学生的学习体验和…

贝锐向日葵打造农机设备远程运维支持方案

当物联网“万物互联”的概念向第一产业赋能&#xff0c;农机设备的智能化程度也越来越高。 所谓农业物联网&#xff0c;即在应用层将大量的传感器节点构成监控网络&#xff0c;通过各种传感器采集信息&#xff0c;以帮助农民及时发现问题&#xff0c;并准确地判定发生问题的位…

QT 使用QZipReader 进行文件解压缩

目录 1、QZipReader 概述 2、解压示例 3、说明 1、QZipReader 概述 QZipReader 是一个方便的工具&#xff0c;用于在 Qt 应用程序中解压 ZIP 压缩包。它提供了读取 ZIP 文件的接口&#xff0c;并能提取其中的内容。以下是如何使用 QZipReader 解压 ZIP 文件的示例代码&#…

List、IList、ArrayList 和 Dictionary

List 类型: 泛型类命名空间: System.Collections.Generic作用: List<T> 表示一个强类型的对象列表&#xff0c;可以通过索引访问。提供了搜索、排序和操作列表的方法。特点: 类型安全&#xff0c;性能较好&#xff0c;适用于需要强类型和高效操作的场景。例子: List<…

每日一练 - BGP Keepalive 报文详解

01 真题题目 关于 BGP 的 Keepalive 报文消息的描述,错误的是&#xff1a; A.Keepalive 周期性的在两个 BGP 邻居之间发送 B.缺省情况下,Keepalive 的时间间隔是 180s C.Keepalive 报文主要用于对等路由器间的运行状态和链路的可用性确认 D.Keepalive 报文的组成只包含一个…

Web安全:SQL注入之时间盲注原理+步骤+实战操作

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

ICML2024高分论文!大模型计算效率暴涨至200%,来自中国AI公司

前段时间&#xff0c;KAN突然爆火&#xff0c;成为可以替代MLP的一种全新神经网络架构&#xff0c;200个参数顶30万参数&#xff1b;而且&#xff0c;GPT-4o的生成速度也是惊艳了一众大模型爱好者。 大家开始意识到—— 大模型的计算效率很重要&#xff0c;提升大模型的token…

前端加载excel文件数据 XLSX插件的使用

npm i xlsx import axios from axios; axios //这里用自己封装的http是不行的&#xff0c;踩过坑.get(url,{ responseType: "arraybuffer" }).then((re) > {console.log(re)let res re.datavar XLSX require("xlsx");let wb XLSX.read(r…

黑龙江大学文学院古代文学教研室安家琪副教授

女&#xff0c;生于1990年。兰州大学文学学士、硕士&#xff0c;上海交通大学文学博士&#xff0c;曾赴台湾东华大学交流&#xff0c;研究方向为明清诗文与唐代文学。 在《文艺理论研究》、《苏州大学学报》、《唐史论丛》、《中国社会科学报》等期刊发表论文20余篇&#xff0…

2024年 电工杯 (A题)大学生数学建模挑战赛 | 园区微电网风光储协调优化配置 | 数学建模完整代码解析

DeepVisionary 每日深度学习前沿科技推送&顶会论文&数学建模与科技信息前沿资讯分享&#xff0c;与你一起了解前沿科技知识&#xff01; 本次DeepVisionary带来的是电工杯的详细解读&#xff1a; 完整内容可以在文章末尾全文免费领取&阅读&#xff01; 问题重述…