def METHOD_NAME(cls, spatialRDD: SpatialRDD, queryRDD: SpatialRDD, useIndex: bool,
                         considerBoundaryIntersection: bool) -> RDD:
    """
    Function takes SpatialRDD and other SpatialRDD and based on two parameters
    - useIndex
    - considerBoundaryIntersection
    creates RDD with result of Spatial Join operation. It Returns RDD[GeoData, GeoData]
    :param spatialRDD: SpatialRDD
    :param queryRDD: SpatialRDD
    :param useIndex: bool
    :param considerBoundaryIntersection: bool
    :return: RDD
    >> spatial_join_result = JoinQuery.SpatialJoinQueryFlat(
    >>      spatialRDD, queryRDD, useIndex, considerBoundaryIntersection
    >> )
    >> spatial_join_result.collect()
    [[GeoData(Polygon, ), GeoData()], [GeoData(), GeoData()], [GeoData(), GeoData()]]
    """
    pair_rdd = JoinQueryRaw.METHOD_NAME(spatialRDD, queryRDD, useIndex,
                                                 considerBoundaryIntersection)
    return pair_rdd.to_rdd()