[prev in list] [next in list] [prev in thread] [next in thread]
List: lucene-dev
Subject: [jira] Created: (LUCENE-2359) CartesianPolyFilterBuilder doesn't
From: "Grant Ingersoll (JIRA)" <jira () apache ! org>
Date: 2010-03-31 20:21:27
Message-ID: 1317690654.614301270066887693.JavaMail.jira () brutus ! apache ! org
[Download RAW message or body]
CartesianPolyFilterBuilder doesn't handle edge case around the 180 meridian
---------------------------------------------------------------------------
Key: LUCENE-2359
URL: https://issues.apache.org/jira/browse/LUCENE-2359
Project: Lucene - Java
Issue Type: Bug
Components: contrib/spatial
Affects Versions: 3.0.1, 3.0, 2.9.2, 2.9.1, 2.9
Reporter: Grant Ingersoll
Assignee: Grant Ingersoll
Priority: Minor
Test case:
Points all around the globe, plus two points at 0, 179.9 and 0,-179.9 (on each side \
of the meridian). Then, do a Cartesian Tier filter on a point right near those two. \
It will return all the points when it should just return those two.
The flawed logic is in the else clause below:
{code}
if (longX2 != 0.0) {
//We are around the prime meridian
if (longX == 0.0) {
longX = longX2;
longY = 0.0;
shape = getShapeLoop(shape,ctp,latX,longX,latY,longY);
} else {//we are around the 180th longitude
longX = longX2;
longY = -180.0;
shape = getShapeLoop(shape,ctp,latY,longY,latX,longX);
}
{code}
Basically, the Y and X values are transposed. This currently says go from longY \
(-180) all the way around to longX which is the lower left longitude of the box \
formed. Instead, it should go from the lower left long to -180.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic