Robert Muir created LUCENE-7153:
-----------------------------------

             Summary: give GeoPoint and LatLonPoint full polygon support
                 Key: LUCENE-7153
                 URL: https://issues.apache.org/jira/browse/LUCENE-7153
             Project: Lucene - Core
          Issue Type: Improvement
            Reporter: Robert Muir


These two geo impls have a very limited polygon support that does not support 
inner rings (holes) or multiple outer rings efficiently.

Basically if you want to do this, you are left building crazy logic with 
booleanquery which will send memory into the gigabytes for a single query, 
needlessly. 

For example Russia polygon from geonames is 250KB of geojson and over a 
thousand outer rings.

We should instead support this stuff with the queries themselves, especially it 
will allow us to implement things more efficiently in the future.

I think instead of {{newPolygonQuery(double[], double[])}} it should look like 
{{newPolygonQuery(Polygon...)}}. A polygon can be a single outer ring (shape) 
with 0 or more inner rings (holes). No nesting, you just use multiply polygons 
if you e.g. have an island. 

See http://esri.github.io/geometry-api-java/doc/Polygon.html for visuals and 
examples. I indented their GeoJSON example:
{noformat}
{
  "type":"MultiPolygon",
  "coordinates": [
     // first polygon (order does not matter could have been last instead)
     [
       // clockwise => outer ring
       [[0.0,0.0],[-0.5,0.5],[0.0,1.0],[0.5,1.0],[1.0,0.5],[0.5,0.0],[0.0,0.0]],
       // hole
       [[0.5,0.2],[0.6,0.5],[0.2,0.9],[-0.2,0.5],[0.1,0.2],[0.2,0.3],[0.5,0.2]]
     ],
     // second polygon (order does not matter, could have been first instead)
     [ 
       // island
       [[0.1,0.7],[0.3,0.7],[0.3,0.4],[0.1,0.4],[0.1,0.7]]
     ]
  ],
}
{noformat}





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to