Bonsoir,
j'ai regardé ce soir comment résoudre le problème des polygones de très
grandes tailles. Tout n'est pas résolu mais le plus gros du travail
théorique est fait. J'ai donc essayé la technique sur le polygone de la
Seine Et Marne. La technique est de faire une différence entre les polygones
existants et le polygone Corine. Maintenant je peux étendre la requête  a
tous les polygones qui ont une certaine taille et qui n'ont pas été
importés.
Je me pose la question sur comment on procède maintenant. Je vais continuer
a améliorer la requête mais il faut voir.
Maintenant, pour ceux qui veulent voir la requête qui fait peur, voila! A
noter que pour faire fonctionner la requête sur tous les polygones, il
faudra faire un group by et d'autres jolies requêtes imbriquées
supplémentaires, mais la requête est faite globalement.

SELECT p.geomdump,
        p.pathdump[1]
FROM ( SELECT (ST_Dump(ST_Difference(l.the_geom, mp.way))).geom AS geomdump,
                (ST_Dump(ST_Difference(l.the_geom, mp.way))).path AS
pathdump
        FROM ( SELECT ST_Multi(ST_Union(pop.way)) AS way
                FROM planet_osm_polygon AS pop
                        INNER JOIN
                        landuse AS l
                            ON l."CLC:id" = 'FR-6749'
                         AND ST_Intersects(pop.way, l.the_geom)
                WHERE pop.landuse IS NOT NULL
                        OR pop.aeroway IS NOT NULL
                                OR pop.natural IS NOT NULL
                            OR pop.wood IS NOT NULL
                 OR pop.waterway='riverbank'
                          ) AS mp,
                            landuse AS l
                        WHERE l."CLC:id" = 'FR-6749'
          ) AS p

Dans le cas présent, cette requête génère 60 polygones au lieu d'un seul.
Cela veut dire que de découper un polygone peut conduire a la création de
beaucoup plus de polygones. Celui ci est constitue d'un très gros polygone,
et pleins de tous petits.

Émilie Laffray
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à