Suite

Créer une ligne en plusieurs parties à partir de listes de paires de coordonnées à l'aide d'objets de géométrie dans ArcPy ?

Créer une ligne en plusieurs parties à partir de listes de paires de coordonnées à l'aide d'objets de géométrie dans ArcPy ?


Je développe un script dans lequel je souhaite créer une géométrie de ligne en plusieurs parties.

Par exemple:

J'ai un tableau de points a,b,c et un deuxième tableau de points e,d,f.

Je veux créer une ligne en plusieurs parties où a,b,c définit une partie et e,d,f définit la deuxième partie.

Est-ce possible avec ArcPy ?

Quelque chose commearcpy.polyline([a,b,c], [d,e,f])?


Je l'ai résolu avec ce code :

arr1 = arcpy.Array([a,b,c]) arr2 = arcpy.Array([d,e,f]) resArr = arcpy.Array([arr1,arr2]) pL = arcpy.Polyline(resArr)

En muchos flujos de trabajo de geoprocesamiento, puede que necesite ejecutar una operación concreta utilizando información de coordenadas y geometría, pero que no necesariamente desee pasar por el proceso de crear una nueva clase de entidad (temporal), llenar la clase utilizar la clase de entidad y, a continuación, eliminar la clase de entidad temporal. En su lugar, puede utilizar objets de geometría tanto para la entrada como para la salida con el fin de facilitar el geoprocesamiento. Los objets de geometría se pueden crear desde cero usando classes Geometry , Multipoint , PointGeometry , Polygon o Polyline .

Le type de géométrie : point, polygone, polyligne ou multipoint.

Les coordonnées utilisées pour créer l'objet. Le type de données peut être des objets Point ou Array.

La référence spatiale de la nouvelle géométrie.

(El valor predeterminado es None)

L'état Z : True pour la géométrie si Z est activé et False si ce n'est pas le cas.

(El valor predeterminado es False)

L'état M : Vrai pour la géométrie si M est activé et Faux si ce n'est pas le cas.

(El valor predeterminado es False)


Eigenschaften

Renvoie une représentation JSON de la géométrie sous forme de chaîne.

La chaîne renvoyée peut être convertie en dictionnaire à l'aide de la fonction json.loads de Python.

Renvoie la représentation binaire bien connue (WKB) pour la géométrie OGC. Il fournit une représentation portable d'une valeur géométrique sous la forme d'un flux contigu d'octets.

Renvoie la représentation textuelle connue (WKT) pour la géométrie OGC. Il fournit une représentation portable d'une valeur géométrique sous forme de chaîne de texte.

L'aire d'une entité surfacique. Vide pour tous les autres types d'entités.

Le véritable centroïde s'il se trouve dans ou sur l'entité sinon, le point d'étiquette est renvoyé. Renvoie un objet point.

L'étendue de la géométrie.

Le premier point de coordonnées de la géométrie.

Une chaîne délimitée par des espaces des paires de coordonnées du rectangle à enveloppe convexe.

Vrai, si le nombre de pièces pour cette géométrie est supérieur à un.

Le point où se trouve l'étiquette. Le labelPoint est toujours situé dans ou sur une entité.

La dernière coordonnée de l'entité.

La longueur de l'entité linéaire. Zéro pour les types d'entités point et multipoint.

La longueur 3D de l'entité linéaire. Zéro pour les types d'entités point et multipoint.

Le nombre de pièces géométriques pour la fonction.

Le nombre total de points pour l'entité.

La référence spatiale de la géométrie.

Le centre de gravité d'une entité.

Le type de géométrie : polygone, polyligne, point, multipoint, multipatch, cote ou annotation.


Présentation de la méthode

Renvoie un tuple d'angle et de distance à un autre point à l'aide d'un type de mesure.

Construit la limite de la géométrie.

Construit un polygone à une distance spécifiée de la géométrie.

Construit l'intersection de la géométrie et de l'étendue spécifiée.

Indique si la géométrie de base contient la géométrie de comparaison.

contient est l'opposé de à l'intérieur.

Seules les relations vraies sont affichées dans cette illustration.

Construit la géométrie qui est le polygone de délimitation minimal de telle sorte que tous les angles extérieurs soient convexes.

Indique si les deux géométries se coupent dans une géométrie d'un type de forme inférieur.

Deux polylignes se croisent si elles ne partagent que des points en commun, dont au moins un n'est pas une extrémité. Une polyligne et un polygone se croisent s'ils partagent une polyligne ou un point (pour une ligne verticale) en commun à l'intérieur du polygone qui n'est pas équivalent à la polyligne entière.

