Suite

Faire pivoter le polygone d'une valeur numérique

Faire pivoter le polygone d'une valeur numérique


Existe-t-il un moyen de faire pivoter un polygone ou une entité en entrant une valeur numérique dans QGIS


Vous pouvez utiliser le septième outil (Sélectionner le sommet et l'objet, faire pivoter l'objet) de Outils de CAO brancher.

Un exemple d'utilisation :

1) Sélection de la caractéristique, du point de rotation et de l'angle.

2) Après une rotation de 45 degrés.

Polygones CadLayer est une couche mémoire et peut être enregistrée, par exemple, sous forme de fichier de formes.

Remarque sur l'édition :

J'ai utilisé ce plugin avant les versions 2.x de QGIS où il fonctionnait bien. Cependant, dans une version plus récente de QGIS, du moins dans mon cas, le comportement du plugin n'est pas le même qu'avant où une autre couche pouvait être sélectionnée comme centre de rotation (par exemple le centroïde). Cependant, le centroïde pourrait être ajouté en tant que sommet d'une deuxième entité dans le polygone d'origine, en utilisant l'outil "Split Features" de la "Advanced Digitazing Tool Bar" et en effectuant la rotation en deux chemins ; comme on peut le voir ci-dessous :

Après la rotation, vous pouvez dissoudre la nouvelle entité dans le polygone pivoté.


Je voulais juste faire un commentaire à Luis, mais je viens de créer un compte donc je ne peux pas faire de commentaires. J'ai décidé d'écrire ceci pour que personne ne pense que cad-tools ne fonctionne plus. Le plugin Cad-tools fonctionne bien en rotation (Qgis 2.18) mais vous devez sélectionner la fonctionnalité ET le sommet (pour le point de rotation) et ensuite entrer l'angle.


Faire pivoter un polygone 3D dans le plan xy tout en conservant l'orientation

J'ai un polygone orienté de n'importe quelle manière et positionné n'importe où dans l'espace 3D. Je dois transformer le polygone dans le plan xy afin de pouvoir effectuer diverses opérations dessus (en particulier générer une grille de points à travers la boîte englobante du polygone) en 2D plutôt qu'en 3D, puis le retransformer.

Le problème vient de l'orientation du polygone transformé. Si je voulais juste pivoter dans le plan, je pourrais prendre l'angle entre la normale du polygone et le plan xy et tourner autour d'un axe orthogonal aux deux (produit croisé). Cependant, j'exige que la zone de délimitation du polygone soit orientée de telle sorte que le bord inférieur (valeur z la plus basse) de la zone de délimitation soit coplanaire avec le plan xy, à la fois avant et après la transformation. En d'autres termes, la boîte englobante repose sur un côté parallèle au sol. Après transformation, cette arête serait parallèle à l'axe des x. C'est pour que la grille de points que je génère sur la surface aura toujours des lignes parallèles au sol, quelle que soit l'orientation du polygone.

Mon approche consiste à effectuer deux rotations d'abord autour de l'axe z de l'angle entre la ligne formée par l'intersection du plan du polygone et du plan xy, et l'axe x. Cela garantit que le bas de la boîte englobante ne sort pas du plan xy. Ensuite, faites à nouveau pivoter autour de l'axe x de l'angle entre la (nouvelle) normale du polygone et le plan xz. Voici les étapes :

  1. Trouvez l'équation du plan du polygone (à partir de la normale).
  2. Trouvez l'intersection du plan du polygone et du plan xy. Il s'agit d'une ligne dans le plan xy.
  3. Trouvez l'angle entre cette ligne et l'axe des x.
  4. Faites pivoter le polygone de cet angle autour de l'axe z.
  5. Déterminer la nouvelle normalité.
  6. Trouvez l'angle entre la nouvelle normale et la normale du plan xy.
  7. Faites pivoter le polygone de cet angle autour de l'axe des x.
  8. Le polygone doit maintenant se trouver dans le plan xy, générer la zone de délimitation à l'aide des valeurs max/min x et y, générer une grille de points, etc., puis tout transformer à son point de départ.

Je me rends compte que deux rotations doivent être combinées pour réduire le nombre de multiplications matricielles, mais c'est l'algorithme général.

Je ne suis pas un expert en graphisme, quelqu'un peut-il me conseiller sur cette technique ? Existe-t-il un meilleur moyen? Mon approche vous semble-t-elle correcte ? Je développe en Java et je cherche à utiliser la classe Transform3D pour les rotations.


Paramètres

Classe d'entités contenant une distribution d'entités pour laquelle l'ellipse ou l'ellipsoïde d'écart type sera calculé.

Une classe d'entités surfaciques qui contiendra l'entité ellipse en sortie.

La taille des ellipses de sortie en écarts types. La taille d'ellipse par défaut est de 1, les choix valides sont 1, 2 ou 3 écarts types.

  • 1 écart type — 1 écart type
  • 2 écarts types — 2 écarts types
  • 3 écarts types —3 écarts types

Le champ numérique utilisé pour pondérer les emplacements en fonction de leur importance relative.

