We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 84806b9 commit 783b6b8Copy full SHA for 783b6b8
src/core/geometry/qgsgeometry.cpp
@@ -1595,6 +1595,12 @@ double QgsGeometry::distance( const QgsGeometry &geom ) const
1595
return -1.0;
1596
}
1597
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
+
1604
QgsGeos g( d->geometry.get() );
1605
mLastError.clear();
1606
return g.distance( geom.d->geometry.get(), &mLastError );
0 commit comments