@@ -69,19 +69,23 @@ void QgsLineVectorLayerDirector::makeGraph( QgsGraphBuilderInterface *builder, c
69
69
int featureCount = ( int ) vl->featureCount () * 2 ;
70
70
int step = 0 ;
71
71
72
- QgsCoordinateTransform ct ( vl->crs (), builder->destinationCrs () );
73
-
74
- QgsDistanceArea da;
75
- da.setSourceCrs ( builder->destinationCrs ().srsid () );
76
- da.setProjectionsEnabled ( true );
77
-
72
+ QgsCoordinateTransform ct;
73
+ ct.setSourceCrs ( vl->crs () );
74
+ if ( builder->coordinateTransformationEnabled () )
75
+ {
76
+ ct.setDestCRS ( builder->destinationCrs () );
77
+ }else
78
+ {
79
+ ct.setDestCRS ( vl->crs () );
80
+ }
81
+
78
82
tiedPoint = QVector< QgsPoint >( additionalPoints.size (), QgsPoint ( 0.0 , 0.0 ) );
79
83
TiePointInfo tmpInfo;
80
84
tmpInfo.mLength = std::numeric_limits<double >::infinity ();
81
85
82
86
QVector< TiePointInfo > pointLengthMap ( additionalPoints.size (), tmpInfo );
83
87
QVector< TiePointInfo >::iterator pointLengthIt;
84
-
88
+
85
89
// begin: tie points to the graph
86
90
QgsAttributeList la;
87
91
vl->select ( la );
@@ -229,7 +233,7 @@ void QgsLineVectorLayerDirector::makeGraph( QgsGraphBuilderInterface *builder, c
229
233
pt2 = pointsIt->second ;
230
234
if ( !isFirstPoint )
231
235
{
232
- double distance = da. measureLine ( pt1, pt2 );
236
+ double distance = builder-> distanceArea ()-> measureLine ( pt1, pt2 );
233
237
QVector< QVariant > prop;
234
238
QList< QgsEdgeProperter* >::const_iterator it;
235
239
for ( it = mProperterList .begin (); it != mProperterList .end (); ++it )
0 commit comments