File tree Expand file tree Collapse file tree 1 file changed +14
-3
lines changed Expand file tree Collapse file tree 1 file changed +14
-3
lines changed Original file line number Diff line number Diff line change @@ -142,11 +142,22 @@ void QgsPALObjectPositionManager::findObjectPositions( const QgsRenderContext& r
142
142
// pal geometry that the current label object refers to
143
143
QgsPALGeometry* referredGeometry = 0 ;
144
144
QgsOverlayObject* referredOverlayObject = 0 ;
145
+ pal::FeaturePart* referredPart = 0 ;
145
146
146
147
std::list<pal::LabelPosition*>::iterator labelIt = resultLabelList->begin ();
147
148
for ( ; labelIt != resultLabelList->end (); ++labelIt )
148
149
{
149
- referredGeometry = dynamic_cast <QgsPALGeometry*>(( *labelIt )->getFeaturePart ()->getUserGeometry () );
150
+ if ( !*labelIt )
151
+ {
152
+ continue ;
153
+ }
154
+
155
+ referredPart = ( *labelIt )->getFeaturePart ();
156
+ if ( !referredPart )
157
+ {
158
+ continue ;
159
+ }
160
+ referredGeometry = dynamic_cast <QgsPALGeometry*>( referredPart->getUserGeometry () );
150
161
if ( !referredGeometry )
151
162
{
152
163
continue ;
@@ -160,8 +171,8 @@ void QgsPALObjectPositionManager::findObjectPositions( const QgsRenderContext& r
160
171
pal::LabelPosition* lp = *labelIt;
161
172
162
173
// QGIS takes the coordinates of the middle points
163
- double x = (lp->getX ( 0 ) + lp->getX ( 1 ) + lp->getX ( 2 ) + lp->getX ( 3 ) ) / 4 ;
164
- double y = (lp->getY ( 0 ) + lp->getY ( 1 ) + lp->getY ( 2 ) + lp->getY ( 3 ) ) / 4 ;
174
+ double x = ( lp->getX ( 0 ) + lp->getX ( 1 ) + lp->getX ( 2 ) + lp->getX ( 3 ) ) / 4 ;
175
+ double y = ( lp->getY ( 0 ) + lp->getY ( 1 ) + lp->getY ( 2 ) + lp->getY ( 3 ) ) / 4 ;
165
176
referredOverlayObject->addPosition ( QgsPoint ( x, y ) );
166
177
}
167
178
You can’t perform that action at this time.
0 commit comments