Skip to content

Provide a way to do spatial joins with custom judgement/iterator class. #404

Description

@cakilandeswari

Expected behavior

I have a use case where I want to join based on geodesic area overlap of 90% or more and I would like to define my own judgment.

In class org.datasyslab.geospark.spatialOperator.JoinQuery,

Add as below to allow users to specify their own operator for join and generating matching pairs.
public static final class JoinParams<U extends Object, T extends Object>
{
public final boolean useIndex;
public final boolean considerBoundaryIntersection;
public final boolean allowDuplicates;
public final IndexType indexType;
public final JoinBuildSide joinBuildSide;
public final FlatMapFunction2<Iterator, Iterator, Pair<U, T>> customJudgement;
}

and allow user to use it with

public static <U extends Geometry, T extends Geometry> JavaPairRDD<U, T> spatialJoin(
SpatialRDD leftRDD,
SpatialRDD rightRDD,
JoinParams joinParams) {
....
}

Actual behavior

JudgementBase is private and user does not have a way to specify their own judgement to use for spatial joins.

Steps to reproduce the problem

N/A

Settings

GeoSpark version = 1.2.3.1

Apache Spark version = 2.4.1

JRE version = 1.8?

API type = Scala or Java? Java

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions