Java中使用JTS实现WKB数据写入、转换字符串、读取

场景

Java中使用JTS实现WKT字符串读取转换线、查找LineString的list中距离最近的线、LineString做缓冲区扩展并计算点在缓冲区内的方位角:

Java中使用JTS实现WKT字符串读取转换线、查找LineString的list中距离最近的线、LineString做缓冲区扩展并计算点在缓冲区内的方位角_jts工具类-CSDN博客

WKB介绍

WKB(Well-Known Binary) 用二进制流 描述几何对象信息。

WKB比WKT的优势在于WKB是二进制,主要是解决传输和存储的效率问题,

所以MySQL,Postgre数据存储Geometry类型的数据,存储的值是WKB格式的

WKB 使用 1 字节无符号整数、4 字节无符号整数和 8 字节双精度数(IEEE 754 格式)。一个字节是八位。

Mysql中查询存储WKB值示例:

SELECT hex(st_asbinary(st_geomfromtext('POINT(1 2)')))

注:

博客:
霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客

实现

1、WKB相关操作api

2、WKB输出数据并转换为字符串

        GeometryFactory geometryFactory = new GeometryFactory();Point point1 = geometryFactory.createPoint(new Coordinate(112.11,2225.21));WKBWriter wkbWriter = new WKBWriter();byte[] write = wkbWriter.write(point1);String hex = WKBWriter.toHex(write);System.out.println(hex);

以上结果输出:

0000000001405C070A3D70A3D740A1626B851EB852

3、WKB数据读取

        WKBReader wkbReader = new WKBReader();Geometry geometry = null;try {geometry = wkbReader.read(write);} catch (ParseException e) {e.printStackTrace();}System.out.println(geometry.toText());

完整示例:

        //WKB输出数据GeometryFactory geometryFactory = new GeometryFactory();Point point1 = geometryFactory.createPoint(new Coordinate(112.11,2225.21));WKBWriter wkbWriter = new WKBWriter();byte[] write = wkbWriter.write(point1);String hex = WKBWriter.toHex(write);System.out.println(hex);//0000000001405C070A3D70A3D740A1626B851EB852WKBReader wkbReader = new WKBReader();Geometry geometry = null;try {geometry = wkbReader.read(write);} catch (ParseException e) {e.printStackTrace();}System.out.println(geometry.toText());//POINT (112.11 2225.21)


 

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

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

相关文章

从Maven初级到高级

一.Maven简介 Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具。 一个 Maven 工程有约定的目录结构,约定的目录结构对于 Maven 实现自动化构建而言是必不可少的一环,就拿自动编译来说,Maven 必须 能…

python调用DALL·E绘画

