gpt4 book ai didi

java - 将纬度和经度( double )数据转换为字节数组,以便将其作为 java 中的 Geometry 或 GeometryCollection 值存储在 mySql 中

转载 作者:行者123 更新时间:2023-11-29 18:27:22 24 4
gpt4 key购买 nike

我的要求是存储从 java 服务器 上的移动网络服务获取的纬度和经度坐标(Double 数据类型值),并将其存储在 mySQL 数据库中作为 Geometry几何集合数据类型。我使用以下查询之一创建了该表:

CREATE TABLE `mydb`.`location`(    
`coords` GEOMETRYCOLLECTION);

CREATE TABLE `mydb`.`location`(
`coords` GEOMETRY);

在我的项目内的 NetBeans 中,我创建了一个实体来存储从 Web 服务到数据库的值。当我在数据库中为表创建实体时,数据库中的 coords 列被逆向工程为实体中的 byte[] (因为 几何/几何集合是数据库中的blob

从客户端设备(比如说移动设备),我将纬度经度作为Double值从webService获取到我的>java服务器类似:

lati:  21.0826801  lng:  80.2707184

现在我需要将那些Double坐标值转换为byte[],这样它看起来应该像一个空间数据来自以下 3 个查询之一:

查询类型 1:

INSERT INTO location VALUES (geomfromwkb(point(9.197915773, 45.476819539)));

查询类型 2:

INSERT INTO location VALUES (geometrycollection(point(9.197915773, 45.476819539)));

查询类型 3:

INSERT INTO location VALUES (geomcollfromwkb(point(9.197915773, 45.476819539)));

我怎样才能实现它?很抱歉这篇文章很长,我已经在网络上进行了搜索,包括堆栈溢出,但没有找到与我当前场景相关的内容。

最佳答案

第一个和第三个给你一个“点”,如通过所示

mysql> select ASTEXT(geomfromwkb(point(9.197915773, 45.476819539)));
+-------------------------------------------------------+
| ASTEXT(geomfromwkb(point(9.197915773, 45.476819539))) |
+-------------------------------------------------------+
| POINT(9.197915773 45.476819539) |
+-------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select ASTEXT(geometrycollection(point(9.197915773, 45.476819539)));
+--------------------------------------------------------------+
| ASTEXT(geometrycollection(point(9.197915773, 45.476819539))) |
+--------------------------------------------------------------+
| GEOMETRYCOLLECTION(POINT(9.197915773 45.476819539)) |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select ASTEXT(geomcollfromwkb(point(9.197915773, 45.476819539)));
+-----------------------------------------------------------+
| ASTEXT(geomcollfromwkb(point(9.197915773, 45.476819539))) |
+-----------------------------------------------------------+
| POINT(9.197915773 45.476819539) |
+-----------------------------------------------------------+
1 row in set (0.01 sec)

我认为不需要byte[]

关于java - 将纬度和经度( double )数据转换为字节数组,以便将其作为 java 中的 Geometry 或 GeometryCollection 值存储在 mySql 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46054006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com