Skip to content

Commit

Permalink
[processing] Adjust code for line intersection with collection inters…
Browse files Browse the repository at this point in the history
…ections
  • Loading branch information
gacarrillor committed Apr 24, 2018
1 parent 49ee8bb commit ac34868
Showing 1 changed file with 10 additions and 13 deletions.
23 changes: 10 additions & 13 deletions src/analysis/processing/qgsalgorithmlineintersection.cpp
Expand Up @@ -196,10 +196,10 @@ QVariantMap QgsLineIntersectionAlgorithm::processAlgorithm( const QVariantMap &p
{
outAttributes.append( inFeatureB.attribute( b ) );
}
if ( intersectGeom.wkbType() == QgsWkbTypes::GeometryCollection )
if ( QgsWkbTypes::flatType( intersectGeom.wkbType() ) == QgsWkbTypes::GeometryCollection )
{
QVector<QgsGeometry> geomCollection = intersectGeom.asGeometryCollection();
for ( const QgsGeometry &part : qgis::as_const( geomCollection ) )
const QVector<QgsGeometry> geomCollection = intersectGeom.asGeometryCollection();
for ( const QgsGeometry &part : geomCollection )
{
if ( part.type() == QgsWkbTypes::PointGeometry )
{
Expand All @@ -214,18 +214,15 @@ QVariantMap QgsLineIntersectionAlgorithm::processAlgorithm( const QVariantMap &p
}
}
}
else
else if ( intersectGeom.type() == QgsWkbTypes::PointGeometry )
{
if ( intersectGeom.type() == QgsWkbTypes::PointGeometry )
if ( intersectGeom.isMultipart() )
{
if ( intersectGeom.isMultipart() )
{
points = intersectGeom.asMultiPoint();
}
else
{
points.append( intersectGeom.asPoint() );
}
points = intersectGeom.asMultiPoint();
}
else
{
points.append( intersectGeom.asPoint() );
}
}
for ( const QgsPointXY &j : qgis::as_const( points ) )
Expand Down

0 comments on commit ac34868

Please sign in to comment.