java向gis数据库读写数据_java – PostGIS数据库中Geography Polygon的读取点

我的目标:从我的PostGIS数据库中存储的地理多边形读取点.

PostGIS手册有a great example如何从数据库中提取多边形.

PGgeometry geom = (PGgeometry)r.getObject(1);

if (geom.getType() == Geometry.POLYGON ) {

Polygon pl = (Polygon)geom.getGeometry();

for (int r = 0; r < pl.numRings(); r++) {

LinearRing rng = pl.getRing(r);

System.out.println("Ring: " + r);

for (int p = 0; p < rng.numPoints(); p++ ) {

Point pt = rng.getPoint(p);

System.out.println("Point: " + p);

System.out.println(pt.toString());

}

}

}

我正在处理地理,但不是Geometry,所以这段代码对我来说并不适用.如果我尝试从我的表中提取多边形,我得到以下ClassCastException:

org.postgresql.util.PGobject cannot be cast to org.postgis.PGgeometry

我修改了前两行看起来像这样,它的工作原理如下:

PGobject area = (PGobject)rs.getObject("area");

if (area.getType().compareTo("geography") == 0) {

...

}

我现在的问题是我无法弄清楚如何修改代码示例的第三行以适用于Geography.我可能不应该把它转换为Polygon类型,因为那是Geometry,但是它是否与Geography相当?我知道地理学只是部分支持很多东西,所以我不确定我能做什么或不能做什么.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值