Seules les relations vraies sont affichées dans cette illustration.

Divise cette géométrie en une partie à gauche de la polyligne de coupe et une partie à droite de celle-ci.

Lorsqu'une polyligne ou un polygone est coupé, il est divisé à l'endroit où il coupe la polyligne de coupe. Chaque pièce est classée à gauche ou à droite de la fraise. Cette classification est basée sur l'orientation de la ligne de coupe. Les parties de la polyligne cible qui n'intersectent pas la polyligne de coupe sont renvoyées comme faisant partie du droit de résultat pour cette polyligne en entrée. Si une géométrie n'est pas coupée, la géométrie de gauche sera vide ( Aucun ).

Construit la géométrie composée uniquement de la région unique de la géométrie de base mais ne faisant pas partie de l'autre géométrie. L'illustration suivante montre les résultats lorsque le polygone rouge est la géométrie source.

Indique si les géométries de base et de comparaison ne partagent aucun point commun.

Deux géométries se coupent si disjoint renvoie False .

Seules les relations vraies sont affichées dans cette illustration.

Renvoie la distance minimale entre deux géométries. La distance est dans les unités de la référence spatiale de la géométrie. Si les géométries se coupent, la distance minimale est 0.

Les deux géométries doivent avoir la même projection.

Indique si les géométries de base et de comparaison sont du même type de forme et définissent le même ensemble de points dans le plan. Il s'agit d'une comparaison 2D, seules les valeurs M et Z sont ignorées.

Seules les relations vraies sont affichées dans cette illustration.

Renvoie un objet Array d'objets Point pour une partie particulière de la géométrie si un index est spécifié. Si aucun index n'est spécifié, un objet Array contenant un Array of Point objets pour chaque partie de géométrie est renvoyé.

La méthode getPart équivaut à indexer un objet, c'est-à-dire que obj.getPart(0) équivaut à obj[0] .

Construit une géométrie qui est l'intersection géométrique des deux géométries en entrée. Différentes valeurs de dimension peuvent être utilisées pour créer différents types de formes.

L'intersection de deux géométries du même type de forme est une géométrie contenant uniquement les régions de chevauchement entre les géométries d'origine.

Pour des résultats plus rapides, testez si les deux géométries sont disjointes avant d'appeler intersect .

Indique si l'intersection des deux géométries a le même type de forme que l'une des géométries en entrée et n'est équivalente à aucune des géométries en entrée.

Seules les relations vraies sont affichées dans cette illustration.

Projette une géométrie et applique éventuellement une géotransformation.

Pour projeter, la géométrie doit avoir une référence spatiale et ne pas avoir un système de coordonnées inconnu. Le nouveau système de référence spatiale passé à la méthode définit le système de coordonnées de sortie. Si l'une des références spatiales est inconnue, les coordonnées ne seront pas modifiées. Les valeurs z et m ne sont pas modifiées par la méthode projectAs.

Construit la géométrie qui est l'union de deux géométries moins l'intersection de ces géométries.

Les deux géométries d'entrée doivent être du même type de forme.

Indique si les limites des géométries se coupent.

Deux géométries se touchent lorsque l'intersection des géométries n'est pas vide, mais que l'intersection de leurs intérieurs est vide. Par exemple, un point touche une polyligne uniquement si le point coïncide avec l'un des points d'extrémité de la polyligne.

Seules les relations vraies sont affichées dans cette illustration.

Construit la géométrie qui est l'union théorique des ensembles des géométries d'entrée.

Les deux géométries réunies doivent être du même type de forme.

Indique si la géométrie de base se trouve dans la géométrie de comparaison.

dans est l'opérateur opposé de contient .

Seules les relations vraies sont affichées dans cette illustration.

La géométrie de base est dans la géométrie de comparaison si la géométrie de base est l'intersection des géométries et que l'intersection de leurs intérieurs n'est pas vide. inside est un opérateur de Clementini, sauf dans le cas d'une géométrie de base vide.


Méthode

