C++ GDALRasterizeLayers,带所有触摸和属性选项

C++ GDALRasterizeLayers,带所有触摸和属性选项,c++,gdal,C++,Gdal,我正在使用GDALRasterizeLayers栅格化河流和湖泊网络。当我使用ALL_TOUCHED选项时,每个像素都会被烧掉。但是使用属性选项(燃烧每个特征的id)时,河流的某些像素丢失。我尝试使用这两个选项,但它给了我与属性相同的结果 vector<OGRLayer*> layers; layers.push_back(rivieres_datasource->GetLayer(0)); layers.push_back(lacs_datasource->GetLay

我正在使用GDALRasterizeLayers栅格化河流和湖泊网络。当我使用ALL_TOUCHED选项时,每个像素都会被烧掉。但是使用属性选项(燃烧每个特征的id)时,河流的某些像素丢失。我尝试使用这两个选项,但它给了我与属性相同的结果

vector<OGRLayer*> layers;
layers.push_back(rivieres_datasource->GetLayer(0));
layers.push_back(lacs_datasource->GetLayer(0));

char** options = nullptr;

options = CSLSetNameValue(options, "ALL_TOUCHED", "TRUE");
options = CSLSetNameValue(options, "ATTRIBUTE", "ID");

GDALRasterizeLayers(dst_dataset, 1, &band_list[0], 2, (OGRLayerH*)&layers[0], NULL, NULL, NULL, options, NULL, NULL);

CSLDestroy(options);
矢量层;
layers.push_back(rivieres_数据源->GetLayer(0));
layers.push_back(lacs_数据源->GetLayer(0));
char**options=nullptr;
选项=CSLSetNameValue(选项“全部触摸”、“真实”);
选项=CSLSetNameValue(选项,“属性”、“ID”);
GDALRasterizeLayers(dst_数据集,1,&band_列表[0],2,(OGRLayerH*)和层[0],空,空,空,空,选项,空,空);
CSLDestory(选项);
两个选项都可以使用吗?谢谢


(很抱歉我英语不好,我是法裔加拿大人)

两种选择都应该有效。如果河流的某些像素没有光栅化,那可能是一个bug。有,但它是由GDAL 1.9.0固定的。您使用的是什么版本?我使用的是1.10.0版。我已经用我使用的文件创建了一个演示。它创建了3个文件,都是包含所有像素的_touch.tif。缺少像素的ATTRIBUTE.tif和所有的_toucted _和_ATTRIBUTE.tif应该是正常的,但事实并非如此。感谢osgeo的凯尔!他找到了解决办法,事实上,一切都很顺利。这是MapWindows的显示问题。如何将此标记为“解决”?