MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Prozentsatz der Polygonüberlappung

Wenn Sie davon ausgehen können, dass ein Polygon immer eine Region eines anderen ist (vollständig darin enthalten), könnten Sie, anstatt das gesamte Polygon für die Region zu verwenden, einfach den Mittelpunkt davon berechnen und entweder einen Punkt oder ein sehr kleines Quadrat bei verwenden dieser Punkt, um gegen die Eltern zu testen. Wenn Sie einen Begrenzungsrahmen haben, sollte der Mittelpunkt leicht zu finden sein.

Auf diese Weise vermeiden Sie die Probleme, die Sie mit Kanten sehen, die zwei Eltern überlappen, und es sollte für jede Region funktionieren, solange Sie wissen, dass sich die Region innerhalb ihrer Eltern befindet und sie nicht nur überlappt.

Sie benötigen also möglicherweise nicht einmal zwei Abfragen. Reduzieren Sie einfach state.Geometry auf ein kleines Quadrat um seinen Mittelpunkt und fragen Sie stattdessen damit ab.