Estoy tratando de mejorar llamada de líneas en los mapas que estoy haciendo. Actualmente estoy usando el método en este enlace para hacer mi llamada líneas. Que funciona bien, pero me gustaría que las líneas para ir siempre por el punto más cercano de la etiqueta como esta:
Creo que funcionaría si he utilizado el código de abajo en la línea de este en la expresión del editor de la geometría del generador.
make_line(
make_point($x, $y),
make_point((CASE
WHEN "auxiliary_storage_labeling_positionx" > $x
THEN "auxiliary_storage_labeling_positionx"
WHEN ("auxiliary_storage_labeling_positionx" + "labelwidth") > $x
AND ("auxiliary_storage_labeling_positionx") < $x
THEN ("auxiliary_storage_labeling_positionx" + "labelwidth")
ELSE $x
END )
,(CASE
WHEN "auxiliary_storage_labeling_positiony" < $y
THEN "auxiliary_storage_labeling_positiony"
WHEN ("auxiliary_storage_labeling_positiony" + "labelHeight") < $y
AND ("auxiliary_storage_labeling_positiony") > $y
THEN ("auxiliary_storage_labeling_positiony" + "labelHeight")
ELSE $y
END )
)
)
No estoy seguro de si tengo todos los < y > correcto, pero eso es irrelevante. El problema con esto es que me parece que no puede averiguar cómo obtener el ancho y el alto de la etiqueta.
Yo no soy muy bueno con el editor de expresiones, y nunca he hecho nada con el editor de la función.