How to generate triangulation file via QGIS C++ APIHow to address the new “Task-Completed” QgsMessageBar in Python?grass algorithms no longer run in QGIS/SextanteHow to find out Why a QGIS plugin is rejected for Version 2QGIS 2.0 Python API: Layer vector style loaded from file, marker symbology is respected, labels are notGenerate delaunay triangulation from 3D(x,y,z) pointsPyQgis - How to update a spatial index?Keep up to date a cpp-plugin(windows) for QGIS with less effortOn the flow generated Symbols in QGIS (2.14), FunctionPyQGIS interpolation classes and triangulation file without interpolation rasterUnequally spaced points along a line script - QGIS Python error trying to add integer attribute

Is it "common practice in Fourier transform spectroscopy to multiply the measured interferogram by an apodizing function"? If so, why?

How can a day be of 24 hours?

Is it a bad idea to plug the other end of ESD strap to wall ground?

Could the museum Saturn V's be refitted for one more flight?

Why is it a bad idea to hire a hitman to eliminate most corrupt politicians?

What is required to make GPS signals available indoors?

Why are UK visa biometrics appointments suspended at USCIS Application Support Centers?

Why didn't Boeing produce its own regional jet?

Spam email "via" my domain, but SPF record exists

How does a dynamic QR code work?

When handwriting 黄 (huáng; yellow) is it incorrect to have a disconnected 草 (cǎo; grass) radical on top?

How to compactly explain secondary and tertiary characters without resorting to stereotypes?

How to aggregate categorical data in R?

Were days ever written as ordinal numbers when writing day-month-year?

Is this draw by repetition?

What is the most common color to indicate the input-field is disabled?

Finding the reason behind the value of the integral.

Processor speed limited at 0.4 Ghz

How could sorcerers who are able to produce/manipulate almost all forms of energy communicate over large distances?

Inclusion symbol

How to install cross-compiler on Ubuntu 18.04?

How badly should I try to prevent a user from XSSing themselves?

Did 'Cinema Songs' exist during Hiranyakshipu's time?

What historical events would have to change in order to make 19th century "steampunk" technology possible?



How to generate triangulation file via QGIS C++ API


How to address the new “Task-Completed” QgsMessageBar in Python?grass algorithms no longer run in QGIS/SextanteHow to find out Why a QGIS plugin is rejected for Version 2QGIS 2.0 Python API: Layer vector style loaded from file, marker symbology is respected, labels are notGenerate delaunay triangulation from 3D(x,y,z) pointsPyQgis - How to update a spatial index?Keep up to date a cpp-plugin(windows) for QGIS with less effortOn the flow generated Symbols in QGIS (2.14), FunctionPyQGIS interpolation classes and triangulation file without interpolation rasterUnequally spaced points along a line script - QGIS Python error trying to add integer attribute













4















I created a plugin few years ago in Python. The plugin uses QGIS interpolation and works for QGIS 2.18. But because the QGIS interpolation creates raster (grid) and I need only Triangulation (TIN as lines) I checked the QGIS code and call function int QgsTinInterpolator::interpolatePoint( double x, double y, double &result, QgsFeedback * ) via PyQGIS.



The Python code for 2.18 QGIS API:



ld_layer = QgsInterpolator.LayerData()
ld_layer.vectorLayer = layer
ld_layer.zCoordInterpolation = False
ld_layer.interpolationAttribute = index
ld_layer.mInputType = 1

ld2_layer = QgsInterpolator.LayerData()
ld2_layer.vectorLayer = layer2
ld2_layer.zCoordInterpolation = False
ld2_layer.interpolationAttribute = index
ld2_layer.mInputType = 1

itp = QgsTINInterpolator(lds)
itp.setExportTriangulationToFile(True)

itp.setTriangulationFilePath(self.path)

rect = lds[0].vectorLayer.extent()

current_y_value = rect.yMaximum() - self.resolution / 2.0
current_x_value = rect.xMinimum() + self.resolution / 2.0
itp.interpolatePoint(current_x_value, current_y_value)


