我試圖開發(使用C++ - MSVS 12.0)一個函數,發現哪些像素(從光柵圖像)有一個多邊形內的中心(先前使用shapefile填充)。我使用GDAL 1.11.0(剛剛安裝,使用devinstall)從源代碼編譯並使用選項INCLUDE_OGR_FRMTS = YES。我可以毫無問題地使用GDAL和大部分OGR函數。然而,當我使用下面的代碼:錯誤使用OGR來弄清楚像素中心是否在一個多邊形內
if (polygon->Contains(tmpPoint))
我收到錯誤消息:錯誤6:GEOS支持未啓用
任何人知道如何解決這個問題?
我使用:
#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
似乎GEOS庫還沒有被編譯進去。如果啓用了GEOS變量(FLAGS,LIB等)並且路徑是正確的,你有沒有檢查VC makefile?另外,如果您一直在修改某些選項,則可能需要進行全面清理並重新編譯。 – fedemp
你是對的!由於GEOS lib不支持使用MSVS 2013(v12)構建圖書館,因此我遇到了問題。 – user3468473