JTS-WKT格式输入输出使用说明(十六)

本文介绍了如何使用org.locationtech.jts.io.wkt进行WKT(Well-known Text)格式的操作,包括读取和写入。WKT是一种表示几何对象的文本格式,支持点、线、面等多种几何类型。示例代码展示了WKTReader、WKTFileReader和WKTWriter的用法,用于从字符串和文件中读取WKT,并将其转换回Geometry对象,以及将Geometry对象输出为WKT格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

org.locationtech.jts.io.wkt 使用说明

示例代码库
对WKT格式的数据的输入输出操作,WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。

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 EMPTY

MULTIPOLYGON EMPTY

OGC标准Simple Feature Access - Part 1: Common Architecture

WKT 相关操作使用说明

说明

涉及WKTConstants、WKTFileReader、WKTReader、WKTWriter四个类

操作示例

WKTReader提供了read方法。

在这里插入图片描述


WKTFileReader提供了对文件的读取,依赖WKTReader。

在这里插入图片描述


WKTWriter将Geometry输出WKT格式

在这里插入图片描述

package com.leokok.jts.learning.jts.core.io;

import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.ParseException;
import org.locationtech.jts.io.WKTFileReader;
import org.locationtech.jts.io.WKTReader;
import org.locationtech.jts.io.WKTWriter;

import java.io.File;
import java.io.IOException;
import java.util.List;

/**
 * WKT数据格式操作使用说明
 */
public class WKTTest {

    public static void main(String[] args) throws IOException, ParseException {
        //根据wkt string串读取
        WKTReader wktReader = new WKTReader();
        Geometry pointWkt = wktReader.read("POINT(6 10 2)");
        System.out.println(pointWkt);

        //根据文件读取WKT
        WKTFileReader wktFileReader = new WKTFileReader(new File(WKTTest.class.getResource("/").getPath()+"/wkt/wkt.wkt"), wktReader);
        List<Geometry> geometryList = wktFileReader.read();

        for(Geometry geometry : geometryList){
            System.out.println(geometry);
        }

        //输出
        WKTWriter wktWriter = new WKTWriter(3); //如果不输入3在输出的时候会忽略Z输出
        System.out.println(wktWriter.write(geometryList.get(0)));
        System.out.println(wktWriter.writeFormatted(geometryList.get(0))); //最后加 \n 换行符

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值