def intersects(self, key, include_self=False, exclusive=False, biggest_first=True, only=None):
        """Get all locations that intersect this location.

        Note that sorting is done by first by number of faces intersecting ``key``; the total number of faces in the intersected region is only used to break sorting ties.

        If the ``resolved_row`` context manager is not used, ``RoW`` doesn't have a spatial definition, and therefore nothing intersects it. ``.intersects("RoW")`` returns a list with with ``RoW`` or nothing.

        """
        possibles = self.topology if only is None else {k: self[k] for k in only}

        if key == 'RoW' and 'RoW' not in self:
            return ['RoW'] if 'RoW' in possibles else []

        faces = self[key]
        lst = [
            (k, (len(v.intersection(faces)), len(v)))
            for k, v in possibles.items()
            if (faces.intersection(v))
        ]
        return self._finish_filter(lst, key, include_self, exclusive, biggest_first)
Get all locations that intersect this location.

        Note that sorting is done by first by number of faces intersecting ``key``; the total number of faces in the intersected region is only used to break sorting ties.

        If the ``resolved_row`` context manager is not used, ``RoW`` doesn't have a spatial definition, and therefore nothing intersects it. ``.intersects("RoW")`` returns a list with with ``RoW`` or nothing.