%ModuleHeaderCode #include #include %End /** * \ingroup analysis * \class QgsNetworkStrategy * \brief QgsNetworkStrategy defines strategy used for calculation of the edge cost. For example it can * take into account travel distance, amount of time or money. Currently there are two strategies * implemented in the analysis library: QgsNetworkDistanceStrategy and QgsNetworkSpeedStrategy. * QgsNetworkStrategy implemented using "strategy" design pattern. */ class QgsNetworkStrategy { %TypeHeaderCode #include %End %ConvertToSubClassCode if ( dynamic_cast< QgsNetworkDistanceStrategy* > ( sipCpp ) != NULL ) sipType = sipType_QgsNetworkDistanceStrategy; else if ( dynamic_cast< QgsNetworkSpeedStrategy* > ( sipCpp ) != NULL ) sipType = sipType_QgsNetworkSpeedStrategy; else sipType = NULL; %End public: /** * Default constructor */ QgsNetworkStrategy(); virtual ~QgsNetworkStrategy(); /** * Returns list of the source layer attributes needed for cost calculation. * This method called by QgsGraphDirector. * \return list of required attributes */ virtual QgsAttributeList requiredAttributes() const; /** * Returns edge cost */ virtual QVariant cost( double distance, const QgsFeature &f ) const = 0; };