Champ utilisé pour regrouper les entités pour des calculs de distribution directionnelle distincts. Le champ case peut être de type entier, date ou chaîne.

Classe d'entités contenant une distribution d'entités pour laquelle l'ellipse ou l'ellipsoïde d'écart type sera calculé.

Une classe d'entités surfaciques qui contiendra l'entité ellipse en sortie.

La taille des ellipses de sortie en écarts types. La taille d'ellipse par défaut est de 1, les choix valides sont 1, 2 ou 3 écarts types.

  • 1_STANDARD_DEVIATION — 1 écart type
  • 2_STANDARD_DEVIATIONS — 2 écarts types
  • 3_STANDARD_DEVIATIONS — 3 écarts types

Le champ numérique utilisé pour pondérer les emplacements en fonction de leur importance relative.

Champ utilisé pour regrouper les entités pour des calculs de distribution directionnelle distincts. Le champ case peut être de type entier, date ou chaîne.

Exemple de code

Le script de fenêtre Python suivant montre comment utiliser l'outil DirectionalDistribution.

Le script Python autonome suivant montre comment utiliser l'outil DirectionalDistribution.


Rendu des ruptures de classe

Un moteur de rendu des ruptures de classe symbolise chaque caractéristique en fonction de la valeur d'un champ numérique. La propriété de type pour le rendu des ruptures de classe est classBreaks . La propriété rotationType contrôle l'origine et le sens de rotation. Si rotationType est défini comme arithmetic , le symbole pivote depuis l'est dans le sens inverse des aiguilles d'une montre, l'est étant l'axe 0°. Si le type de rotation est défini comme géographique , le symbole subit une rotation à partir du nord dans le sens des aiguilles d'une montre, le nord étant l'axe 0°.


Syntaxe

Classe d'entités contenant une distribution d'entités pour laquelle l'ellipse d'écart type sera calculée.

Une classe d'entités surfaciques qui contiendra l'entité ellipse en sortie.

La taille des ellipses de sortie en écarts types. La taille d'ellipse par défaut est de 1, les choix valides sont 1, 2 ou 3 écarts types.

Le champ numérique utilisé pour pondérer les emplacements en fonction de leur importance relative.

Champ utilisé pour regrouper des entités pour des calculs de distribution directionnelle séparés. Le champ case peut être de type entier, date ou chaîne.


void CPolygon::Draw(CDC & dc, CDoublePoint pt)

CDC & courant continu Le DC utilisé pour dessiner l'objet.
CDoublePoint pt Le point dans le DC, exprimé en coordonnées logiques, auquel l'image est dessinée.

Dessine le polygone transformé dans le DC spécifié, à l'emplacement spécifié par le point. Le DC est supposé être dans un mode mappé avec oui croissant vers le haut (plutôt que vers le bas comme dans MM_TEXTE mode). Le DC n'est pas modifié au retour. Le Transformer la méthode doit être appelée avant d'appeler Dessiner pour créer l'ensemble des points transformés. Ne pas appeler Transformer signifiera que la dernière transformation sera utilisée si aucune transformation n'a été effectuée, le jeu de transformation est vide et aucun dessin n'apparaîtra.

Ce fichier peut être téléchargé dans le cadre de l'exemple de boussole.

Les opinions exprimées dans ces essais sont celles de l'auteur et ne représentent en aucun cas ni ne sont approuvées par Microsoft.


Recherchez des informations clés sur les programmes et les majeures des collèges communautaires de Virginie. Parcourez tous les types de diplômes et programmes proposés par les collèges communautaires de Virginie. Concentrez-vous sur un programme spécifique et toutes les majeures possibles sont présentées. Concentrez-vous sur une majeure et découvrez tous les collèges communautaires de Virginie qui proposent ce programme.

Concentrez-vous sur les cours et les programmes offerts par les collèges spécifiques. Recherchez et parcourez les cours et programmes spécifiques du collège qui vous intéresse.

Les cours répertoriés sur ce site Web du VCCS sont mis à jour trimestre par trimestre et ne reflètent que les cours approuvés pour l'offre au cours du trimestre le plus récent. Tous les collèges VCCS doivent utiliser, au minimum, le préfixe de cours standard, le numéro de cours, la ou les valeurs de crédit et les descriptions contenues dans cette liste.

Lors de la planification des cours, les collèges peuvent utiliser la règle locale pour attribuer des pré-requis ou des co-requis qui ne sont pas répertoriés dans le fichier de cours principal.

Les questions, informations supplémentaires et corrections concernant le dossier de cours principal doivent être traitées ici.


Valider:

Une fonction:

Voici une Fonction Matlab qui peut être utilisé pour calculer la rotation d'un vecteur à un autre.

La réponse de Kuba Ober et Leyu Wang fonctionne très bien. Voici une implémentation python du même algorithme.

Vous pourriez dire que vous cherchez une transformation entre deux bases orthonormées :

