WKT和Geometry

1、wkt简介

WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。它的二进制表示方式,亦即WKB(well-known-binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。WKT可以表示的几何对象包括:点,线,多边形,TIN(不规则三角网)及多面体。以下为几何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

2、geometry

geometry为Arcgis中的几何对象,包括Extent、Multipoint、Point 、Polygon 、Polyline。

3.实例

//lng(经度),lat(纬度)
存点
try {
    String geoStr = "POINT(" + prjLogbook.getLng() + " " + prjLogbook.getLat() + ")";
    Geometry geom = null;
    geom = new WKTReader(new GeometryFactory(new PrecisionModel(), 4326)).read(geoStr);
        prjLogbook.setGeom(geom);
    } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

存不规则闭合面
//面的坐标点必须首位相连
StringBuffer sbBuffer = new StringBuffer();
String wkt = sbBuffer.append("MULTIPOLYGON((("+simpGeomPoints+")))").toString();
//WKT转Geometry
WKTReader wktReader = new WKTReader();          
Geometry geometry = null;
try {
    geometry = wktReader.read(wkt);
    geometry.setSRID(4326);
} catch (com.vividsolutions.jts.io.ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
};
System.out.println("wkt=="+wkt);
/*
*打印结果
*wkt=MULTIPOLYGON(((106.076314 32.753701,106.071810 32.757590,106.071679 32.758162,106.071541 32.758767,106.076314 32.753701)))
*/
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值