实现用gpt的api和他对话后,我们试着调用DALLE的api进行绘画 参考文档 OpenAI API 运行代码 from openai import OpenAIclient OpenAI()user_prompt input("请输入您想生成的图片描述: ")response client.images.generate(model"dall-e-3"…

分享70个Java源码总有一个是你想要的

分享70个Java源码总有一个是你想要的 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 源码下载链接:https://pan.baidu.com/s/1uyWfeUuO_4jRbAEw825qRw?pwd6666 提取码:6666 项目名称 CRUD is ReallyU…

电商数据之巅:挖掘无限价值的蓝海

在数字时代的大潮中,数据已成为新的黄金和石油,尤其在电商领域。电商平台每天都在产生海量的数据,这些数据不仅是对消费者行为的记录,更是隐藏着无限的商机和价值。本文将带你走进电商数据的神奇世界,探寻其无尽可能的…

Go 泛型发展史与基本介绍

Go 泛型发展史与基本介绍 Go 1.18版本增加了对泛型的支持,泛型也是自 Go 语言开源以来所做的最大改变。 文章目录 Go 泛型发展史与基本介绍一、为什么要加入泛型?二、什么是泛型三、泛型的来源四、为什么需要泛型五、Go 泛型设计的简史六、泛型语法6.1 …

实战篇:一文讲清楚商品分析之返货品画像分析怎么做

01 什么是商品画像,怎样进行分析 “用户画像对于小伙伴们来说并不陌生,那有小伙伴知道商品画像吗?其实它和用户画像一样,可以简单理解成是商品海量数据的标签。”   商品画像的意义在于可以对商品进行精准的定位,让不…

探索人工智能 | 计算机视觉 让计算机打开新灵之窗

前言 计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。 文章目录 前言…

重生奇迹mu翅膀合成

在重生奇迹mu中,合成翅膀需要准备好翅膀碎片、宝石、羽毛、强化精华等材料,而其中不同翅膀合成要求的材料和数量略有不同。以下是一般合成翅膀的步骤: 1.首先,需要在背包中准备好所有的合成材料。如果缺少任何一种材料&#xff0…

Node.js安装部署

Node.js安装部署 在 Windows 上安装 Node.js1.使用安装程序2.使用包管理器 Chocolatey 安装 在 macOS 上安装 Node.js1.使用 Homebrew 安装 在 Linux 上安装 Node.js1.使用包管理器安装2.使用 Node.js 官方二进制包 安装完成验证 Node.js 是一个基于 Chrome V8 引擎的 JavaScri…

实验一传统的结构化的软件工程方法、实验二面向对象的软件工程、实验三软件测试

背景: 实验一 传统的结构化的软件工程方法 1实验目的 了解传统的软件工程方法的基本原理,掌握软件生命周期的全过程依次划分为需求分析、总体设计、详细设计、编码、测试、维护等几个重要阶段。每个阶段所要完成的任务以及提交的文档。 2实验内容 …

【LeetCode:2828. 判别首字母缩略词 | 模拟遍历】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

腾讯云服务器root登录(轻量应用服务器)

Ubuntu 系统如何使用 root 用户登录实例? Ubuntu 系统的默认用户名是 ubuntu,并在安装过程中默认不设置 root 账户和密码。您如有需要,可在设置中开启允许 root 用户登录。具体操作步骤如下: 1. 使用 ubuntu 账户登录轻量应用服…

基于Java+SpringBoot+vue+element疫情物资捐赠分配系统设计和实现

基于JavaSpringBootvueelement疫情物资捐赠分配系统设计和实现 🍅 作者主页 系统定制开发 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 文章目录 基于JavaSpringBootvueelement疫情物资捐赠…

Blazor 混合开发_MAUI+Vue_WPF+Vue

MAUI+Vue 混合开发 背景混合开发的核心为什么必须使用 wwwroot 文件夹放置 Web 项目文件 创建 MAUI 项目创建 wwwroot 文件夹服务注册创建 _import.razor添加 Main.razor 组件修改 MainPage.xaml 文件 创建 WPF 项目创建 wwwroot 文件夹服务注册创建 _import.razor添…

【算法设计与分析】——动态规划算法

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

【ps】新手 学 PS一本通

第一章 添加图像边框 1. 导入一张图片 2.选择 图像-画布大小 例:原图:720x820 填写画布大小:820x920 可以增加一个100x100的边框。 画布扩展颜色是扩展的颜色。 标尺工具 视图>标尺 或者使用 CTRL R 网格工具 视图-显示-网格 …

机器视觉系统选型-图像对比度

对于一个视觉系统来说,“黑白分明”的图像才是好图像。 选择适合的灯源, 使图像中待测特征反差最大化。

Pytorch项目,肺癌检测项目之一

项目目的:输入人体躯干的三维CT扫描作为输入数据,如果存在肿瘤,希望输出疑似恶性肿瘤的位置。 项目背景:发现处于早期的肺癌对病人生存率有巨大影响,但很难大规模进行。审查CT数据的工作必须由训练有素的专家进行&…

C# NPOI导出dataset----Excel绘制Chart图表

仅限XLSX 2007以后版本(2007之前版本不支持) 1、判断文件夹是否存在,不存在则创建 //Application.StartupPath当前项目根目录 if (!Directory.Exists(Application.StartupPath "\Excel")) { …

点击筛选框动态增加 多条可输入Table列 以及通过操作数组改造数据

点击筛选框动态增加 多条可输入Table列 以及通过操作数组改造数据 <el-col :span"8" class"tab_group"><el-form-item label"动态筛选"><el-select v-model.trim"ruleForm.flowType" placeholder"请选择" …