Skip to content

Commit a568c7b

Browse files
committed
use QgsVectorLayer*, not use LayerId
1 parent 59a8a8d commit a568c7b

File tree

3 files changed

+7
-23
lines changed

3 files changed

+7
-23
lines changed

src/analysis/network/qgslinevectorlayerdirector.cpp

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
// Qgis includes
2121
#include <qgsvectorlayer.h>
22-
#include <qgsmaplayerregistry.h>
2322
#include <qgsvectordataprovider.h>
2423
#include <qgspoint.h>
2524
#include <qgsgeometry.h>
@@ -84,15 +83,15 @@ template <typename RandIter, typename Type, typename CompareOp > RandIter my_bin
8483
return not_found;
8584
}
8685

87-
QgsLineVectorLayerDirector::QgsLineVectorLayerDirector( const QString& layerId,
86+
QgsLineVectorLayerDirector::QgsLineVectorLayerDirector( QgsVectorLayer *myLayer,
8887
int directionFieldId,
8988
const QString& directDirectionValue,
9089
const QString& reverseDirectionValue,
9190
const QString& bothDirectionValue,
9291
int defaultDirection
9392
)
9493
{
95-
mLayerId = layerId;
94+
mVectorLayer = myLayer;
9695
mDirectionFieldId = directionFieldId;
9796
mDirectDirectionValue = directDirectionValue;
9897
mReverseDirectionValue = reverseDirectionValue;
@@ -113,7 +112,7 @@ QString QgsLineVectorLayerDirector::name() const
113112
void QgsLineVectorLayerDirector::makeGraph( QgsGraphBuilderInterface *builder, const QVector< QgsPoint >& additionalPoints,
114113
QVector< QgsPoint >& tiedPoint ) const
115114
{
116-
QgsVectorLayer *vl = myLayer();
115+
QgsVectorLayer *vl = mVectorLayer;
117116

118117
if ( vl == NULL )
119118
return;
@@ -346,14 +345,3 @@ void QgsLineVectorLayerDirector::makeGraph( QgsGraphBuilderInterface *builder, c
346345
} // while( vl->nextFeature(feature) )
347346
} // makeGraph( QgsGraphBuilderInterface *builder, const QVector< QgsPoint >& additionalPoints, QVector< QgsPoint >& tiedPoint )
348347

349-
QgsVectorLayer* QgsLineVectorLayerDirector::myLayer() const
350-
{
351-
QMap <QString, QgsMapLayer*> m = QgsMapLayerRegistry::instance()->mapLayers();
352-
QMap <QString, QgsMapLayer*>::const_iterator it = m.find( mLayerId );
353-
if ( it == m.end() )
354-
{
355-
return NULL;
356-
}
357-
// return NULL if it.value() isn't QgsVectorLayer()
358-
return dynamic_cast<QgsVectorLayer*>( it.value() );
359-
}

src/analysis/network/qgslinevectorlayerdirector.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ class QgsLineVectorLayerDirector : public QgsGraphDirector
4343
};
4444
public:
4545
/**
46-
* @param layerId
46+
* @param vl source vector layer
4747
* @param directionFieldId feield contain road direction value
4848
* @param directDirectionValue value for one-way road
4949
* @param reverseDirectionValue value for reverse one-way road
5050
* @param bothDirectionValue value for road
5151
* @param defaultDirection 1 - direct direction, 2 - reverse direction, 3 - both direction
5252
*/
53-
QgsLineVectorLayerDirector( const QString& layerId,
53+
QgsLineVectorLayerDirector( QgsVectorLayer* vl,
5454
int directionFieldId,
5555
const QString& directDirectionValue,
5656
const QString& reverseDirectionValue,
@@ -70,13 +70,10 @@ class QgsLineVectorLayerDirector : public QgsGraphDirector
7070

7171
QString name() const;
7272

73-
private:
74-
75-
QgsVectorLayer* myLayer() const;
7673

7774
private:
7875

79-
QString mLayerId;
76+
QgsVectorLayer *mVectorLayer;
8077

8178
int mDirectionFieldId;
8279

src/plugins/roadgraph/roadgraphplugin.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,6 @@ const QgsGraphDirector* RoadGraphPlugin::director() const
260260
{
261261
if ( it.value()->name() != mSettings->mLayer )
262262
continue;
263-
layerId = it.key();
264263
layer = dynamic_cast< QgsVectorLayer* >( it.value() );
265264
break;
266265
}
@@ -274,7 +273,7 @@ const QgsGraphDirector* RoadGraphPlugin::director() const
274273
SpeedUnit speedUnit = SpeedUnit::byName( mSettings->mSpeedUnitName );
275274

276275
QgsLineVectorLayerDirector * director =
277-
new QgsLineVectorLayerDirector( layerId,
276+
new QgsLineVectorLayerDirector( layer,
278277
provider->fieldNameIndex( mSettings->mDirection ),
279278
mSettings->mFirstPointToLastPointDirectionVal,
280279
mSettings->mLastPointToFirstPointDirectionVal,

0 commit comments

Comments
 (0)