MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pourcentage de chevauchement de polygones

Si vous pouvez supposer qu'un polygone est toujours une région d'un autre (complètement contenu par celui-ci), vous pouvez au lieu d'utiliser le polygone entier pour la région, simplement calculer le point central de celui-ci et utiliser soit un point, soit un très petit carré à ce point à tester contre les parents. Si vous avez une boîte englobante, le point central doit être facile à trouver.

De cette façon, vous évitez les problèmes que vous rencontrez avec les arêtes qui chevauchent deux parents, et cela devrait fonctionner pour n'importe quelle région tant que vous savez que la région se trouve dans son parent et ne la chevauche pas seulement.

Ainsi, vous n'aurez peut-être même pas besoin de deux requêtes, réduisez simplement state.Geometry à un petit carré autour de son point central et interrogez-le à la place.