@@ -332,20 +332,26 @@ namespace pal
332
332
*lPos = new LabelPosition *[nbp];
333
333
334
334
// get from feature
335
- double label_x = f->label_x ;
336
- double label_y = f->label_y ;
337
335
double labelW = f->label_x ;
338
336
double labelH = f->label_y ;
339
337
340
- double xdiff = 0.0 ;
341
- double ydiff = 0.0 ;
342
- double lx = 0.0 ;
343
- double ly = 0.0 ;
344
338
double cost = 0.0001 ;
345
339
int id = 0 ;
346
340
347
- xdiff -= label_x / 2.0 ;
348
- ydiff -= label_y / 2.0 ;
341
+ double xdiff = -labelW / 2.0 ;
342
+ double ydiff = -labelH / 2.0 ;
343
+
344
+ if ( f->quadOffset )
345
+ {
346
+ if ( f->quadOffsetX != 0 )
347
+ {
348
+ xdiff += labelW / 2.0 * f->quadOffsetX ;
349
+ }
350
+ if ( f->quadOffsetY != 0 )
351
+ {
352
+ ydiff += labelH / 2.0 * f->quadOffsetY ;
353
+ }
354
+ }
349
355
350
356
if ( ! f->fixedPosition () )
351
357
{
@@ -358,32 +364,6 @@ namespace pal
358
364
}
359
365
}
360
366
361
- if ( angle != 0 )
362
- {
363
- // use LabelPosition construction to calculate new rotated label dimensions
364
- pal::LabelPosition* lp = new LabelPosition ( 1 , lx, ly, label_x, label_y, angle, 0.0 , this );
365
-
366
- double amin[2 ], amax[2 ];
367
- lp->getBoundingBox ( amin, amax );
368
- labelW = amax[0 ] - amin[0 ];
369
- labelH = amax[1 ] - amin[1 ];
370
-
371
- delete lp;
372
- }
373
-
374
- LabelPosition::Quadrant quadrant = f->quadOffset ? quadrantFromOffset () : LabelPosition::QuadrantOver;
375
- if ( f->quadOffset )
376
- {
377
- if ( f->quadOffsetX != 0 )
378
- {
379
- xdiff += labelW / 2 * f->quadOffsetX ;
380
- }
381
- if ( f->quadOffsetY != 0 )
382
- {
383
- ydiff += labelH / 2 * f->quadOffsetY ;
384
- }
385
- }
386
-
387
367
if ( f->offsetPos )
388
368
{
389
369
if ( f->offsetPosX != 0 )
@@ -396,10 +376,10 @@ namespace pal
396
376
}
397
377
}
398
378
399
- lx = x + xdiff;
400
- ly = y + ydiff;
379
+ double lx = x + xdiff;
380
+ double ly = y + ydiff;
401
381
402
- ( *lPos )[0 ] = new LabelPosition ( id, lx, ly, label_x, label_y , angle, cost, this , false , quadrant );
382
+ ( *lPos )[0 ] = new LabelPosition ( id, lx, ly, labelW, labelH , angle, cost, this );
403
383
return nbp;
404
384
}
405
385
0 commit comments