I created LayerData objects and then I called setExportTriangulationToFile(True) and setTriangulationFilePath(self.path).
After calling itp.interpolatePoint(current_x_value, current_y_value) the Triangulation filed was created. It is because of the void QgsTinInterpolator::initialize() function. This function is inside the qgstininterpolator.cpp and because it is private function I can't call that function via PyQGIS API, so I decided call interpolatePoint() which calls initialize() if initialization is not configured.



But now mainly because of in the plugin there is a performance need and because I am really interesting in exploring the world of C/C++ I decided few months ago learn C++ and rewrite the plugin. There are some changes in API:



  • there is no setExportTriangulationToFile(True)

  • there is no setTriangulationFilePath(self.path)

  • instead of there is setTriangulationSink(QgsFeatureSink)

So I started hacking with QGIS and I wrote some code in C++:



QgsVectorLayer *exp5Layer = new QgsVectorLayer("/home/username/Downloads/data/testing_data/exp_q5_1.shp", "exp_q5", "ogr");
QgsVectorLayer *exp20Layer = new QgsVectorLayer("/home/username/Downloads/data/testing_data/exp_q20_1.shp", "exp_q20", "ogr");

const int index = 0;
QgsInterpolator::LayerData ld5;
QgsInterpolator::LayerData ld20;

ld5.source = exp5Layer;
ld5.interpolationAttribute = index;
ld5.sourceType = QgsInterpolator::SourceType::SourceStructureLines;
ld5.valueSource = QgsInterpolator::ValueSource::ValueZ;

ld20.source = exp20Layer;
ld20.interpolationAttribute = index;
ld20.sourceType = QgsInterpolator::SourceType::SourceStructureLines;
ld20.valueSource = QgsInterpolator::ValueSource::ValueZ;

QList<QgsInterpolator::LayerData> lds;
lds.append(ld5);
lds.append(ld20);

QgsTinInterpolator *itp = new QgsTinInterpolator(lds);

QgsWkbTypes::Type wkbType = exp5Layer->wkbType();
QgsFields fields = exp5Layer->fields();
QgsVectorLayer *sink = new QgsVectorLayer("/home/username/Downloads/data/testing_data/triangulation.shp", "triangulation", "ogr");
itp->setTriangulationSink(sink);

double current_y_value = rect.yMaximum() - 0.1 / 2.0;
double current_x_value = rect.xMinimum() + 0.1 / 2.0;
double interpolatedValue;
QgsFeedback *feedback = new QgsFeedback();

itp->interpolatePoint(current_x_value, current_y_value, interpolatedValue, feedback);
sink->~QgsVectorFileWriter();


The code is pretty similiar to Python code but of course there are changes in the API of QGIS 3.7. But the problem is the triangulation file (triangulation.shp) is created but there are not features.



It is because in bool DualEdgeTriangulation::saveTriangulation( QgsFeatureSink *sink, QgsFeedback *feedback ) const function in DualEdgeInterpolation.cpp there is a cycle (at line 2997) and because of mHalfEdge.size() == 0 addFeature function sink->addFeature( edgeLineFeature, QgsFeatureSink::FastInsert ); (at line 3031) is not called).



There is no error and triangulation file is created but without features. If I run interpolation from the QGIS GUI with same parameters the triangulation file is created with features correctly.



