bool QgsGPXFeatureIterator::readWaypoint( const QgsWaypoint& wpt, QgsFeature& feature ) { if ( mRequest.filterType() == QgsFeatureRequest::FilterRect ) { const QgsRectangle& rect = mRequest.filterRect(); if ( ! rect.contains( QgsPoint( wpt.lon, wpt.lat ) ) ) return false; } // some wkb voodoo if ( !( mRequest.flags() & QgsFeatureRequest::NoGeometry ) ) { feature.setGeometry( readWaypointGeometry( wpt ) ); } feature.setFeatureId( wpt.id ); feature.setValid( true ); feature.setFields( &mSource->mFields ); // allow name-based attribute lookups feature.initAttributes( mSource->mFields.count() ); readAttributes( feature, wpt ); return true; }
bool QgsGPXFeatureIterator::readWaypoint( const QgsWaypoint &wpt, QgsFeature &feature ) { if ( !mFilterRect.isNull() ) { if ( ! mFilterRect.contains( QgsPointXY( wpt.lon, wpt.lat ) ) ) return false; } // some wkb voodoo if ( !( mRequest.flags() & QgsFeatureRequest::NoGeometry ) ) { QgsGeometry *g = readWaypointGeometry( wpt ); feature.setGeometry( *g ); delete g; } feature.setId( wpt.id ); feature.setValid( true ); feature.setFields( mSource->mFields ); // allow name-based attribute lookups feature.initAttributes( mSource->mFields.count() ); readAttributes( feature, wpt ); return true; }