Fonction cercle

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Fonction cercle

MaudC
Bonjour,

Je souhaiterais savoir s'il existe une fonction qui transforme un polygone en cercle ? Et si la taille du cercle est modulable. Je souhaite en fait à partir d'une couche vecteur de l'occupation des sols essayer de représenter l'expansion des villes de manière assez peu précise et donc ensuite pouvoir créer une nouvelle table où j'exclue ces zones.

Cordialement,

Maud
Reply | Threaded
Open this post in threaded view
|

Re: Fonction cercle

Gwendall Petit
Administrator
Bonjour Maud,

Sauf erreur de ma part, l'objet "cercle" n'existe pas dans OrbisGIS (ni même ailleurs). Un cercle est considéré comme un polygone.

Je ne suis pas sûr de bien comprendre ce que tu cherches à faire, mais est-ce qu'un buffer sur le centroïde de ta géométrie ne pourrait pas t'aider ?

Tu aurais alors quelque chose comme suit :
SELECT ST_BUFFER(ST_CENTROID(the_geom), buffer_size) as the_geom FROM my_table;
Cordialement,

Gwendall
Reply | Threaded
Open this post in threaded view
|

Re: Fonction cercle

MaudC
Merci pour la réponse,

En fait je voulais pouvoir tracer des cercles autour des villes pour réserver ces zones à de futures zones d'urbanisation et donc en faire des zones où la culture de biocarburants est impossible.. Et je voulais que ce soit plus ou moins proportionnel à la taille de la ville ! Mais j'en demande peut être trop là !
En utilisant la fonction buffer, l'aire de la zone ne dépend pas de la taille de la ville mais seulement de la taille du buffer.

Cordialement,

Maud
Reply | Threaded
Open this post in threaded view
|

Re: Fonction cercle

Gwendall Petit
Administrator
Ok, je vois.

Sache que le paramètre "buffersize" de la fonction ST_BUFFER est soit une valeur numérique, soit le nom d'un champ, soit le résultat d'une fonction. De cette manière tu pourrais très bien écrire :
SELECT ST_BUFFER(the_geom, ST_AREA(the_geom)) AS the_geom FROM my_table;
Cordialement,

Gwendall
Reply | Threaded
Open this post in threaded view
|

Re: Fonction cercle

MaudC
Ok merci pour l'astuce, j'ai finalement fait cette ligne de code :

Create table CityExpansion as SELECT ST_BUFFER(ST_CENTROID(the_geom), 2*Sqrt(ST_AREA(the_geom)/Pi())) AS the_geom FROM cities;

Cordialement,

Maud