QGIS API Documentation  3.23.0-Master (dd0cd13a00)
qgsnetworkstrategy.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsnetworkstrategy.h
3  --------------------------------------
4  Date : 2011-04-01
5  Copyright : (C) 2010 by Yakushev Sergey
6  Email : YakushevS <at> list.ru
7 ****************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15 
16 #ifndef QGSNETWORKSTRATERGY_H
17 #define QGSNETWORKSTRATERGY_H
18 
19 #include <QVariant>
20 
21 #include "qgsfeature.h"
22 #include "qgsfeaturerequest.h"
23 #include "qgis_analysis.h"
24 
25 #ifdef SIP_RUN
26 % ModuleHeaderCode
29 % End
30 #endif
31 
42 class ANALYSIS_EXPORT QgsNetworkStrategy
43 {
44 
45 #ifdef SIP_RUN
47  if ( dynamic_cast< QgsNetworkDistanceStrategy * >( sipCpp ) != NULL )
48  sipType = sipType_QgsNetworkDistanceStrategy;
49  else if ( dynamic_cast< QgsNetworkSpeedStrategy * >( sipCpp ) != NULL )
50  sipType = sipType_QgsNetworkSpeedStrategy;
51  else
52  sipType = NULL;
53  SIP_END
54 #endif
55 
56  public:
57 
61  QgsNetworkStrategy() = default;
62 
63  virtual ~QgsNetworkStrategy() = default;
64 
69  virtual QSet< int > requiredAttributes() const { return QSet< int >(); }
70 
74  virtual QVariant cost( double distance, const QgsFeature &f ) const = 0;
75 };
76 
77 #endif // QGSNETWORKSTRATERGY_H
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Strategy for calculating edge cost based on its length.
Strategy for calculating edge cost based on travel time.
QgsNetworkStrategy defines strategy used for calculation of the edge cost.
virtual QVariant cost(double distance, const QgsFeature &f) const =0
Returns edge cost.
QgsNetworkStrategy()=default
Default constructor.
virtual ~QgsNetworkStrategy()=default
virtual QSet< int > requiredAttributes() const
Returns a list of the source layer attributes needed for cost calculation.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:177
#define SIP_END
Definition: qgis_sip.h:194