10
votes

Comment créer un polygone à l'aide de champs de PostgreSQL?

J'ai 8 valeurs réelles dans une table que j'aimerais combiner dans un polygone. Je n'ai pas été capable de comprendre comment créer un polygone en utilisant ces valeurs cependant. Je continue d'essayer des variations de xxx

mais continuez à obtenir des erreurs sur la fonction de polygone non existante ou une syntaxe d'entrée non valide pour le type polygone. Quelqu'un a-t-il fait cela avant?


0 commentaires

3 Réponses :


16
votes

La syntaxe d'un polygone Postgres régulier est plus comme:

insérer dans des valeurs géo_tables (1, '((2,2), (3,4), (3,6), (1,1), (1,1))');

où 1 est un identifiant et que l'entrée citée est le polygone. Je m'attendrais à ce que la requête soit similaire, vous avez probablement besoin de parenthèses, etc. pour les coordonnées. Généralement pour les données géospatiales que vous souhaitez (LON LAT) coordonnées. Postgis prend également WKT déclarations telles que:

geomfromtext ('polygone ((Long1 Lat1, Long2 Lat2, Long3 Lat3))')


2 commentaires

Cette déclaration WKT ressemble à ce que je veux, mais la base de données a été créée par Drupal (un CMS) afin que le modèle PostGIS n'était donc pas utilisé lors de la création. Puis-je convertir du texte en polygone une autre manière?


J'ai trouvé les instructions sur l'ajout de Postgis à une base de données et obtenez ceci pour travailler.



2
votes

Comme mentionné par bvmou - geomfromtext fonctionnera bien. J'ajouterai simplement une petite mise à jour de la syntaxe: xxx


0 commentaires

0
votes

Cet exemple prend la longitude et la latitude coordonnées d'une table et les convertit en une géométrie. Les dimensions de chaque boîte sont données comme long_high, long_low, let_high et lat_low. Ici, une boîte d'environ 500 m de 500m.

  1. Ajoutez une nouvelle colonne de géométrie 'Box' à la table XXX

  2. Mettez à jour le nouveau champ avec ces valeurs. XXX

    Notez la transformation en une référence spatiale différente. Le mot clé Polygon nécessite des deux parenthèses '(())'.


0 commentaires