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
Message posté par : zack
----------------------------------------
Rebonjour,
Merci j'avais solutionné ce problème en faisant un setSRID sur le coalesce mais votre solution marche aussi.
Du coup la fonction marche, je conserve bien tous les polygones, et ils sont, d'apparence, bien découpés aux emplacements des lignes.
En revanche, j'ai toujours le même nombre de polygones que sur la couche initiale. Il me crée des polygones multi-part.
Je peux solutionner ça en éclatant ensuite mes polygones en single part mais peut-être y a t'il une solution sur le code d'origine.
Un grand merci !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321542#p321542
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
----------------------------------------
Non je pense que le problème vient du second argument de la fonction coalesce.
Pour rappel coalesce renvoie son premier argument si il est different de NULL
et son second argument sinon.
Donc dans le cas ou aucune ligne n'intersecte avec une zone,
la requête va tenter de faire un split avec une linestring vide.
Hors votre zone est en EPSG:2154, alors que la linestring vide
n'a pas de SRID défini.
Pour remédier à cela, changer la chaine "LINESTRING EMPTY",
par "SRID=2151;LINESTRING EMPTY".
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321540#p321540
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,
Merci pour votre réponse. Je n'ai pas eu de notification Georezo donc je ne l'avais pas vu jusqu'à aujourd'hui... désolé...
J'ai donc testé votre code.
-----------------
Code :
DROP TABLE if exists blabla;
CREATE TABLE blabla AS
SELECT
st_collectionextract(
st_split(rect.geom,
coalesce((ST_CollectionHomogenize(st_collect(line.geom))),
'LINESTRING EMPTY'::geometry('LINESTRING'))),
3) AS geom
FROM
polygones_zone_test as rect
LEFT JOIN
public.lignes_zone_test as line
ON
st_intersects(rect.geom, line.geom)
GROUP BY
rect.geom
-----------------
J'ai ajouté des parenthèses dans la condition COALESCE puisque que le st_split avait trois conditions de géométrie ce qui ne lui plaisait pas, je ne sais pas si cette correction est bien juste mais il me semble que oui.
Il ne pose plus de problème sur le st_split, mais il me dit que le SRID n'est pas le même sur les deux couches (ERROR: ERREUR: Operation on mixed SRID geometries) alors que j'ai fait un st_srid et j'ai bien 2154 sur les deux couches... est-ce qu'une fonction préalable modifie le SRID?
Merci du temps consacré à me répondre !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321538#p321538
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
----------------------------------------
Merci pour vos réponses,
J'ai contacter le site, ils me renvoient aux même page
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321520#p321520
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
----------------------------------------
Avez vous installer un des pilotes pour PostgreSQL ?
https://odbc.postgresql.org/
ou
https://www.pgoledb.com/
Apparemment, l'installation d'un des deux pilotes est requis.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321457#p321457
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
----------------------------------------
Dans votre requête principale, vous incluez le champ distance
dans votre clause SELECT.
Ca coince pour deux raisons :
1°
distance n'est pas inclus dans la clause SELECT de la sous-requête,
donc la requête principale doit vous indiquez que la colonne distance
n'existe pas dans l'expression sous_requête.
2° Votre requête principale comporte une clause GROUP BY.
Quand celle ci est présente, vous ne pouvez pas utiliser des
colonnes dans la clause SELECT autres que celles spécifiées
dans la clause GROUP BY, exception faite quand celles-ci est
utilisée dans une fonction d'agrégat (ici la fonction st_collect).
Vous avez aussi une erreur de syntaxe à la ligne 8, il manque une
virgule pour séparer vos deux expressions.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=321446#p321446
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