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是原始多边形

  • 相关阅读:
    决策树算法系列之一 ID3
    线性递归数列算法题
    Python爬虫快速上手教程
    gensim快速上手教程
    GCN和GCN在文本分类中应用
    命名实体如何进行概念消歧?
    浅谈神经网络中的激活函数
    nginx安装配置和基本使用
    netty学习总结(三)
    netty学习总结(二)
  • 原文地址:https://www.cnblogs.com/liuslayer/p/13153888.html
Copyright © 2011-2022 走看看