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.pswp.cn/diannao/14258.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14258.shtml
英文地址,請注明出處:http://en.pswp.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; 問題重述…