Skip to content

Commit

Permalink
Fix Z and M support for add point feature (fixes #17427)
Browse files Browse the repository at this point in the history
  • Loading branch information
nirvn committed Nov 9, 2017
1 parent ba62ffc commit 0ccf6fa
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/app/qgsmaptooladdfeature.cpp
Expand Up @@ -154,15 +154,15 @@ void QgsMapToolAddFeature::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
{
g = QgsGeometry::fromPointXY( savePoint );
}
else if ( layerWKBType == QgsWkbTypes::Point25D )
else if ( !QgsWkbTypes::isMultiType( layerWKBType ) && QgsWkbTypes::hasZ( layerWKBType ) )
{
g = QgsGeometry( new QgsPoint( QgsWkbTypes::PointZ, savePoint.x(), savePoint.y(), defaultZValue() ) );
}
else if ( layerWKBType == QgsWkbTypes::MultiPoint )
else if ( QgsWkbTypes::isMultiType( layerWKBType ) && !QgsWkbTypes::hasZ( layerWKBType ) )
{
g = QgsGeometry::fromMultiPointXY( QgsMultiPointXY() << savePoint );
}
else if ( layerWKBType == QgsWkbTypes::MultiPoint25D )
else if ( QgsWkbTypes::isMultiType( layerWKBType ) && QgsWkbTypes::hasZ( layerWKBType ) )
{
QgsMultiPoint *mp = new QgsMultiPoint();
mp->addGeometry( new QgsPoint( QgsWkbTypes::PointZ, savePoint.x(), savePoint.y(), defaultZValue() ) );
Expand All @@ -174,6 +174,11 @@ void QgsMapToolAddFeature::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
g = QgsGeometry::fromPointXY( savePoint );
}

if ( QgsWkbTypes::hasM( layerWKBType ) )
{
g.get()->addMValue();
}

f.setGeometry( g );
f.setValid( true );

Expand Down

0 comments on commit 0ccf6fa

Please sign in to comment.