zoukankan      html  css  js  c++  java
  • 应用缓冲区方法进行多边形Union

    有时候我们需要将多个相邻的多边形合并成一个多边形,常规用法是使用union方法,将其合并,当待合并的多边形个数较多时,效率就会非常的低,这里我们可以使用计算缓冲区的方法进行处理,效率会提升很多。


    待合并多边形

    合并结果图

    代码:

    //蓝色多边形
    char* szWKT_1 = "POLYGON ((113.885 22.6815, 113.9425 22.6585, 113.91 22.7, 113.885 22.6815))";
    //橙色多边形
    char* szWKT_2 = "POLYGON ((113.91 22.7, 113.9425 22.6585, 113.9675 22.689, 113.91 22.7))";
    OGRGeometry* pGeom_1 = NULL;
    OGRGeometry* pGeom_2 = NULL;
    OGRGeometryFactory::createFromWkt(&szWKT_1, NULL, &pGeom_1);
    OGRGeometryFactory::createFromWkt(&szWKT_2, NULL, &pGeom_2);
    OGRMultiPolygon* pMultiPolygon = (OGRMultiPolygon*)OGRGeometryFactory::createGeometry(wkbMultiPolygon);
    pMultiPolygon->addGeometryDirectly(pGeom_1);
    pMultiPolygon->addGeometryDirectly(pGeom_2);
    //用Buffer替代Union,缓冲距离设置为0
    //pUnion为紫色多边形
    OGRGeometry* pUnion = pMultiPolygon->Buffer(0);
  • 相关阅读:
    20181205关于android动态权限管理的总结与思考。
    pixel2坑
    Picasso遇到的坑
    集成主流框架搭建项目
    outdoor-youwin
    利用scatter()绘制颜色映射的二次方曲线
    一个有意义的Day类
    [Hadoop] Yarn & k8s
    hadoop 操作
    yarn 图形化监控
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/12862522.html
Copyright © 2011-2022 走看看