java geom_Java Geometry空间几何数据的处理应用

先了解几个基本概念,有助于了解本文应用场景

地理信息系统GIS-百度百科

地理信息系统(Geographic Information System或 Geo-Information system,GIS)有时又称为“地学信息系统”。它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统

ArcGIS平台

ArcGIS产品线为用户提供一个可伸缩的,全面的GIS平台。ArcObjects包含了许多的可编程组件,从细粒度的对象(例如单个的几何对象)到粗粒度的对象(例如与现有ArcMap文档交互的地图对象)涉及面极广,这些对象为开发者集成了全面的GIS功能。

Geometry数据类型

Geometry是一种空间几何数据类型,常用于描述空间几何信息,例如坐标点、线、面、三维信息等。

也就是说,GIS一般使用Geometry数据类型来存储及展示地理信息。

常见的支持Geometry的数据库有Oracle、SqlServer、Mysql、PostgreSQL

Sql-Server中支持的Geometry文档以及Sql-Server中可选择的地理数据类型如图

应用场景示例

5e9c9131d75e

如图,该应用主要为使用ArcGIS做地理信息系统,使用SqlServer作为空间数据库,使用Java搭建后台服务处理数据,使用JS的Vue结合ArcGIS的API做前端的渲染,成功的将地理信息高亮标识在地图上

本文关注点:使用java对Geometry数据进行处理,附带对arcgis系统一些简单使用说明 简单描述一个gis应用系统的处理流程

1. 使用ArcGIS创建地理数据库,发布GIS服务

数据库和 ArcGIS Enterprise

如何注册数据库到 ArcGIS Server 站点

发布地图服务

通过以上的文档,我们可以创建一个地理数据库,并将数据库通过arcgis进行连接,发布为一个Restful服务

访问该接口,如图

5e9c9131d75e

image.png

那这个接口提供了那些功能呢?

支持的操作大概如下:

Supported Operations: Query Apply Edits Add Features Update Features Delete Features Calculate Validate SQL Generate Renderer Return Updates Iteminfo Thumbnail Metadata

由ArcGIS提供的这些服务,我们可以以可视化的方式,对空间地理信息进行查询及展示

后面我们将做进一步的说明

2. 空间数据以及WKT熟知文本

好的,我们有了数据库,也有了arcgis提供的服务,现在该如何新增空间数据呢?

先通过WKT了解下空间数据Geometry大概长什么样

WKT,是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。它的二进制表示方式,亦即WKB(well-known binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。

WKT可以表示的几何对象包括:点,线,多边形,TIN(不规则三角网)及多面体。可以通过几何集合的方式来表示不同维度的几何对象。

几何物体的坐标可以是2D(x,y),3D(x,y,z),4D(x,y,z,m),加上一个属于线性参照系统的m值。

以下为几何WKT字串样例:

POINT(6 10)

LINESTRING(3 4,10 50,20 25)

POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))

MULTIPOINT(3.5 5.6, 4.8 10.5)

MULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))

MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),((6 3,9 2,9 4,6 3)))

GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))

POINT ZM (1 1 5 60)

POINT M (1 1 80)

POINT EMPTY

MULTIPOLYGON EMPTY

到这里我们清楚了,所谓空间数据就是一个或一组坐标,这个坐标或坐标组有类型(POINT点LINESTRING线POLYGON面),通过这些坐标,GIS系统可以完整地定位查询绘制这些坐标信息

3. 向空间数据库插入数据

那数据库

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以使用JTS(Java Topology Suite)库来解析MySQL中的Geometry数据类型。JTS是一个开源的Java库,用于处理空间数据,支持OGC(Open Geospatial Consortium)标准,提供了一系列构建和操作空间数据的工具。 要在Java中解析MySQL中的Geometry数据类型,可以通过以下步骤实现: 1. 首先,需要在Java项目中引入JTS库的依赖,例如使用Maven管理依赖的项目可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.vividsolutions</groupId> <artifactId>jts</artifactId> <version>1.13</version> </dependency> ``` 2. 在Java中读取MySQL中的Geometry数据类型,例如WKB格式的数据,可以使用JTS提供的WKBReader类,示例代码如下: ```java import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.io.WKBReader; import java.sql.ResultSet; import java.sql.SQLException; public class GeometryParser { public Geometry parseGeometry(ResultSet resultSet, String columnName) throws SQLException { byte[] wkb = resultSet.getBytes(columnName); WKBReader reader = new WKBReader(); try { return reader.read(wkb); } catch (com.vividsolutions.jts.io.ParseException e) { throw new SQLException("Failed to parse geometry", e); } } } ``` 3. 解析完成后,可以使用JTS提供的Geometry类的方法来操作空间数据,例如获取几何对象的坐标,示例代码如下: ```java Geometry geometry = geometryParser.parseGeometry(resultSet, "geom"); Coordinate[] coordinates = geometry.getCoordinates(); ``` 通过以上步骤,就可以在Java中解析MySQL中的Geometry数据类型了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值