et les pièces manquantes peuvent être récupérées d'une manière qui convient à l'objectif :

  • $vec=vec'=fracfoisvec'><||vecfoisvec'||>$, l'axe de rotation, qui est laissé en place et est orthogonal au $vec,vec'$ plane (et doit être normalisé)
  • $vec=vecfoisvec, vec'=vec'foisvec'$, car vous avez besoin d'une paire de 3ème vecteurs pour compléter les bases.

Depuis $[vec,vec,vec]$ est une matrice orthogonale, il n'y a pas besoin d'inversion "réelle" et la transformation est

$ M=[vec',vec',vec']*[vec,vec,vec]^T $ Sauf lorsque $vec,vec'$ n'étire pas un plan (et donc $||vecfoisvec'||=0$). Ce calcul ne produira pas $I$, par ex. meurt sur les deux $vec=vec'$ et $vec=-vec'$

Avertissement: Désolé pour le nécro, et surtout pour la répétition partielle : je vois la réponse de Kjetil, mais je ne comprends tout simplement pas quoi et pourquoi cette matrice asymétrique fait là, et bien que la réponse de Kuba indique qu'elle s'appuie sur celle de Kjetil, elle introduit la trigonométrie en plus de cela , contredisant légèrement l'idée (bien sûr, je comprends que la partie trigonométrique est exprimée avec des produits point/croisé à la fin)

De plus, c'était ma première fois avec LaTeX, je me sens $vec

vec'$ ressemble un peu trop, mais $vec

vec$ est tout simplement moche. Et écrire cette fraction correctement est bien au-dessus de moi.

Étant donné deux vecteurs unitaires $hat a$ et $hat c$, reflétant un vecteur $x$ à travers le complément orthogonal de $hat a$ et puis pour $hat c$ fera tourner la partie de $x$ dans le étendue de $hat a$ et $hat c$ par deux fois l'angle de $hat a$ à $hat c$. Soit $hat c = frac<|hat a+hat b|>$ le vecteur unitaire qui coupe $hat a$ et $hat b$, la composition du deux réflexions $R_ circ R_$ feront pivoter $hat a$ à $hat b$, et tout vecteur $x$ par l'angle de $hat a$ à $ chapeau b$. Rappelons que la transformation de réflexion est $R_n(x) = x - 2 frac n$.

Malheureusement, je n'ai pas assez de points pour commenter la réponse acceptée, mais comme d'autres l'ont noté, la formule ne fonctionne pas lorsque une == -b.

Pour résoudre ce cas limite, vous devez créer un vecteur normal de une en utilisant par exemple la formule trouvée ici (a,b et c étant les composantes du vecteur) :

puis faire la matrice de rotation en faisant tourner le vecteur une autour de cette normale par Pi.

Solution générale pour n dimensions en matlab/octave :

%% Construire les données d'entrée n = 4 a = randn(n,1) b = randn(n,1)

%% Calculer Q = matrice de rotation A = a*b' [V,D] = eig(A'+A) [

,idx] = min(diag(D)) v = V(:,idx) Q = oeil(n) - 2*(v*v')

%% Valider que Q est correct b_hat = Q'*a*norm(b)/norm(a) disp(['norm of error = ' num2str(norm(b_hat-b))]) disp(['eigenvalues ​​of Q = ' num2str(eig(Q)')])

Vous pouvez facilement faire toute cette opération en utilisant la bibliothèque Vector3.

Les quatre étapes suivantes ont fonctionné pour moi.

