Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Le total des surfaces des zonages d'urbanisme ne correspond pas à la surface du territoire #560

Closed
alexisig opened this issue Aug 19, 2024 · 0 comments
Labels
bug Quelque chose ne fonctionne pas comme attendu

Comments

@alexisig
Copy link
Collaborator

alexisig commented Aug 19, 2024

Exemple du problème pour Auch (dont la surface est égale à 7 341ha):
image

Le problème vient de cette requête :

ArtifAreaZoneUrba.objects.filter(zone_urba__in=ZoneUrba.objects.intersect(self.combined_emprise))

Intersect selectionne les objets qui croisent l'emprise du diagnostic (combined_emprise) mais également ceux qui touchent l'emprise du diagnostic, sans forcement le croiser. Cela a pour conséquence de retourner tous les zonages du territoire PLUS ceux voisins, qui touchent uniquement le territoire sur ses frontières.

Solution courante : combiner ST_Intersectavec un ST_touches== false
Cependant cette solution ne fonctionne pas toujours dans notre cas car les géométries des zonages sont parfois "mal dessinés", c'est à dire que les surfaces de zonages voisins se croisent parfois.

Solution choisie : pour chaque zonage, récupérer un PointOnSurface et vérifier si celui-ci intersecte avec l'emprise du diagnostic.

Résultat pour auch :
image

@alexisig alexisig added the bug Quelque chose ne fonctionne pas comme attendu label Aug 19, 2024
@alexisig alexisig closed this as completed Oct 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Quelque chose ne fonctionne pas comme attendu
Projects
None yet
Development

No branches or pull requests

1 participant