Les mesures PLANAR reflètent la projection de données géographiques sur la surface 2D (en d'autres termes, elles ne prendront pas en compte la courbure de la terre). Les types de mesure GEODESIC , GREAT_ELLIPTIC , LOXODROME et PRESERVE_SHAPE peuvent être choisis comme alternative, si vous le souhaitez.

  • GÉODÉSIQUE — La ligne la plus courte entre deux points quelconques de la surface terrestre sur un sphéroïde (ellipsoïde). Une ligne géodésique est utilisée lorsque vous souhaitez déterminer la distance la plus courte entre deux villes pour la trajectoire de vol d'un avion. Ceci est également connu comme une grande ligne circulaire si elle est basée sur une sphère plutôt que sur un ellipsoïde.
  • GREAT_ELLIPTIC — La ligne sur un sphéroïde (ellipsoïde) définie par l'intersection à la surface d'un plan qui passe par le centre du sphéroïde et les points de départ et d'extrémité d'un segment. Ceci est également connu comme un grand cercle lorsqu'une sphère est utilisée.
  • LOXODROME — Un loxodrome n'est pas la distance la plus courte entre deux points, mais définit plutôt la ligne de relèvement constant, ou azimut. Les grands itinéraires circulaires sont souvent divisés en une série de loxodromes, ce qui simplifie la navigation. Ceci est également connu comme une ligne de rhumb.
  • PLANAIRE — Les mesures planaires utilisent les mathématiques cartésiennes 2D pour calculer les longueurs et les aires. Cette option n'est disponible que lors de la mesure dans un système de coordonnées projetées et le plan 2D de ce système de coordonnées sera utilisé comme base pour les mesures.
  • PRESERVE_SHAPE — Ce type calcule l'aire ou la longueur de la géométrie à la surface de l'ellipsoïde terrestre, pour la géométrie définie dans un système de coordonnées projetées ou géographiques. Cette option préserve la forme de la géométrie dans son système de coordonnées.

(Der Standardwert ist GEODESIC)

Renvoie un tuple d'angle (en degrés) et de distance (en mètres) à un autre point.

La limite d'un polygone est une polyligne. La limite d'une polyligne est un multipoint, correspondant aux extrémités de la ligne. La limite d'un point ou d'un multipoint est un point ou un multipoint vide.

La distance de tampon est dans les mêmes unités que la géométrie qui est tamponnée.

Une distance négative ne peut être spécifiée que par rapport à une géométrie polygonale.

La géométrie du polygone tamponné.

Objet Extent utilisé pour définir l'étendue du découpage.

Une géométrie en sortie découpée à l'étendue spécifiée.

Le type de relation spatiale.

  • LIMITE — La relation n'a pas de restrictions pour les intérieurs ou les limites.
  • CLEMENTINI — Les intérieurs des géométries doivent se croiser. Spécifier CLEMENTINI équivaut à spécifier None . C'est la valeur par défaut.
  • APPROPRIÉ — Les limites des géométries ne doivent pas se croiser.

(Der Standardwert is None)

Une valeur booléenne de retour True indique que cette géométrie contient la deuxième géométrie.

La géométrie résultante. L'enveloppe convexe d'un seul point est le point lui-même.

Der boolesche Rückgabetyp "True" gibt an, dass sich die beiden Geometrien in einer Geometrie mit einem geringeren Shape-Typ schneiden.

La géométrie de la polyligne de coupe.

Le type de densification, DISTANCE , ANGLE ou GEODESIC .

  • DISTANCE — Crée une nouvelle entité qui est une approximation linéaire par morceaux de l'entrée.
  • ANGLE — Crée une nouvelle entité qui est une approximation linéaire par morceaux de l'entrée. Les sommets sont introduits aux points où l'angle entre les tangentes à ces points est l'angle fourni.
  • GEODESIC — Densifie et remodèle les segments entre les sommets d'entrée de sorte que les segments de sortie suivent le chemin au sol le plus court reliant les sommets d'entrée.

La distance maximale entre les sommets. La distance réelle entre les sommets sera généralement inférieure à la distance maximale car les nouveaux sommets seront uniformément répartis le long du segment d'origine.

Si vous utilisez un type DISTANCE ou ANGLE , la distance est mesurée dans les unités de la référence spatiale de la géométrie. Si vous utilisez un type de GEODESIC , la distance est mesurée en mètres.

Densifier utilise des lignes droites pour approximer les courbes. Vous utilisez la déviation pour contrôler la précision de cette approximation. L'écart est la distance maximale entre le nouveau segment et la courbe d'origine. Plus sa valeur est petite, plus il faudra de segments pour approximer la courbe.

Si vous utilisez un type DISTANCE , l'écart est mesuré dans les unités de la référence spatiale de la géométrie. Si vous utilisez un type d'ANGLE , l'écart est mesuré en radians. Si vous utilisez un type de GEODESIC , la déviation n'est pas utilisée.


Ceci est une adaptation de la réponse de Yosukesabai.

Je voulais m'assurer que le point que je cherchais était dans le même système de projection que le fichier de formes, j'ai donc ajouté du code pour cela.

Je ne pouvais pas comprendre pourquoi il faisait un test de contenu sur ply = feat_in.GetGeometryRef() (dans mes tests, les choses semblaient fonctionner aussi bien sans), alors je l'ai supprimé.

J'ai également amélioré les commentaires pour mieux expliquer ce qui se passe (tel que je le comprends).

Ce site, ce site et ce site ont été utiles en ce qui concerne le contrôle de projection. EPSG : 4326

Une autre option consiste à utiliser Shapely (une bibliothèque Python basée sur GEOS, le moteur de PostGIS) et Fiona (qui sert essentiellement à lire/écrire des fichiers) :

Notez que faire des tests point dans un polygone peut être coûteux si le polygone est grand/compliqué (par exemple, les fichiers de formes pour certains pays avec des côtes extrêmement irrégulières). Dans certains cas, il peut être utile d'utiliser des cadres de délimitation pour éliminer rapidement les choses avant de faire le test plus intensif :

Enfin, gardez à l'esprit qu'il faut un certain temps pour charger et analyser des fichiers de formes volumineux/irréguliers (malheureusement, ces types de polygones sont souvent coûteux à garder en mémoire également).

Voici une solution simple basée sur pyshp et bien faite.

Supposons que votre fichier de formes ne contienne qu'un seul polygone (mais vous pouvez facilement vous adapter à plusieurs polygones) :

j'ai fait presque exactement ce que vous faites hier en utilisant l'ogr de gdal avec une liaison python. Ça ressemblait à ça.


J'ai donc découvert que l'astuce consiste à utiliser une combinaison des méthodes de la classe Polygon pour y parvenir.

Si vous voulez des coordonnées géodésiques, vous devez ensuite les retransformer en WGS84 (via pyproj , le fond de carte de matplotlib ou quelque chose du genre).

Il m'a fallu un certain temps pour apprendre qu'un polygone a une limite extérieure et peut-être plusieurs limites intérieures. Je poste ici parce que certaines des réponses ne reflètent pas cette distinction, mais pour être juste, le message d'origine n'a pas utilisé comme exemple un polygone avec des limites intérieures.

Les points formant la limite extérieure sont disposés dans une séquence de coordonnées, qui peut être obtenue comme

Vous pouvez trouver la longueur de cet objet à l'aide de len(polygon.exterior.coords) et indexer l'objet comme une liste. Pour obtenir le premier sommet, par exemple, utilisez polygon.exterior.coords[0] . Notez que le premier et le dernier point sont les mêmes si vous voulez une liste composée des sommets sans ce point répété, utilisez polygon.exterior.coords[:-1] .

Vous pouvez convertir le CoordinateSequence (y compris le sommet répété) en une liste de points ainsi :


Syntaxe

Les entités à point unique qui représentent les points d'observation. Les fonctionnalités multipoints ne sont pas prises en charge.

Les entités cibles (points, multipoints, lignes et polygones).

Classe d'entités en sortie contenant les lignes de visée.

La source des valeurs de hauteur pour les points d'observation obtenues à partir de sa table attributaire.

Un champ Champ de hauteur d'observateur par défaut est sélectionné parmi les options répertoriées ci-dessous par ordre de priorité. S'il existe plusieurs champs et que le champ souhaité n'a pas une priorité plus élevée dans la sélection de champs par défaut, le champ souhaité devra être spécifié.

  • <None> : aucune valeur Z ne sera attribuée aux entités de ligne de visée résultantes.
  1. Forme.Z
  2. Endroit
  3. Z
  4. Valeur_Z
  5. Hauteur
  6. Élévation
  7. Élévation
  8. Contour

Le champ de hauteur de la cible.

Un champ de hauteur cible par défaut est sélectionné parmi les options répertoriées ci-dessous par ordre de priorité. S'il existe plusieurs champs et que le champ souhaité n'a pas une priorité plus élevée dans la sélection de champs par défaut, le champ souhaité devra être spécifié.

  • <None> : aucune valeur Z ne sera attribuée aux entités de ligne de visée résultantes.
  1. Forme.Z
  2. Endroit
  3. Z
  4. Valeur_Z
  5. Hauteur
  6. Élévation
  7. Élévation
  8. Contour

Le champ de jointure est utilisé pour faire correspondre les observateurs à des cibles spécifiques.

Distance entre les échantillons lorsque la cible est une classe d'entités linéaires ou surfaciques. Les unités de distance d'échantillonnage sont interprétées dans les unités XY de la classe d'entités en sortie.

Ajoute des attributs de direction aux lignes de visée en sortie. Deux champs supplémentaires seront ajoutés et remplis pour indiquer la direction : AZIMUT et VERT_ANGLE (angle vertical).

  • NOT_OUTPUT_THE_DIRECTION — Aucun attribut de direction ne sera ajouté aux lignes de visée en sortie. C'est la valeur par défaut.
  • OUTPUT_THE_DIRECTION — Deux champs supplémentaires seront ajoutés et renseignés pour indiquer la direction : AZIMUTH et VERT_ANGLE (angle vertical).

Vue d'ensemble des méthodes

Construit la limite de la géométrie.

Construit un polygone à une distance spécifiée de la géométrie.

Construit l'intersection de la géométrie et de l'étendue spécifiée.

Indique si la géométrie de base contient la géométrie de comparaison.

contient est le contraire de inside .

Seules les relations vraies sont affichées dans cette illustration.

Construit la géométrie qui est le polygone de délimitation minimal de telle sorte que tous les angles extérieurs soient convexes.

Indique si les deux géométries s'intersectent dans une géométrie de type de forme inférieure.

Deux polylignes se croisent si elles partagent uniquement des points, dont au moins un n'est pas une extrémité. Une polyligne et un polygone se croisent s'ils partagent une polyligne ou un point (pour une ligne verticale) à l'intérieur du polygone qui n'est pas équivalent à la polyligne entière.

Seules les relations vraies sont affichées dans cette illustration.

Divise cette géométrie en une partie à gauche de la polyligne de coupe et une partie à droite de celle-ci.

Lorsqu'une polyligne ou un polygone est coupé, il est divisé à l'endroit où il coupe la polyligne de coupe. Chaque pièce est classée à gauche ou à droite de la fraise. Cette classification est basée sur l'orientation de la ligne de coupe. Les parties de la polyligne cible qui n'intersectent pas la polyligne de coupe sont renvoyées comme faisant partie du droit de résultat pour cette polyligne en entrée. Si une géométrie n'est pas coupée, la géométrie de gauche sera vide ( Aucun ).

Construit la géométrie composée uniquement de la région unique de la géométrie de base mais ne faisant pas partie de l'autre géométrie. L'illustration suivante montre les résultats lorsque le polygone rouge est la géométrie source.

Indique si la géométrie de base et la géométrie de comparaison n'ont aucun point en commun.

Deux géométries s'intersectent si la propriété disjoint renvoie False .

Seules les relations vraies sont affichées dans cette illustration.

Renvoie la distance minimale entre deux géométries. Si les géométries se coupent, la distance minimale est 0.

Les deux géométries doivent avoir la même projection.

Indique si les géométries de base et de comparaison sont du même type de forme et définissent le même ensemble de points dans le plan. Il s'agit d'une comparaison 2D, seules les valeurs M et Z sont ignorées.

Seules les relations vraies sont affichées dans cette illustration.

Renvoie la zone de l'entité à l'aide d'un type de mesure.

Renvoie la longueur de l'entité à l'aide d'un type de mesure.

Renvoie un tableau d'objets ponctuels pour une partie particulière de la géométrie ou un tableau contenant un certain nombre de tableaux, un pour chaque partie.

Construit une géométrie qui est l'intersection géométrique des deux géométries en entrée. Différentes valeurs de dimension peuvent être utilisées pour créer différents types de formes.

L'intersection de deux géométries du même type de forme est une géométrie contenant uniquement les régions de chevauchement entre les géométries d'origine.

Pour des résultats plus rapides, testez si les deux géométries sont disjointes avant d'appeler intersect .

Renvoie une mesure du point de départ de cette ligne au in_point .

Indique si l'intersection des deux géométries possède le même type de forme que l'une des géométries en entrée et qu'elle n'est pas équivalente à l'une des géométries en entrée.

Seules les relations vraies sont affichées dans cette illustration.

Renvoie un point sur une ligne à une distance spécifiée du début de la ligne.

Projette une géométrie et applique éventuellement une géotransformation.

Pour projeter, la géométrie doit avoir une référence spatiale et non un UnknownCoordinateSystem . Le nouveau système de référence spatiale passé à la méthode définit le système de coordonnées de sortie. Si l'une des références spatiales est inconnue, les coordonnées ne seront pas modifiées. Les valeurs Z et de mesure ne sont pas modifiées par la méthode ProjectAs.

Recherche le point sur la polyligne le plus proche du point in_point et la distance entre ces points. Renvoie également des informations sur le côté de la ligne sur lequel se trouve in_point ainsi que la distance le long de la ligne où se trouve le point le plus proche.

Renvoie un nouveau point basé sur in_point accroché à cette géométrie.

Construit la géométrie qui est l'union de deux géométries moins l'intersection de ces géométries.

Les deux géométries d'entrée doivent être du même type de forme.

Indique si les limites des géométries s'intersectent.

Deux géométries se touchent lorsque l'intersection des géométries n'est pas vide, mais que l'intersection de leurs intérieurs est vide. Par exemple, un point touche une polyligne uniquement s'il coïncide avec l'une des extrémités de la polyligne.

Seules les relations vraies sont affichées dans cette illustration.

Construit la géométrie qui est l'union théorique des ensembles des géométries d'entrée.

Les deux géométries réunies doivent être du même type de forme.

Indique si la géométrie de base se trouve dans la géométrie de comparaison.

dans est l'opérateur contraire de contient .

Seules les relations vraies sont affichées dans cette illustration.


Vous cherchez de l'aide pour afficher des paires de coordonnées XY sous forme de lignes dans ArcGIS

Ok, je cherche de l'aide ici. J'essaie actuellement d'obtenir des données dans ArcGIS pour un projet animal de compagnie sur lequel je travaille, mais j'ai quelques problèmes. J'ai actuellement quelques fichiers CSV contenant diverses données et j'essaie de les extraire dans ArcGIS. J'ai deux choses, un ensemble de points et une liste de paires d'identifiants de points qui définissent des lignes entre les points. La chose qui me cause le plus de problèmes, je pense, c'est que ce ne sont dans aucun système de coordonnées géographiques, ce ne sont que des coordonnées XY arbitraires qui ne signifient rien d'autre que la position relative (et elles ne sont pas destinées à).

À ce stade, j'ai réussi à importer les points et à les afficher correctement sur la carte. Voici un échantillon des données de points (les noms de colonnes ne sont pas dans les données réelles, je les ai juste ajoutés pour fournir un contexte). Je l'importe en ajoutant une table à mon .gdb, en l'ajoutant à la carte, puis en affichant les données XY (en utilisant Z comme Y, car c'est ce qui fonctionne correctement, IDK pourquoi les données source sont orientées comme ça) .