C'est un problème intéressant. Cela garantit que vous faites pivoter le vecteur unitaire $a$ pour qu'il coïncide avec $b$ . Encore ne suffirait-il pas de faire tourner un corps rigide pour le faire coïncider avec un autre. Je poste un exemple de ceci ci-dessous, mais permettez-moi d'abord de signaler quelques références importantes :

    @glennr a correctement souligné la formule de rotation de Rodrigues. Notez que cette formule est la même que celle montrée par @Jur var den vec ici. Les facteurs d'échelle sont dus à la normalisation des produits croisés et scalaires puisque le vecteur $v$ sur le site Wikipédia (ici $a$ ) est arbitraire et ici $a$ est l'unité. La page Wikipédia ne nécessite que des manipulations vectorielles (besoin d'être bon en prise de produits croisés).

Voici une preuve élégante qui ne dépend pas trop des constructions géométriques mais qui nécessite des équations différentielles ordinaires linéaires simples pour les matrices, en plus de la représentation du produit croisé en tant qu'opérateur matriciel.

Maintenant, pour un exemple. Ce lien d'échange de pile concerne une question que j'ai postée sur la rotation d'un tétraèdre. J'ai trouvé et répondu à ma question par deux rotations consécutives de matrices. Le sommet du tétraèdre était à $(0,0,sqrt(3))$ et je voulais qu'il soit à $(-1,-1,1)$ . Bien sûr, je voulais vérifier que tous les sommets étaient tournés à leur place correcte et le produit des matrices : egin Y = gauche ( egin cos alpha & -sin alpha & 0 sin alpha & cos alpha & 0 0 & 0 & 1 end ight ) = left ( egin frac> <2>& -frac> <2>& 0 frac> <2>& frac> <2>& 0 0 & 0 & 1 end ight ) end

C'est la matrice : egin frac<1> <6>gauche ( egin sqrt <6>& -3sqrt <2>& - 2 sqrt <3> sqrt <6>& 3 sqrt <2>& -2 sqrt <3> 2 sqrt <6 >& 0 & 2 sqrt <3>end ight ) end

Je pensais que la rotation de Rodrigues (celle envisagée ici) ferait l'affaire mais ce n'est pas le cas. J'ai calculé la rotation de Rodrigues pour ce problème. Voici le résultat :

Cette matrice mappe correctement le vecteur $(0,0,1)$ dans le vecteur $frac<1>> (-1,-1,1)$ comme promis, mais les trois autres vecteurs sur la base de la pyramide (tétraèdre) ne sont pas correctement cartographiées dans leurs positions.

Le sens de ceci est que, pour cartographier des corps rigides par rotations, il n'y a pas de formule magique où une seule matrice pourrait être trouvée et à la place une multiplication de matrices élémentaires (ou non élémentaires) est nécessaire pour faire le travail, sauf si nous avons de la chance . Droite?


1 réponse 1

Vous ne pouvez pas faire pivoter du texte à l'intérieur d'un bloc de texte. Mais.

Pour faire pivoter le bornes d'un cadre de texte sans également faire pivoter le texte à l'intérieur,

  1. Sélectionnez le cadre de texte.
  2. Passez à la flèche blanche (l'« Outil de sélection directe »).
  3. Utilisez "Sélectionner tout". Dans le contexte de la flèche blanche, cela signifie les points du cadre de votre bloc de texte.
  4. Faites pivoter comme vous le souhaitez : à l'aide de l'outil Rotation, saisissez une valeur dans la zone Angle de la barre de contrôle, appuyez sur les boutons 90° dans le sens horaire/antihoraire ou utilisez le menu Objet > Transformer > Faire pivoter.

Cela signifie que vous devez adopter une approche en 2 étapes pour voir uniquement votre texte pivoté "en place". Assurez-vous que le proxy du point de référence dans votre barre de contrôle a son centre sélectionné. Faites pivoter le cadre selon les instructions ci-dessus. Sélectionnez l'objet avec le le noir flèche (revenir à la flèche noire suffit), et faites-la pivoter de la même quantité dans le sens négatif. Si vous effectuez une rotation par pas de 90°, vous pouvez utiliser les boutons correspondants dans la barre de contrôle.

Il aurait été préférable de dessiner l'objet et le texte comme deux objets déconnectés, afin que vous puissiez changer l'orientation de l'un sans changer celle des autres. Même si vous les avez regroupés, vous pouvez sélectionner uniquement l'objet cadre pour le faire pivoter avec Objet > Sélectionner > Contenu (il y a aussi des boutons pour cela dans la barre de contrôle).

Pour modifier facilement la mise en forme globale du texte, vous pouvez appliquer un style de paragraphe à tout votre texte et ne le modifier que lorsque cela est nécessaire.


Exemples

Écrire des données de point dans un fichier KML à l'aide du vecteur de géopoint

Renvoyer les données de point dans le vecteur de géopoint.

Définissez le nom du fichier KML que vous souhaitez créer.

Définissez les couleurs que vous souhaitez utiliser avec les données ponctuelles.

Écrivez les données de point dans le fichier, en utilisant des paramètres facultatifs pour spécifier les noms des points et définir les couleurs utilisées pour les icônes.

Écrire des données de ligne dans un fichier KML à l'aide du vecteur geoshape

Lire les entités linéaires dans un vecteur de géoforme.

Définissez le nom du fichier KML que vous souhaitez créer.

Écrivez les données de ligne dans le fichier, en utilisant plusieurs paramètres facultatifs pour spécifier la couleur et la largeur des lignes, ainsi que leurs noms et descriptions.

Écrire des données géographiques dans un fichier KML à l'aide de geostruct

Lisez les données géographiques (emplacements des grandes villes européennes) à partir d'un fichier de forme, y compris les noms des villes. Cela renvoie une structure.

Convertissez la structure en vecteur de géopoint.

Définissez le nom du fichier KML que vous souhaitez créer.

Écrivez les données géographiques dans un fichier KML. Utilisez le paramètre Name facultatif pour inclure les noms des villes dans les repères. Supprimez le tableau de description par défaut.

Écrire une adresse non structurée dans un fichier KML

Créez un tableau de cellules d'adresses non structurées (les noms de plusieurs villes australiennes).

Définissez le nom du fichier KML que vous souhaitez créer.

Écrivez les données d'adresse non structurées dans un fichier KML, en utilisant le paramètre Name facultatif pour inclure les noms des villes dans les repères.

Écrire des données de polygone dans un fichier KML à l'aide du vecteur geoshape

Lire les données de polygone du fichier, renvoyées dans une structure.

Convertissez la structure en vecteur de géoforme.

Écrivez les données de polygone dans un fichier KML, en utilisant des paramètres facultatifs pour spécifier les couleurs des faces et des arêtes du polygone.


Crée des polygones tampons planaires (ou euclidiens) à une distance spécifiée autour des géométries en entrée.

Calcule la géométrie découpée à partir d'une géométrie cible par une enveloppe.

Indique si une géométrie contient une autre géométrie.

Calcule l'enveloppe convexe de la géométrie en entrée.

Indique si une géométrie croise une autre géométrie.

Divisez la polyligne ou le polygone d'entrée à l'endroit où il croise une polyligne de coupe.

Densifier les géométries en traçant des points entre les sommets existants.

Crée la différence de deux géométries.

Indique si une géométrie est disjointe (n'intersecte en aucune façon) avec une autre géométrie.

Calcule la distance plane la plus courte entre deux géométries.

Indique si deux géométries sont égales.

Renvoie un objet contenant des informations supplémentaires sur la référence spatiale d'entrée.

Inverse une géométrie sur l'axe horizontal.

Inverse une géométrie sur l'axe vertical.

Effectue l'opération de généralisation sur les géométries du curseur.

Calcule l'aire de la géométrie en entrée.

Crée des polygones tampons géodésiques à une distance spécifiée autour des géométries en entrée.

Renvoie une version géodésiquement densifiée de la géométrie en entrée.

Calcule la longueur de la géométrie d'entrée.

Crée une nouvelle géométrie par intersection entre deux géométries.

Indique si une géométrie croise une autre géométrie.

Indique si la géométrie donnée est topologiquement simple.

Recherche la coordonnée de la géométrie la plus proche du point spécifié.

Recherche le sommet de la géométrie la plus proche du point spécifié.

Trouve tous les sommets à la distance donnée du point spécifié, triés du plus proche au plus éloigné et les renvoie sous forme de tableau d'objets.

L'opération de décalage crée une géométrie qui est à une distance plane constante d'une polyligne ou d'un polygone en entrée.

Indique si une géométrie chevauche une autre géométrie.

Calcule l'aire de la géométrie en entrée.

Calcule la longueur de la géométrie d'entrée.

Indique si la relation DE-9IM donnée est valable pour les deux géométries.

Fait pivoter une géométrie dans le sens inverse des aiguilles d'une montre du nombre de degrés spécifié.

Effectue l'opération de simplification sur la géométrie qui modifie les géométries données pour rendre leurs définitions topologiquement légales par rapport à leur type de géométrie.

Crée la différence symétrique de deux géométries.

Indique si une géométrie touche une autre géométrie.

Toutes les entrées doivent être du même type de géométries et partager une référence spatiale.

Indique si une géométrie se trouve dans une autre géométrie.

Détails de la méthode

Crée des polygones tampons planaires (ou euclidiens) à une distance spécifiée autour des géométries en entrée.

Le GeometryEngine a deux méthodes pour mettre en mémoire tampon les géométries côté client : buffer et geodesicBuffer. Soyez prudent lorsque vous décidez de la méthode à utiliser. En règle générale, utilisez geodesicBuffer si les géométries d'entrée ont une référence spatiale WGS84 (wkid : 4326) ou Web Mercator. N'utilisez le tampon (cette méthode) que lorsque vous essayez de tamponner des géométries avec un système de coordonnées projetées autre que Web Mercator. Si vous devez mettre en mémoire tampon des géométries avec un système de coordonnées géographiques autre que WGS84 (wkid : 4326), utilisez GeometryService.buffer().

La géométrie d'entrée du tampon. Les paramètres de géométrie et de distance doivent être spécifiés comme les deux tableaux ou les deux non-tableaux. Ne spécifiez jamais l'un comme un tableau et l'autre comme un non-tableau.

La ou les distances spécifiées pour la mise en mémoire tampon. Les paramètres de géométrie et de distance doivent être spécifiés comme les deux tableaux ou les deux non-tableaux. Ne spécifiez jamais l'un comme un tableau et l'autre comme un non-tableau.

Lors de l'utilisation d'un tableau de géométries en entrée, la longueur du tableau de géométries ne doit pas nécessairement être égale à la longueur du tableau de distances. Par exemple, si vous passez un tableau de quatre géométries : [g1, g2, g3, g4] et un tableau avec une distance : [d1] , les quatre géométries seront tamponnées par la valeur de distance unique. Si à la place vous utilisez un tableau de trois distances : [d1, d2, d3] , g1 sera tamponné par d1 , g2 par d2 , et g3 et g4 seront tous les deux tamponnés par d3 . La valeur du tableau de géométrie sera mise en correspondance un à un avec celles du tableau de distance jusqu'à ce que la valeur finale du tableau de distance soit atteinte, auquel cas cette valeur sera appliquée aux géométries restantes.

Unité de mesure de la(des) distance(s). Par défaut, les unités des géométries d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités linéaires.

Détermine si les géométries en sortie doivent être réunies en un seul polygone.

Calcule la géométrie découpée à partir d'une géométrie cible par une enveloppe.

La géométrie à découper.

L'enveloppe utilisée pour couper.

Indique si une géométrie contient une autre géométrie.

La géométrie qui est testée pour la relation "contient" avec l'autre géométrie. Considérez cette géométrie comme le "conteneur" potentiel de insideGeometry .

La géométrie qui est testée pour la relation « dans » avec le containerGeometry .

Calcule l'enveloppe convexe de la géométrie en entrée. Une enveloppe convexe est le plus petit polygone convexe qui englobe un groupe d'objets, tels que des points. La géométrie d'entrée peut être un point, un multipoint, une polyligne ou un polygone. La coque est généralement un polygone mais peut aussi être une polyligne ou un point dans les cas dégénérés.

Indique s'il faut fusionner les géométries de sortie.

Indique si une géométrie croise une autre géométrie.

La géométrie étant traversée.

Divisez la polyligne ou le polygone d'entrée à l'endroit où il croise une polyligne de coupe. Pour les polylignes, toutes les coupes de gauche sont regroupées dans la première géométrie. Les coupes droites et les coupes coïncidentes sont regroupées dans la deuxième géométrie et chaque coupe non définie, ainsi que toutes les parties non coupées, sont sorties sous forme de polylignes distinctes. Pour les polygones, toutes les coupes de gauche sont regroupées dans le premier polygone, toutes les coupes de droite sont regroupées dans le deuxième polygone, et chaque coupe non définie, ainsi que toutes les parties restantes après la coupe, sont sorties en tant que polygone distinct. Si aucune coupe n'est renvoyée, le tableau sera vide. Une coupe indéfinie ne sera produite que si une coupe à gauche ou à droite a été produite et qu'il restait une pièce après la coupe, ou si une coupe est délimitée à gauche et à droite de la fraise.

La polyligne pour couper la géométrie.

Densifier les géométries en traçant des points entre les sommets existants.

La géométrie à densifier.

La longueur de segment maximale autorisée. Doit être une valeur positive.

Unité de mesure pour maxSegmentLength. Par défaut, les unités de la géométrie d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités linéaires.

Crée la différence de deux géométries. La géométrie résultante est la partie de inputGeometry qui n'est pas dans le soustracteur. La dimension du soustracteur doit être égale ou supérieure à celle de inputGeometry.

La géométrie d'entrée à soustraire.

La géométrie étant soustraite de inputGeometry.

Indique si une géométrie est disjointe (n'intersecte en aucune façon) avec une autre géométrie.

La géométrie de base qui est testée pour la relation "disjointe" avec l'autre géométrie.

La géométrie de comparaison qui est testée pour la relation "disjointe" avec l'autre géométrie.

Calcule la distance plane la plus courte entre deux géométries. La distance est indiquée dans les unités linéaires spécifiées par distanceUnit ou, si distanceUnit est null, les unités de la spatialReference de la géométrie d'entrée.

Pour calculer la distance géodésique entre deux points, commencez par construire une polyligne en utilisant les deux points d'intérêt comme points de début et de fin d'un seul chemin. Utilisez ensuite la polyligne comme entrée pour la méthode geodesicLength().

Unité de mesure de la valeur de retour. Par défaut, les unités des géométries d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités linéaires.

Indique si deux géométries sont égales.

Renvoie un objet contenant des informations supplémentaires sur la référence spatiale d'entrée.

La référence spatiale d'entrée.

Inverse une géométrie sur l'axe horizontal. Peut éventuellement être retourné autour d'un point.

La géométrie d'entrée à retourner.

Pointez pour retourner la géométrie. La valeur par défaut est le centroïde de la géométrie.

Inverse une géométrie sur l'axe vertical. Peut éventuellement être retourné autour d'un point.

La géométrie d'entrée à retourner.

Pointez pour retourner la géométrie. La valeur par défaut est le centroïde de la géométrie.

Effectue l'opération de généralisation sur les géométries du curseur. Les géométries point et multipoint restent inchangées. L'enveloppe est convertie en polygone puis généralisée.

La géométrie d'entrée à généraliser.

L'écart maximal autorisé entre la géométrie généralisée et la géométrie d'origine.

Si vrai, les parties dégénérées de la géométrie seront supprimées de la sortie (cela peut être indésirable pour le dessin).

Unité de mesure pour maxDeviation. Par défaut, les unités de la géométrie d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités linéaires.

Calcule l'aire de la géométrie en entrée. Contrairement à planarArea(), geodesicArea prend en compte la courbure de la terre lors de ce calcul. Par conséquent, lorsque vous utilisez des géométries d'entrée avec une référence spatiale WGS84 (wkid : 4326) ou Web Mercator, il est recommandé de calculer les zones à l'aide de geodesicArea(). Si les géométries en entrée ont un système de coordonnées projetées autre que Web Mercator, utilisez plutôt planarArea().

Cette méthode ne fonctionne qu'avec les références spatiales WGS84 (wkid : 4326) et Web Mercator.

Unité de mesure de la valeur de retour. Par défaut, les unités des géométries d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités de surface.

Crée des polygones tampons géodésiques à une distance spécifiée autour des géométries en entrée. Lors du calcul des distances, cette méthode prend en compte la courbure de la terre, ce qui fournit des résultats très précis lorsqu'il s'agit de très grandes géométries et/ou de géométries qui varient spatialement à l'échelle mondiale où un système de coordonnées projeté ne pouvait pas tracer avec précision les coordonnées et mesurer les distances pour toutes les géométries.

Cette méthode ne fonctionne qu'avec les références spatiales WGS84 (wkid : 4326) et Web Mercator. En général, si vos géométries d'entrée sont affectées à l'une de ces deux références spatiales, vous devez toujours utiliser geodesicBuffer() pour obtenir les résultats les plus précis pour ces géométries. Si vous avez besoin de tamponner des points assignés à un système de coordonnées projetées autre que Web Mercator, utilisez plutôt buffer(). Si les géométries d'entrée ont un système de coordonnées géographiques autre que WGS84 (wkid : 4326), utilisez GeometryService.buffer().

La géométrie d'entrée du tampon. Les paramètres de géométrie et de distance doivent être spécifiés comme les deux tableaux ou les deux non-tableaux. Ne spécifiez jamais l'un comme un tableau et l'autre comme un non-tableau.

La ou les distances spécifiées pour la mise en mémoire tampon. Les paramètres de géométrie et de distance doivent être spécifiés comme les deux tableaux ou les deux non-tableaux. Ne spécifiez jamais l'un comme un tableau et l'autre comme un non-tableau.

Lors de l'utilisation d'un tableau de géométries en entrée, la longueur du tableau de géométries ne doit pas nécessairement être égale à la longueur du tableau de distances. Par exemple, si vous passez un tableau de quatre géométries : [g1, g2, g3, g4] et un tableau avec une distance : [d1] , les quatre géométries seront tamponnées par la valeur de distance unique. Si à la place vous utilisez un tableau de trois distances : [d1, d2, d3] , g1 sera tamponné par d1 , g2 par d2 , et g3 et g4 seront tous les deux tamponnés par d3 . La valeur du tableau de géométrie sera mise en correspondance un à un avec celles du tableau de distance jusqu'à ce que la valeur finale du tableau de distance soit atteinte, auquel cas cette valeur sera appliquée aux géométries restantes.

Unité de mesure de la(des) distance(s). Par défaut, les unités des géométries d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités linéaires.

Détermine si les géométries en sortie doivent fusionner en un seul polygone.

Renvoie une version géodésiquement densifiée de la géométrie en entrée. Utilisez cette fonction pour tracer la ou les lignes de la géométrie le long de grands cercles.

Une polyligne ou un polygone à densifier.

La longueur maximale de segment autorisée (en mètres si un maxSegmentLengthUnit n'est pas fourni). Ce doit être une valeur positive.

Unité de mesure pour maxSegmentLength . S'il n'est pas fourni, l'unité utilisera par défaut les mètres . Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités linéaires.

Calcule la longueur de la géométrie d'entrée. Contrairement à planarLength(), geodesicLength() prend en compte la courbure de la terre lors de ce calcul. Par conséquent, lorsque vous utilisez des géométries d'entrée avec une référence spatiale WGS84 (wkid : 4326) ou Web Mercator, il est recommandé de calculer les longueurs à l'aide de geodesicLength(). Si les géométries en entrée ont un système de coordonnées projetées autre que Web Mercator, utilisez plutôt planarLength().

Cette méthode ne fonctionne qu'avec les références spatiales WGS84 (wkid : 4326) et Web Mercator.

Unité de mesure de la valeur de retour. Par défaut, les unités de la géométrie d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités linéaires.

Crée une nouvelle géométrie par intersection entre deux géométries.

La géométrie étant intersectée.

Indique si une géométrie croise une autre géométrie.

La géométrie testée pour la relation d'intersection avec l'autre géométrie.

La géométrie étant intersectée.

Indique si la géométrie donnée est topologiquement simple.

Recherche la coordonnée de la géométrie la plus proche du point spécifié.

Le point utilisé pour rechercher la coordonnée la plus proche dans la géométrie.

Recherche le sommet de la géométrie la plus proche du point spécifié.

Le point utilisé pour rechercher le sommet le plus proche dans la géométrie.

Trouve tous les sommets à la distance donnée du point spécifié, triés du plus proche au plus éloigné et les renvoie sous forme de tableau d'objets.

Le point à partir duquel mesurer.

La distance à rechercher à partir du point d'entrée dans les unités de la référence spatiale de la vue.

Le nombre maximum de sommets à renvoyer.

L'opération de décalage crée une géométrie qui est à une distance plane constante d'une polyligne ou d'un polygone en entrée. Il est similaire à la mise en mémoire tampon, mais produit un résultat unilatéral.

Distance planaire à décaler par rapport à la géométrie d'entrée. Si offsetDistance > 0, alors la géométrie décalée est construite à droite de la géométrie d'entrée orientée, si offsetDistance = 0, alors il n'y a aucun changement dans les géométries, sinon elle est construite à gauche. Pour un polygone simple, l'orientation des anneaux extérieurs est dans le sens des aiguilles d'une montre et pour les anneaux intérieurs, elle est dans le sens inverse des aiguilles d'une montre. Ainsi, le "côté droit" d'un simple polygone est toujours son intérieur.

Unité de mesure de la distance de décalage. Par défaut, les unités des géométries d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités linéaires.

Valeurs possibles : "rond" | "biseau" | "onglet" | "carré"

Applicable lorsque joinType = 'miter' bevelRatio est multiplié par la distance de décalage et le résultat détermine à quelle distance une intersection de décalage à onglet peut être localisée avant qu'elle ne soit biseautée.

Applicable lorsque joinType = 'round' flattenError détermine la distance maximale des segments résultants par rapport au véritable arc de cercle. L'algorithme ne produit jamais plus de 180 sommets environ pour chaque jointure ronde.

Indique si une géométrie chevauche une autre géométrie.

La géométrie de base qui est testée pour la relation de "chevauchement" avec l'autre géométrie.

La géométrie de comparaison qui est testée pour la relation de "chevauchement" avec l'autre géométrie.

Calcule l'aire de la géométrie en entrée. Contrairement à geodesicArea(), planarArea() effectue ce calcul en utilisant les coordonnées projetées et ne prend pas en compte la courbure de la terre. Lorsque vous utilisez des géométries d'entrée avec une référence spatiale WGS84 (wkid : 4326) ou Web Mercator, il est recommandé de calculer les zones à l'aide de geodesicArea(). Si les géométries en entrée ont un système de coordonnées projetées autre que Web Mercator, utilisez plutôt planarArea().

Unité de mesure de la valeur de retour. Par défaut, les unités des géométries d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités de surface.

Calcule la longueur de la géométrie d'entrée. Contrairement à geodesicLength(), planarLength() utilise des coordonnées projetées et ne prend pas en compte la courbure de la terre lors de l'exécution de ce calcul. Lorsque vous utilisez des géométries d'entrée avec une référence spatiale WGS84 (wkid : 4326) ou Web Mercator, il est recommandé de calculer les longueurs à l'aide de geodesicLength(). Si les géométries en entrée ont un système de coordonnées projetées autre que Web Mercator, utilisez plutôt planarLength().

Unité de mesure de la valeur de retour. Par défaut, les unités des géométries d'entrée. Utilisez l'une des valeurs possibles répertoriées ci-dessous ou l'un des codes numériques pour les unités linéaires.

Indique si la relation DE-9IM donnée est valable pour les deux géométries.

La première géométrie de la relation.

La deuxième géométrie pour la relation.

La relation matricielle Dimensionally Extended 9 Intersection Model (DE-9IM) (codée sous forme de chaîne) pour tester la relation entre les deux géométries. Cette chaîne contient le résultat du test de chaque intersection représentée dans la matrice DE-9IM. Chaque résultat est un caractère de la chaîne et peut être représenté soit par un nombre (dimension maximale renvoyée : 0 , 1 , 2 ), une valeur booléenne ( T ou F ) ou un caractère de masque (pour ignorer les résultats : '*') .

Exemple : Chacun des codes de chaîne DE-9IM suivants est valide pour tester si une géométrie de polygone contient complètement une géométrie de ligne : TTTFFTFFT (booléen), 'T*****FF*' (ignorer les intersections non pertinentes) ou '102FF* FF*' (forme des cotes). Chacun renvoie le même résultat.

Consultez cet article et cette page d'aide ArcGIS pour plus d'informations sur le modèle DE-9IM et la façon dont les codes de chaîne sont construits.

Fait pivoter une géométrie dans le sens inverse des aiguilles d'une montre du nombre de degrés spécifié. La rotation est autour du centroïde, ou d'un point de rotation donné.

L'angle de rotation en degrés.

Pointez pour faire pivoter la géométrie. La valeur par défaut est le centroïde de la géométrie.

Effectue l'opération de simplification sur la géométrie qui modifie les géométries données pour rendre leurs définitions topologiquement légales par rapport à leur type de géométrie.

La géométrie à simplifier.

Crée la différence symétrique de deux géométries. La différence symétrique inclut les pièces qui se trouvent dans l'un ou l'autre des ensembles, mais pas dans les deux.

L'une des instances Geometry dans l'opération XOR.

L'une des instances Geometry dans l'opération XOR.

Indique si une géométrie touche une autre géométrie.

La géométrie pour tester la relation "touche" avec l'autre géométrie.

La géométrie à toucher.

Toutes les entrées doivent être du même type de géométries et partager une référence spatiale.

Un tableau de géométries à réunir.

Indique si une géométrie se trouve dans une autre géométrie.

La géométrie de base qui est testée pour la relation "à l'intérieur" avec l'autre géométrie.

La géométrie de comparaison qui est testée pour la relation "contient" avec l'autre géométrie.


Voir la vidéo: monikulmio