From a14744c53f6fdf8fb81027a43b897d8f34b769b9 Mon Sep 17 00:00:00 2001 From: Leyan Date: Tue, 20 May 2014 19:51:39 +0800 Subject: [PATCH] box of a more reasonable size for a single point --- src/core/qgsvectorlayereditutils.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/core/qgsvectorlayereditutils.cpp b/src/core/qgsvectorlayereditutils.cpp index 343533c941a..bdeb11ec717 100644 --- a/src/core/qgsvectorlayereditutils.cpp +++ b/src/core/qgsvectorlayereditutils.cpp @@ -233,10 +233,13 @@ int QgsVectorLayerEditUtils::splitFeatures( const QList& splitLine, bo else { //If we have a single point, we still create a non-null box - bBox.setXMinimum( bBox.xMinimum() - 1 ); - bBox.setXMaximum( bBox.xMaximum() + 1 ); - bBox.setYMinimum( bBox.yMinimum() - 1 ); - bBox.setYMaximum( bBox.yMaximum() + 1 ); + double bufferDistance = 0.000001; + if ( L->crs().geographicFlag() ) + bufferDistance = 0.00000001; + bBox.setXMinimum( bBox.xMinimum() - bufferDistance ); + bBox.setXMaximum( bBox.xMaximum() + bufferDistance ); + bBox.setYMinimum( bBox.yMinimum() - bufferDistance ); + bBox.setYMaximum( bBox.yMaximum() + bufferDistance ); } } @@ -367,10 +370,13 @@ int QgsVectorLayerEditUtils::splitParts( const QList& splitLine, bool else { //If we have a single point, we still create a non-null box - bBox.setXMinimum( bBox.xMinimum() - 1 ); - bBox.setXMaximum( bBox.xMaximum() + 1 ); - bBox.setYMinimum( bBox.yMinimum() - 1 ); - bBox.setYMaximum( bBox.yMaximum() + 1 ); + double bufferDistance = 0.000001; + if ( L->crs().geographicFlag() ) + bufferDistance = 0.00000001; + bBox.setXMinimum( bBox.xMinimum() - bufferDistance ); + bBox.setXMaximum( bBox.xMaximum() + bufferDistance ); + bBox.setYMinimum( bBox.yMinimum() - bufferDistance ); + bBox.setYMaximum( bBox.yMaximum() + bufferDistance ); } }