zoukankan      html  css  js  c++  java
  • 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是原始多边形

  • 相关阅读:
    poj1019——log10求位数
    poj2084——卡特兰数
    hdoj1023——卡特兰数
    poj1496——组合数学
    poj1850——组合数学
    bestcoder#29 1002 矩阵连乘快速幂解fib数列
    bestcoder#28 1002 dfs
    poj1458——dp,lcs
    hduoj1106
    codeforces#296div2_b 字符串,图
  • 原文地址:https://www.cnblogs.com/liuslayer/p/13153888.html
Copyright © 2011-2022 走看看