1 votos

Error de construcción en changegeometryvalues

Estoy trabajando con c++/QT y c++api gqis 2.8.2

Quiero cambiar la geometría de una característica, Tengo este código :

QgsVectorLayer * lLayer = mMapLayer.value(TRACKS);
QgsVectorDataProvider * lDataProvider;
lDataProvider = lLayer->dataProvider();
//create point
gsGeometry * MyPoint;
MyPoint = QgsGeometry::fromPoint(QgsPoint(PosX,PosY));
QgsGeometryMap MyGeometryMap;
QgsFeatureId MyFeatureId;

MyGeometryMap.insert(MyFeatureId,MyPoint);

lDataProvider->changeGeometryValues(MyGeometryMap);

No entiendo por qué tengo un error en la inserción :

error: no hay función que coincida con la llamada a QMap::insert(QgsFeatureId&, QgsGeometry*&)' MyGeometryMap.insert(MyFeatureId,MyPoint); ^ src/IHM/mainwindow.cpp:599:42: nota: el candidato es: En el archivo incluido desde /usr/local/Trolltech/Qt-4.8.5/include/QtCore/qvariant.h:49:0, de /usr/local/Trolltech/Qt-4.8.5/include/QtCore/QVariant:1, de /usr/local/include/qgis/qgis.h:25, de src/Core/common.h:13, de src/Core/libcarto.h:12, from src/IHM/mainwindow.h:24, de src/IHM/mainwindow.cpp:20:

¿Alguna idea?

1voto

Esta es la solución

gsGeometry * MyPoint;
MyPoint = QgsGeometry::fromPoint(QgsPoint(PosX,PosY));
QgsGeometryMap MyGeometryMap;
QgsFeatureId MyFeatureId;

MyGeometryMap.insert(MyFeatureId,*MyPoint);

o de esta manera

gsGeometry MyPoint;
MyPoint.fromPoint(QgsPoint(PosX,PosY));
QgsGeometryMap MyGeometryMap;
QgsFeatureId MyFeatureId;

MyGeometryMap.insert(MyFeatureId,MyPoint);

perdón por este estúpido error.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X