Faire pivoter la ligne de repère du générateur de géométrie en fonction de la projection cartographique QGIS

8

Je voudrais faire pivoter la ligne de marqueur créée à partir de la fonction de générateur de géométrie: le fait est que, au moyen du générateur de géométrie, je crée une ligne via make_line et les points sont les valeurs calculées (basées sur les valeurs dans les champs de la table d'attributs - dans la projection Conique Conique conforme à Lambert d'Asie EPSG: 102027).

rectangle initial dans EPSG: 102027

La chaîne de caractères reçue doit être un rectangle (parallèle au canevas de carte), mais lors du changement de projection de carte dans le canevas de carte, ces points forment par conséquent un rectangle tourné (bien que l'étiquette soit parallèle)

rectangle reçu en projection personnalisée

Comment faire pivoter (ou peut-être les coordonnées du point de transformation à la volée dans le tableau d'attributs dans les projections personnalisées) mon rectangle afin qu'il soit parallèle au canevas de la carte?

Ma projection: + proj = lcc + lat_1 = 57 + lat_2 = 63 + lat_0 = 0 + lon_0 = 133 + x_0 = 0 + y_0 = 0 + ellps = intl + units = m + no_defs

Mon style de générateur de géométrie: style

J'ai essayé de transformer ma géométrie (construite avec le générateur de géométrie) via la fonction de transformation (transform (geom, source_auth_id, dest_auth_id)) mais néanmoins ça met mal:

géométrie transformée et étiquettes

En arrière-plan, je n'ai trouvé aucune fonctionnalité pour dessiner des bordures de forme personnalisées - uniquement une ligne continue, mais j'aimerais obtenir une ligne avec des marqueurs de point

seule ligne continue

Jeanne
la source
Pourriez-vous créer un fichier de formes minimal pour la reproduire et préparer les attributs de sorte que l'expression ne soit focalisée que sur le défi géométrique? Cela ressemble à un joli puzzle!
bugmenot123
Oui! Vous êtes ici cloud.mail.ru/public/JAeg/L97RSjGQs Vous pouvez télécharger shp et qlr, les formules de projection sont en post ci-dessus.
Jane
J'ai utilisé dans le style de générateur de géométrie ma fonction personnalisée pour ajuster le texte de la boîte à la chaîne de lignes, donc dans le fichier d'exemple (dans le lien), j'ai supprimé ma fonction car vous ne devez pas créer ma fonction dans l'éditeur de fonction (ne pas avoir peur que le rectangle soit un peu peu plus grand que dans les écrans d'impression ci-dessus). Quoi qu'il en soit, lors du changement de la projection cartographique, le rectangle n'est pas parallèle au canevas de la carte et au texte dans la boîte
Jane
Merci! Ce serait formidable de le rendre encore plus général. D'après ce que je comprends, vous essayez de créer une boîte à partir de points où les points sont créés à partir de valeurs d'attribut. Pour avoir ce travail après la transformation, vous devrez également calculer les décalages des points en fonction de la transformation. Je pense que c'est beaucoup trop compliqué et conduit probablement à la folie. Pourquoi ne pas simplement utiliser "Dessiner le fond" dans l'étiquetage?
bugmenot123
Oui, c'est ce que je veux vraiment. En arrière-plan, il n'y a pas de fonctionnalité pour créer des bordures personnalisées pour les formes - uniquement une ligne continue, mais je veux obtenir une ligne avec des marqueurs de point - j'ajoute plus d'informations à ce sujet dans ma description de la question
Jane

Réponses:

1

Pas une réponse au titre de la question, mais peut-être une solution de contournement pour atteindre le résultat souhaité. Avez-vous essayé de générer un graphique SVG d'un rectangle avec une bordure en pointillés et de l'utiliser comme arrière-plan de l'étiquette? Il ne sera pas mis à l'échelle indépendamment sur les axes X et Y, et le nombre de points devra être prédéfini, mais vous devez éviter tout problème causé par la reprojection.

Andy Harfoot
la source