Skip to content

Commit 783b6b8

Browse files
committed
[geometry] optimize point distance to point
1 parent 84806b9 commit 783b6b8

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/core/geometry/qgsgeometry.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -1595,6 +1595,12 @@ double QgsGeometry::distance( const QgsGeometry &geom ) const
15951595
return -1.0;
15961596
}
15971597

1598+
// avoid calling geos for trivial point-to-point distance calculations
1599+
if ( QgsWkbTypes::flatType( d->geometry->wkbType() ) == QgsWkbTypes::Point && QgsWkbTypes::flatType( geom.wkbType() ) == QgsWkbTypes::Point )
1600+
{
1601+
return qgsgeometry_cast< const QgsPoint * >( d->geometry.get() )->distance( *qgsgeometry_cast< const QgsPoint * >( geom.constGet() ) );
1602+
}
1603+
15981604
QgsGeos g( d->geometry.get() );
15991605
mLastError.clear();
16001606
return g.distance( geom.d->geometry.get(), &mLastError );

0 commit comments

Comments
 (0)