@@ -565,23 +565,47 @@ class Translator(val baseURL: Option[java.net.URL]) {
565
565
else
566
566
None
567
567
568
- val placement = offset match {
569
- case Some (Seq (Some (d))) => styles.createLinePlacement(d)
570
- case Some (Seq (Some (x), Some (y))) =>
568
+ val linePlacementOption =
569
+ offset.collect {
570
+ case Seq (Some (d)) => styles.createLinePlacement(d)
571
+ }
572
+
573
+ val pointPlacementOption =
574
+ offset.collect {
575
+ case Seq (Some (x), Some (y)) =>
576
+ styles.createPointPlacement(
577
+ anchorPoint.getOrElse(styles.getDefaultPointPlacement.getAnchorPoint),
578
+ styles.createDisplacement(x, y),
579
+ rotation.getOrElse(styles.getDefaultPointPlacement.getRotation))
580
+ }
581
+
582
+ val anchorPlacementOption =
583
+ anchorPoint.map { anchor =>
571
584
styles.createPointPlacement(
572
- anchorPoint.getOrElse(styles.getDefaultPointPlacement().getAnchorPoint()),
573
- styles.createDisplacement(x, y),
574
- rotation.getOrElse(styles.getDefaultPointPlacement().getRotation())
575
- )
576
- case _ => null
577
- }
585
+ anchor,
586
+ styles.getDefaultPointPlacement.getDisplacement,
587
+ rotation.getOrElse(styles.getDefaultPointPlacement.getRotation))
588
+ }
589
+
590
+ val placement =
591
+ linePlacementOption orElse pointPlacementOption orElse anchorPlacementOption
592
+ // offset match {
593
+ // case Some(Seq(Some(d))) => styles.createLinePlacement(d)
594
+ // case Some(Seq(Some(x), Some(y))) =>
595
+ // styles.createPointPlacement(
596
+ // anchorPoint.getOrElse(styles.getDefaultPointPlacement().getAnchorPoint()),
597
+ // styles.createDisplacement(x, y),
598
+ // rotation.getOrElse(styles.getDefaultPointPlacement().getRotation())
599
+ // )
600
+ // case _ => null
601
+ // }
578
602
579
603
val sym = styles.createTextSymbolizer(
580
604
styles.createFill(fillParams.flatMap(_._3).orNull, null , fontOpacity.getOrElse(null ), fontFill),
581
605
font,
582
606
halo,
583
607
concatenatedExpression(props(" label" )),
584
- placement,
608
+ placement.orNull ,
585
609
null // the geometry, but only as a string. the setter accepts an expression so we use that instead
586
610
)
587
611
geom.foreach { sym.setGeometry(_) }
0 commit comments