Is there any problem with new API (like more changes that I didn't notice) or there is any other problem? I can't figure why mHalfEdge is empty.



I continued with the investigating the problem and I found there was some big changes in QgsTINInterpolator::initialize() function (commit). Maybe this can lead to solution or some clue.










share|improve this question




























    4















    I created a plugin few years ago in Python. The plugin uses QGIS interpolation and works for QGIS 2.18. But because the QGIS interpolation creates raster (grid) and I need only Triangulation (TIN as lines) I checked the QGIS code and call function int QgsTinInterpolator::interpolatePoint( double x, double y, double &result, QgsFeedback * ) via PyQGIS.



    The Python code for 2.18 QGIS API:



    ld_layer = QgsInterpolator.LayerData()
    ld_layer.vectorLayer = layer
    ld_layer.zCoordInterpolation = False
    ld_layer.interpolationAttribute = index
    ld_layer.mInputType = 1

    ld2_layer = QgsInterpolator.LayerData()
    ld2_layer.vectorLayer = layer2
    ld2_layer.zCoordInterpolation = False
    ld2_layer.interpolationAttribute = index
    ld2_layer.mInputType = 1

    itp = QgsTINInterpolator(lds)
    itp.setExportTriangulationToFile(True)

    itp.setTriangulationFilePath(self.path)

    rect = lds[0].vectorLayer.extent()

    current_y_value = rect.yMaximum() - self.resolution / 2.0
    current_x_value = rect.xMinimum() + self.resolution / 2.0
    itp.interpolatePoint(current_x_value, current_y_value)


    I created LayerData objects and then I called setExportTriangulationToFile(True) and setTriangulationFilePath(self.path).
    After calling itp.interpolatePoint(current_x_value, current_y_value) the Triangulation filed was created. It is because of the void QgsTinInterpolator::initialize() function. This function is inside the qgstininterpolator.cpp and because it is private function I can't call that function via PyQGIS API, so I decided call interpolatePoint() which calls initialize() if initialization is not configured.



    But now mainly because of in the plugin there is a performance need and because I am really interesting in exploring the world of C/C++ I decided few months ago learn C++ and rewrite the plugin. There are some changes in API:



    • there is no setExportTriangulationToFile(True)

    • there is no setTriangulationFilePath(self.path)

    • instead of there is setTriangulationSink(QgsFeatureSink)

    So I started hacking with QGIS and I wrote some code in C++:



    QgsVectorLayer *exp5Layer = new QgsVectorLayer("/home/username/Downloads/data/testing_data/exp_q5_1.shp", "exp_q5", "ogr");
    QgsVectorLayer *exp20Layer = new QgsVectorLayer("/home/username/Downloads/data/testing_data/exp_q20_1.shp", "exp_q20", "ogr");

    const int index = 0;
    QgsInterpolator::LayerData ld5;
    QgsInterpolator::LayerData ld20;

    ld5.source = exp5Layer;
    ld5.interpolationAttribute = index;
    ld5.sourceType = QgsInterpolator::SourceType::SourceStructureLines;
    ld5.valueSource = QgsInterpolator::ValueSource::ValueZ;

    ld20.source = exp20Layer;
    ld20.interpolationAttribute = index;
    ld20.sourceType = QgsInterpolator::SourceType::SourceStructureLines;
    ld20.valueSource = QgsInterpolator::ValueSource::ValueZ;

    QList<QgsInterpolator::LayerData> lds;
    lds.append(ld5);
    lds.append(ld20);

    QgsTinInterpolator *itp = new QgsTinInterpolator(lds);

    QgsWkbTypes::Type wkbType = exp5Layer->wkbType();
    QgsFields fields = exp5Layer->fields();
    QgsVectorLayer *sink = new QgsVectorLayer("/home/username/Downloads/data/testing_data/triangulation.shp", "triangulation", "ogr");
    itp->setTriangulationSink(sink);

    double current_y_value = rect.yMaximum() - 0.1 / 2.0;
    double current_x_value = rect.xMinimum() + 0.1 / 2.0;
    double interpolatedValue;
    QgsFeedback *feedback = new QgsFeedback();

    itp->interpolatePoint(current_x_value, current_y_value, interpolatedValue, feedback);
    sink->~QgsVectorFileWriter();


    The code is pretty similiar to Python code but of course there are changes in the API of QGIS 3.7. But the problem is the triangulation file (triangulation.shp) is created but there are not features.



    It is because in bool DualEdgeTriangulation::saveTriangulation( QgsFeatureSink *sink, QgsFeedback *feedback ) const function in DualEdgeInterpolation.cpp there is a cycle (at line 2997) and because of mHalfEdge.size() == 0 addFeature function sink->addFeature( edgeLineFeature, QgsFeatureSink::FastInsert ); (at line 3031) is not called).



    There is no error and triangulation file is created but without features. If I run interpolation from the QGIS GUI with same parameters the triangulation file is created with features correctly.



    Is there any problem with new API (like more changes that I didn't notice) or there is any other problem? I can't figure why mHalfEdge is empty.



    I continued with the investigating the problem and I found there was some big changes in QgsTINInterpolator::initialize() function (commit). Maybe this can lead to solution or some clue.










    share|improve this question


























      4












      4








      4


      2






      I created a plugin few years ago in Python. The plugin uses QGIS interpolation and works for QGIS 2.18. But because the QGIS interpolation creates raster (grid) and I need only Triangulation (TIN as lines) I checked the QGIS code and call function int QgsTinInterpolator::interpolatePoint( double x, double y, double &result, QgsFeedback * ) via PyQGIS.



      The Python code for 2.18 QGIS API:



      ld_layer = QgsInterpolator.LayerData()
      ld_layer.vectorLayer = layer
      ld_layer.zCoordInterpolation = False
      ld_layer.interpolationAttribute = index
      ld_layer.mInputType = 1

      ld2_layer = QgsInterpolator.LayerData()
      ld2_layer.vectorLayer = layer2
      ld2_layer.zCoordInterpolation = False
      ld2_layer.interpolationAttribute = index
      ld2_layer.mInputType = 1

      itp = QgsTINInterpolator(lds)
      itp.setExportTriangulationToFile(True)

      itp.setTriangulationFilePath(self.path)

      rect = lds[0].vectorLayer.extent()

      current_y_value = rect.yMaximum() - self.resolution / 2.0
      current_x_value = rect.xMinimum() + self.resolution / 2.0
      itp.interpolatePoint(current_x_value, current_y_value)


      I created LayerData objects and then I called setExportTriangulationToFile(True) and setTriangulationFilePath(self.path).
      After calling itp.interpolatePoint(current_x_value, current_y_value) the Triangulation filed was created. It is because of the void QgsTinInterpolator::initialize() function. This function is inside the qgstininterpolator.cpp and because it is private function I can't call that function via PyQGIS API, so I decided call interpolatePoint() which calls initialize() if initialization is not configured.



      But now mainly because of in the plugin there is a performance need and because I am really interesting in exploring the world of C/C++ I decided few months ago learn C++ and rewrite the plugin. There are some changes in API:



      • there is no setExportTriangulationToFile(True)

      • there is no setTriangulationFilePath(self.path)

      • instead of there is setTriangulationSink(QgsFeatureSink)

      So I started hacking with QGIS and I wrote some code in C++:



      QgsVectorLayer *exp5Layer = new QgsVectorLayer("/home/username/Downloads/data/testing_data/exp_q5_1.shp", "exp_q5", "ogr");
      QgsVectorLayer *exp20Layer = new QgsVectorLayer("/home/username/Downloads/data/testing_data/exp_q20_1.shp", "exp_q20", "ogr");

      const int index = 0;
      QgsInterpolator::LayerData ld5;
      QgsInterpolator::LayerData ld20;

      ld5.source = exp5Layer;
      ld5.interpolationAttribute = index;
      ld5.sourceType = QgsInterpolator::SourceType::SourceStructureLines;
      ld5.valueSource = QgsInterpolator::ValueSource::ValueZ;

      ld20.source = exp20Layer;
      ld20.interpolationAttribute = index;
      ld20.sourceType = QgsInterpolator::SourceType::SourceStructureLines;
      ld20.valueSource = QgsInterpolator::ValueSource::ValueZ;

      QList<QgsInterpolator::LayerData> lds;
      lds.append(ld5);
      lds.append(ld20);

      QgsTinInterpolator *itp = new QgsTinInterpolator(lds);

      QgsWkbTypes::Type wkbType = exp5Layer->wkbType();
      QgsFields fields = exp5Layer->fields();
      QgsVectorLayer *sink = new QgsVectorLayer("/home/username/Downloads/data/testing_data/triangulation.shp", "triangulation", "ogr");
      itp->setTriangulationSink(sink);

      double current_y_value = rect.yMaximum() - 0.1 / 2.0;
      double current_x_value = rect.xMinimum() + 0.1 / 2.0;
      double interpolatedValue;
      QgsFeedback *feedback = new QgsFeedback();

      itp->interpolatePoint(current_x_value, current_y_value, interpolatedValue, feedback);
      sink->~QgsVectorFileWriter();


      The code is pretty similiar to Python code but of course there are changes in the API of QGIS 3.7. But the problem is the triangulation file (triangulation.shp) is created but there are not features.



      It is because in bool DualEdgeTriangulation::saveTriangulation( QgsFeatureSink *sink, QgsFeedback *feedback ) const function in DualEdgeInterpolation.cpp there is a cycle (at line 2997) and because of mHalfEdge.size() == 0 addFeature function sink->addFeature( edgeLineFeature, QgsFeatureSink::FastInsert ); (at line 3031) is not called).



      There is no error and triangulation file is created but without features. If I run interpolation from the QGIS GUI with same parameters the triangulation file is created with features correctly.



      Is there any problem with new API (like more changes that I didn't notice) or there is any other problem? I can't figure why mHalfEdge is empty.



      I continued with the investigating the problem and I found there was some big changes in QgsTINInterpolator::initialize() function (commit). Maybe this can lead to solution or some clue.










      share|improve this question
















      I created a plugin few years ago in Python. The plugin uses QGIS interpolation and works for QGIS 2.18. But because the QGIS interpolation creates raster (grid) and I need only Triangulation (TIN as lines) I checked the QGIS code and call function int QgsTinInterpolator::interpolatePoint( double x, double y, double &result, QgsFeedback * ) via PyQGIS.



      The Python code for 2.18 QGIS API:



      ld_layer = QgsInterpolator.LayerData()
      ld_layer.vectorLayer = layer
      ld_layer.zCoordInterpolation = False
      ld_layer.interpolationAttribute = index
      ld_layer.mInputType = 1

      ld2_layer = QgsInterpolator.LayerData()
      ld2_layer.vectorLayer = layer2
      ld2_layer.zCoordInterpolation = False
      ld2_layer.interpolationAttribute = index
      ld2_layer.mInputType = 1

      itp = QgsTINInterpolator(lds)
      itp.setExportTriangulationToFile(True)

      itp.setTriangulationFilePath(self.path)

      rect = lds[0].vectorLayer.extent()

      current_y_value = rect.yMaximum() - self.resolution / 2.0
      current_x_value = rect.xMinimum() + self.resolution / 2.0
      itp.interpolatePoint(current_x_value, current_y_value)


      I created LayerData objects and then I called setExportTriangulationToFile(True) and setTriangulationFilePath(self.path).
      After calling itp.interpolatePoint(current_x_value, current_y_value) the Triangulation filed was created. It is because of the void QgsTinInterpolator::initialize() function. This function is inside the qgstininterpolator.cpp and because it is private function I can't call that function via PyQGIS API, so I decided call interpolatePoint() which calls initialize() if initialization is not configured.



      But now mainly because of in the plugin there is a performance need and because I am really interesting in exploring the world of C/C++ I decided few months ago learn C++ and rewrite the plugin. There are some changes in API:



      • there is no setExportTriangulationToFile(True)

      • there is no setTriangulationFilePath(self.path)

      • instead of there is setTriangulationSink(QgsFeatureSink)

      So I started hacking with QGIS and I wrote some code in C++:



      QgsVectorLayer *exp5Layer = new QgsVectorLayer("/home/username/Downloads/data/testing_data/exp_q5_1.shp", "exp_q5", "ogr");
      QgsVectorLayer *exp20Layer = new QgsVectorLayer("/home/username/Downloads/data/testing_data/exp_q20_1.shp", "exp_q20", "ogr");

      const int index = 0;
      QgsInterpolator::LayerData ld5;
      QgsInterpolator::LayerData ld20;

      ld5.source = exp5Layer;
      ld5.interpolationAttribute = index;
      ld5.sourceType = QgsInterpolator::SourceType::SourceStructureLines;
      ld5.valueSource = QgsInterpolator::ValueSource::ValueZ;

      ld20.source = exp20Layer;
      ld20.interpolationAttribute = index;
      ld20.sourceType = QgsInterpolator::SourceType::SourceStructureLines;
      ld20.valueSource = QgsInterpolator::ValueSource::ValueZ;

      QList<QgsInterpolator::LayerData> lds;
      lds.append(ld5);
      lds.append(ld20);

      QgsTinInterpolator *itp = new QgsTinInterpolator(lds);

      QgsWkbTypes::Type wkbType = exp5Layer->wkbType();
      QgsFields fields = exp5Layer->fields();
      QgsVectorLayer *sink = new QgsVectorLayer("/home/username/Downloads/data/testing_data/triangulation.shp", "triangulation", "ogr");
      itp->setTriangulationSink(sink);

      double current_y_value = rect.yMaximum() - 0.1 / 2.0;
      double current_x_value = rect.xMinimum() + 0.1 / 2.0;
      double interpolatedValue;
      QgsFeedback *feedback = new QgsFeedback();

      itp->interpolatePoint(current_x_value, current_y_value, interpolatedValue, feedback);
      sink->~QgsVectorFileWriter();


      The code is pretty similiar to Python code but of course there are changes in the API of QGIS 3.7. But the problem is the triangulation file (triangulation.shp) is created but there are not features.



      It is because in bool DualEdgeTriangulation::saveTriangulation( QgsFeatureSink *sink, QgsFeedback *feedback ) const function in DualEdgeInterpolation.cpp there is a cycle (at line 2997) and because of mHalfEdge.size() == 0 addFeature function sink->addFeature( edgeLineFeature, QgsFeatureSink::FastInsert ); (at line 3031) is not called).



      There is no error and triangulation file is created but without features. If I run interpolation from the QGIS GUI with same parameters the triangulation file is created with features correctly.



      Is there any problem with new API (like more changes that I didn't notice) or there is any other problem? I can't figure why mHalfEdge is empty.



      I continued with the investigating the problem and I found there was some big changes in QgsTINInterpolator::initialize() function (commit). Maybe this can lead to solution or some clue.







      qgis pyqgis qgis-3 interpolation c++






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited yesterday







      Bulva

















      asked 2 days ago









      BulvaBulva

      293112




      293112




















          1 Answer
          1






          active

          oldest

          votes


















          1














          I continue with going through the code and it is not a bug but change in the API (and mainly my fault) which leads to the problems with triangulation.



          In python there is zCoordInterpolation = False property but in the new API there is an enumeration so instead of ValueZ (which I wrongly set up) you need set up the different value from enumeration (of course based on your data). So in the C++ it is ValueAttribute (in my specific case):



          layerDataVariable.valueSource = QgsInterpolator::ValueSource::ValueAttribute;





          share|improve this answer























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "79"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f317268%2fhow-to-generate-triangulation-file-via-qgis-c-api%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            I continue with going through the code and it is not a bug but change in the API (and mainly my fault) which leads to the problems with triangulation.



            In python there is zCoordInterpolation = False property but in the new API there is an enumeration so instead of ValueZ (which I wrongly set up) you need set up the different value from enumeration (of course based on your data). So in the C++ it is ValueAttribute (in my specific case):



            layerDataVariable.valueSource = QgsInterpolator::ValueSource::ValueAttribute;





            share|improve this answer



























              1














              I continue with going through the code and it is not a bug but change in the API (and mainly my fault) which leads to the problems with triangulation.



              In python there is zCoordInterpolation = False property but in the new API there is an enumeration so instead of ValueZ (which I wrongly set up) you need set up the different value from enumeration (of course based on your data). So in the C++ it is ValueAttribute (in my specific case):



              layerDataVariable.valueSource = QgsInterpolator::ValueSource::ValueAttribute;





              share|improve this answer

























                1












                1








                1







                I continue with going through the code and it is not a bug but change in the API (and mainly my fault) which leads to the problems with triangulation.



                In python there is zCoordInterpolation = False property but in the new API there is an enumeration so instead of ValueZ (which I wrongly set up) you need set up the different value from enumeration (of course based on your data). So in the C++ it is ValueAttribute (in my specific case):



                layerDataVariable.valueSource = QgsInterpolator::ValueSource::ValueAttribute;





                share|improve this answer













                I continue with going through the code and it is not a bug but change in the API (and mainly my fault) which leads to the problems with triangulation.



                In python there is zCoordInterpolation = False property but in the new API there is an enumeration so instead of ValueZ (which I wrongly set up) you need set up the different value from enumeration (of course based on your data). So in the C++ it is ValueAttribute (in my specific case):



                layerDataVariable.valueSource = QgsInterpolator::ValueSource::ValueAttribute;






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered yesterday









                BulvaBulva

                293112




                293112



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Geographic Information Systems Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f317268%2fhow-to-generate-triangulation-file-via-qgis-c-api%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    រឿង រ៉ូមេអូ និង ហ្ស៊ុយលីយេ សង្ខេបរឿង តួអង្គ បញ្ជីណែនាំ

                    Crop image to path created in TikZ? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Crop an inserted image?TikZ pictures does not appear in posterImage behind and beyond crop marks?Tikz picture as large as possible on A4 PageTransparency vs image compression dilemmaHow to crop background from image automatically?Image does not cropTikzexternal capturing crop marks when externalizing pgfplots?How to include image path that contains a dollar signCrop image with left size given

                    Romeo and Juliet ContentsCharactersSynopsisSourcesDate and textThemes and motifsCriticism and interpretationLegacyScene by sceneSee alsoNotes and referencesSourcesExternal linksNavigation menu"Consumer Price Index (estimate) 1800–"10.2307/28710160037-3222287101610.1093/res/II.5.31910.2307/45967845967810.2307/2869925286992510.1525/jams.1982.35.3.03a00050"Dada Masilo: South African dancer who breaks the rules"10.1093/res/os-XV.57.1610.2307/28680942868094"Sweet Sorrow: Mann-Korman's Romeo and Juliet Closes Sept. 5 at MN's Ordway"the original10.2307/45957745957710.1017/CCOL0521570476.009"Ram Leela box office collections hit massive Rs 100 crore, pulverises prediction"Archived"Broadway Revival of Romeo and Juliet, Starring Orlando Bloom and Condola Rashad, Will Close Dec. 8"Archived10.1075/jhp.7.1.04hon"Wherefore art thou, Romeo? To make us laugh at Navy Pier"the original10.1093/gmo/9781561592630.article.O006772"Ram-leela Review Roundup: Critics Hail Film as Best Adaptation of Romeo and Juliet"Archived10.2307/31946310047-77293194631"Romeo and Juliet get Twitter treatment""Juliet's Nurse by Lois Leveen""Romeo and Juliet: Orlando Bloom's Broadway Debut Released in Theaters for Valentine's Day"Archived"Romeo and Juliet Has No Balcony"10.1093/gmo/9781561592630.article.O00778110.2307/2867423286742310.1076/enst.82.2.115.959510.1080/00138380601042675"A plague o' both your houses: error in GCSE exam paper forces apology""Juliet of the Five O'Clock Shadow, and Other Wonders"10.2307/33912430027-4321339124310.2307/28487440038-7134284874410.2307/29123140149-661129123144728341M"Weekender Guide: Shakespeare on The Drive""balcony"UK public library membership"romeo"UK public library membership10.1017/CCOL9780521844291"Post-Zionist Critique on Israel and the Palestinians Part III: Popular Culture"10.2307/25379071533-86140377-919X2537907"Capulets and Montagues: UK exam board admit mixing names up in Romeo and Juliet paper"Istoria Novellamente Ritrovata di Due Nobili Amanti2027/mdp.390150822329610820-750X"GCSE exam error: Board accidentally rewrites Shakespeare"10.2307/29176390149-66112917639"Exam board apologises after error in English GCSE paper which confused characters in Shakespeare's Romeo and Juliet""From Mariotto and Ganozza to Romeo and Guilietta: Metamorphoses of a Renaissance Tale"10.2307/37323537323510.2307/2867455286745510.2307/28678912867891"10 Questions for Taylor Swift"10.2307/28680922868092"Haymarket Theatre""The Zeffirelli Way: Revealing Talk by Florentine Director""Michael Smuin: 1938-2007 / Prolific dance director had showy career"The Life and Art of Edwin BoothRomeo and JulietRomeo and JulietRomeo and JulietRomeo and JulietEasy Read Romeo and JulietRomeo and Julieteeecb12003684p(data)4099369-3n8211610759dbe00d-a9e2-41a3-b2c1-977dd692899302814385X313670221313670221