Message posté par : Pascal PLUVINET
----------------------------------------
Joli !
J'avais fait quelque chose du même style pour identifier les gros terre-pleins ou rond-point à partir d'un buffer sur le réseau routier.
Merci effectivement pour le partage !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321738#p321738
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : tevrard
----------------------------------------
Merci du partage !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321736#p321736
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Christophe Vergon
----------------------------------------
Bonjour,
Pas une question mais une solution. Voilà j'ai fabriqué des polygones (resgeom) qui contiennent des trous, je veux reconstituer ces polygones en enlevant les trous qui font moins de 1000 m² (par exemple):
-----------------
Code :
WITH p as (SELECT row_number as a,unnest((st_dumprings((st_dump (resgeom)).geom)).path) as b,((st_dumprings((st_dump (resgeom)).geom)).geom) as c
FROM testgeom3 ), -- On transforme les multipolygones à trous en n polygones sans trous si path = 0 exterior ring si >0 trous
p1 as (SELECT a,b,st_exteriorring(c) as e,st_area(c) as d FROM p order by a,b), -- on transforme les polygones ext en polyline
p2 as (SELECT a, st_accum(e) as sg FROM p1 WHERE b<>0 AND d >=1000 GROUP BY a), les trous de plus de 1000 m²
p3 as (SELECT a, e FROM p1 WHERE b=0) les enveloppes ext (shells)
SELECT p2.a,CASE WHEN not sg is null THEN st_makepolygon(e,sg) ELSE st_makepolygon(e) END
into testpoly1 FROM p3 LEFT JOIN p2 ON p2.a=p3.a ORDER BY a -- On reconstitue les polygones soit avec les trous qui restent soit sans.
-----------------
Voilà si ça peut aider.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321732#p321732
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : zack
----------------------------------------
Merci !
J'ai donc rajouté un st_snaptogrid sur la partie lignes de la fonction st_split. Je l'ai mis un peu arbitrairement je l'avoue, ne sachant pas trop ce que ça donnerait. Et ça marche bien. Le paramètre de 0.0001 est parfaitement arbitraire également.
-----------------
Code :
DROP TABLE if exists blabla;
CREATE TABLE blabla AS
SELECT
st_collectionextract(
st_split(rect.geom,
st_snaptogrid(coalesce((ST_CollectionHomogenize(st_collect(st_makevalid(line.geom)))),
'SRID=2154;LINESTRING EMPTY'::geometry('LINESTRING')),0.0001)),
3) AS geom
FROM
public.polygones as rect
LEFT JOIN
public.lignes as line
ON
st_intersects(rect.geom, line.geom)
GROUP BY
rect.geom
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321611#p321611
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : T. Rossini
----------------------------------------
Donc, st_split sait gérer une multiligne qui a deux élements se croisant.
Je pencherais plus pour un problème de coordonnée trop proches.
Vous pouvez essayer de régler le problème avec st_snaptogrid.
Avant il faudrait isoler la parité de la requête qui coince,
le st_intersects ou le st_split...
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321606#p321606
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : zack
----------------------------------------
Oui, sans problème
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321604#p321604
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : T. Rossini
----------------------------------------
Est ce que la requête suivante fonctionne ?
-----------------
Code :
select st_split(
'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))',
'MULTILINESTRING((-1 -1, 2 2), (2 -1, -1 2))'
)
;
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321603#p321603
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : zack
----------------------------------------
Bonjour,
J'ai encore un petit message d'erreur que je n'avais pas sur ma petite zone de test...
ERROR: ERREUR: GEOSUnion: TopologyException: found non-noded intersection
Il s'agit d'endroits ou j'ai des lignes qui se croisent, ce qui est rare mais qui peut arriver.
J'ai essayé d'utiliser st_makevalid, d'après ce que j'ai pu trouver comme info sur les différents forums, en le plaçant à divers endroits du code, mais il me renvoie toujours la même erreur.
De ce que je comprend, il suffirait de créer des nœuds aux croisements des lignes pour avoir une topologie valide?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321591#p321591
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : aknleo
----------------------------------------
je développe en windev et je veux créer une fenêtre carte dans mon application
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321573#p321573
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : T. Rossini
----------------------------------------
Pas à ma connaissance, je pense qu'il faut que vous les eclatiez
à l'aide st_dump.
De rien pour l'aide.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321550#p321550
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net