java 操作gis geometry空间类型数据方式

java操作gis geometry类型数据

      最近做的gis方面的业务,所以需要操作postgis中的geometry对象,找了很多的库,比如geotools,但是莫名下载不下来。

还有就是jts,但是不好用,操作起来很复杂。找到了一个其他的类库--geolatte-geom 和geolatte-geojson。

用于操作geometry和String以及json的互相转化。而json和geojson个人理解就是输出格式不同。多了一些geometry特有的属性。

主要用于将String转geometry对象、wkt和wkb方便好用。

pom.xml文件如下



     org.geolatte
     geolatte-geom
     1.6.0

 


     org.geolatte
     geolatte-geojson
     1.6.0

我们在main方法中测试一下

public static void main(String[] args) {
     // 模拟数据库中直接取出的geometry对象值(他是二进制的)
     // WKT 是字符串形式,类似"POINT(1 2)"的形式
     // 所以WKT转 geometry,相当于是字符串转geometry
     // WKB转 geometry,相当于是字节转geometry
     String s="01020000800200000097E5880801845C404D064F3AF4AE36400000000000000000290A915F01845C40DC90B1A051AE36400000000000000000";
     Geometry geo = Wkb.fromWkb(ByteBuffer.from(s));
 
     // geometry对象和WKT输出一致
// Geometry geometry1 = Wkt.fromWkt(wkt);
     System.out.println("-----Geometry------"+geo.getPositionN(1));
     System.out.println("-----wkt------"+ Wkt.toWkt(geo));
     System.out.println("-----wkb------"+Wkb.toWkb(geo));
     }

Geometry空间类型主要有那些如下:

类型 说明 简介 例子
Geometry 间数据 任意一种空间类型
Point 坐标值 POINT(104.00924 30.46872)
LineString 线 线,由一系列点连接而成 LINESTRING(1 1, 1 1, 1 1)
Polygon 多边形 由多条线组成 POLYGON((1 1, 2 2, 3 3, 4 4, 5 5))
MultiPoint 点集合 集合类,包含多个点 MULTIPOINT(1 1, 2 2, 1 1)
MultiLineString 线集合 集合类,包含多条线 MULTILINESTRING((1 1, 2 2), (1 1, 1 1))
MultiPolygon 多边形集合 集合类,包含多个多边形 MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((1 1, 1 1, 1 1, 1 1, 1 1)))
GeometryCollection 空间数据集合 集合类,可以包括多个点、线、多边形 GEOMETRYCOLLECTION(POINT(1 1), POINT(3 3), LINESTRING(1 1, 2 2))

你可能感兴趣的:(geometry,java,java,开发语言)