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

  • 相关阅读:
    go语言学习笔记四(函数、包和错误处理)
    objection内存漫游实战
    脱壳工具FRIDA-DEXDump
    jsdom 用法技巧
    关于adb安装指定版本
    ob混淆
    js原型链hook
    js逆向核心:扣代码2
    ssl_logger捕获得物app双向验证数据
    js逆向核心:扣代码
  • 原文地址:https://www.cnblogs.com/liuslayer/p/13153888.html
Copyright © 2011-2022 走看看