使用OGR判断像素中心是否在多边形内时出错
Error using OGR to figure out if a pixel center is inside a polygon
我正在尝试开发(使用c++ - MSVS 12.0)一个函数,该函数发现哪些像素(来自光栅图像)在多边形(以前使用shapefile填充)内具有其中心。我使用GDAL 1.11.0(刚刚安装,使用devinstall)从源代码构建,并使用选项INCLUDE_OGR_FRMTS=YES。我可以毫无问题地使用GDAL和大多数OGR函数。但是,当我使用以下代码时:
if (polygon->Contains(tmpPoint))
我收到错误信息: error 6: GEOS support not enabled
有人知道怎么解决这个问题吗?
我用:
#include "ogrsf_frmts.h"
和我的函数声明:
void FindPixels(GDALDataset *image, OGRLayer *poLayer, OGRPolygon *polygon)
我的部分代码是:
OGRPoint *tmpPoint = NULL
OGRSpatialReference *spatialReference = NULL;
spatialReference = polygon->getSpatialReference();
tmpPoint = new OGRPoint();
tmpPoint->assignSpatialReference(spatialReference);
循环开始:
tmpPoint->setX(imgTLX + (j * imgRes) + imgResHalf);
tmpPoint->setY(imgTLY - (i * imgRes) - imgResHalf);
if (polygon->Contains(tmpPoint))
提前感谢!
MB
使用GDALRasterizeLayers将多边形图像刻录到栅格上。这样你就可以找到所有的像素落入多边形,或者不落入多边形。默认值是只在中心与多边形相交时烧掉像素。
如果源层有多个多边形,您可能需要通过设置属性过滤器或使用烧掉的属性ID字段来区分它们(尽管如果多边形重叠,这将不起作用)
- 访问者访问变体并返回不同类型时出错
- 在Linux for Windows上编译C++代码时出错
- 读取文件的最后一行并输入到链接列表时出错
- 重载操作程序时出错>>用于类中的字符串 memebr
- 调用专用模板时出错"no matching function for call to [...]"
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 在Google Kick start中提交时出错
- 在c++中访问int到类对象的映射时出错
- 分段错误当我试图运行程序时出错
- 使用dynamic_cast和构造函数时出错
- CHECK(调用)函数在Google Colab中出错
- 用pybind11包装C++抽象类时出错
- 计算缩放多边形的比例,得到给定的多边形面积
- 为x86而非x64编译时出错
- 从R调用C++函数并对其进行集成时出错
- 这个函数哪里出错了
- 将QGraphicsItem的移动区域限制在多边形区域内
- 访问boost::几何体多边形中的点数据时出错
- 使用OGR判断像素中心是否在多边形内时出错