lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karl Wright (JIRA)" <>
Subject [jira] [Commented] (LUCENE-7906) Spatial relationship between Geoshapes
Date Wed, 19 Jul 2017 15:11:00 GMT


Karl Wright commented on LUCENE-7906:

I had a quick look at the diff, and found this issue:

+  @Override
+  public int getRelationship(GeoShape shape){
+    boolean isWithin = false;
+    boolean isContains = false;
+    for (int i=0; i<shapes.size(); i++) {
+      GeoPolygon pol = (GeoPolygon) shapes.get(i);
+      int relationship = pol.getRelationship(shape);
+      switch (relationship){
+        case GeoArea.OVERLAPS: return relationship;
+        case GeoArea.WITHIN: isWithin=true; break;
+        case GeoArea.CONTAINS: isContains=true;break;
+        case GeoArea.DISJOINT: break;
+      }
+    }

I note that OVERLAPS subcomponents return OVERLAPS as the result.  But this cannot be correct
because an OVERLAP between a subcomponent might actually be WITHIN.

> Spatial relationship between Geoshapes
> --------------------------------------
>                 Key: LUCENE-7906
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: modules/spatial3d
>            Reporter: Ignacio Vera
>            Assignee: Karl Wright
>         Attachments: LUCENE-7906.patch, LUCENE-7906-test.patch
> Hi,
> Working with geosahpes and trying to resolve spatial relationships between them I came
accross a big limitation when trying to solve the relationship between two geopolygons. This
object does not expose the internal structure. In particular at some point, it is necessary
to check if one polygon intersects the edges of the other polygon which currently is not possible
as edges are not exposed.
> To be able to perform such operation it can be several options. The ones I can think
of are:
> 1) Expose the edges of the polygon ( and probably the notable points for the edges) adding
getters in the GeoPolygon interface. Easy to implement and leave users the responsability
of coding the spatial relationship.
> 2) Extends GeoPolygon interface to extends geoarea and leave the object make the spatial
> 3) Extends GeoShape  interface so all shapes can infer the spatial relationship with
other GeoShapes.
> I might be bias as my interest is in 2d Shapes in the unit sphere and there might be
some cases which what I propose cannot be implemented or are againts the aim of the library.
> What do you think?
> Cheers,
> Ignacio

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message