Spatial database queries are my favorite subject since TechEd India 2010. Here are the scripts to build the environment, plus a question: what about BLOB?
geometry STCrosses: Crossing Depends on the Intersection Dimension
geometry STCrosses uses the dimension and interior position of the intersection to define crossing. I compare it with endpoint contact and collinear overlap. A shared point or segment does not automatically satisfy that definition.
ATN2: Keep the Quadrant When Calculating an Angle
ATN2 uses two components to calculate an angle while retaining its quadrant. I keep the argument order and angle unit visible. Dividing one component by the other would lose useful information and introduce a zero-denominator case.
geometry STOverlaps: Intersection Alone Is Not Enough
geometry STOverlaps asks a narrower question than whether two shapes share any points. I test equal and contained regions alongside a partial overlap. Those intersecting cases do not all satisfy the method’s overlap definition.
geometry STTouches: A Shared Boundary Is Not Interior Overlap
geometry STTouches tests whether shapes meet without their interiors intersecting. I keep that predicate separate from a general intersection check. Sharing an edge and sharing an area are different spatial relationships.
geometry STSymDifference: Keep the Parts Outside the Overlap
geometry STSymDifference keeps points belonging to either input while excluding their shared portion. I use it when both sides’ exclusive regions matter. Directed subtraction would answer a different question about only one side.
geometry STCentroid: The Geometric Center Is Not an Interior Promise
geometry STCentroid returns a polygon’s geometric center, but that point is not a promise of interior placement. I keep the center calculation separate from an interior test. A holed region makes that distinction visible.