Et voici un échantillon des définitions de segments de ligne que je souhaite également afficher sur la carte (encore une fois, juste un petit sous-ensemble des données réelles, mais représentatif).

Jusqu'à présent, j'ai réussi à ajouter des paires de coordonnées source et destination dans le fichier de segments de ligne à l'aide de Python pour dicter les données XZ par ID, puis les insérer dans un nouveau fichier CSV avec les données de lien, comme indiqué dans ces données.

Cependant, je n'arrive pas à afficher ces données dans ArcGIS. J'ai essayé d'utiliser l'outil XY to Line pour l'importer, mais après avoir pris un certain temps pour traiter les paires de points 14k, rien n'est dessiné à l'écran. Je soupçonne que cela pourrait être dû au fait que l'outil XY to Line demande une référence spatiale, mais honnêtement, je ne suis pas sûr.

Si quelqu'un peut donner un aperçu de la façon dont je pourrais faire en sorte que cela fonctionne, je l'apprécie. À ce stade, je n'ai aucune idée de ce que je fais mal.

tldr : j'essaie d'importer des paires de coordonnées XY sous forme de lignes dans une carte ArcGIS, mais rien ne s'affiche réellement.


Je pense qu'une simple boucle avec jsonb_build_obejct sur un ensemble de résultats de ST_DumpPoints suffirait. Si vous souhaitez également appliquer cette fonction dans des géométries en plusieurs parties, vous devez créer une autre boucle pour extraire au préalable toutes les géométries à l'aide de ST_Dump :

Cette fonction extrait simplement tous les points d'une géométrie donnée et les place dans un tableau - ajouté en utilisant || . Ce tableau est ensuite utilisé pour créer l'ensemble de coordonnées des paires x,y. Le type de géométrie est extrait à l'aide de ST_GeometryType .

Vous pouvez utiliser regex pour remplacer le [a,b] par <"x":a,"y":b>par quelque chose comme ceci :