java gdal polygon_gdal笔记之获取矢量面边界点坐标

有时候我们需要获得矢量边界的空间坐标,然后把它转化为行列坐标,例如使用GDALWarp实现裁剪的时候。​下面的代码就是把空间坐标下的矢量多边形转化为行列坐标的矢量多边形。

OGRPolygon* aoiPolygon = (OGRPolygon*)aoiGeometry;

OGRLinearRing* boundary =

aoiPolygon->getExteriorRing();

OGRPolygon* pPolygon =

(OGRPolygon*)OGRGeometryFactory::createGeometry(wkbPolygon);

int pointcount =

boundary->getNumPoints();

OGRLinearRing* pRing =

(OGRLinearRing*)OGRGeometryFactory::createGeometry(wkbLinearRing);

for (int i = 0; i < pointcount;

i++)

{

double gx

=

boundary->getX(i);

double gy

=

boundary->getY(i);

int row =

static_cast((gy - srcGeotransform[3]) /

srcGeotransform[5]);

int col =

static_cast((gx - srcGeotransform[0]) /

srcGeotransform[1]);

OGRPoint

pt;

pt.setX(col);  pt.setY(row);

pRing->addPoint(&pt);

}

pRing->closeRings();

pPolygon->addRing(pRing);

OGRGeometry* cutGeometry =

(OGRGeometry*)pPolygon;​

注:aoiGeometry是原始多边形

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值