lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Bell (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (LUCENE-1781) Large distances in Spatial go beyond Prime MEridian
Date Fri, 11 Sep 2009 04:03:58 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-1781?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12753956#action_12753956
] 

Bill Bell edited comment on LUCENE-1781 at 9/10/09 9:03 PM:
------------------------------------------------------------

Not exactly.

testPrimeM() should be fixed by the new LLRect.java. It goes over 90 degrees, and LLRect.java
pole flips. If this is not working with the new LLRect, there is something wrong with that.

testAntiM() creates a case that should fail. This condition needs to be fixed. The case is:
You are located in Hawaii and you should see:

Marshall Island Airfield",7.06, 171.2
Midway Island",25.7, -171.7

It only shows the Midway Island, since it is still in the same hemisphere (it did not go from
-171 to 171 (the Anti-Meridien), This case also errors since the upper right is also going
over the pole. So it also is testing testPrimeM(). If we reduce the miles to 3500 it tests
only these 2 points. Since it does not show Marshall Island, the Local Lucene is not working
right. Once this case works people we can release it.

Here are my thoughts on a fix:

LLRect does calculate the right box across anti-meridien. The issue is elsewhere. Either we
have multiple boxes, or check.

    [junit] boxCorners: ur 43.242262719615994,-123.073340742054
    [junit] boxCorners: cnt 21.6032207,-158.0
    [junit] boxCorners: ll -5.189678558944157,177.24228397256368




      was (Author: billnbell):
    Not exactly.

testPrimeM() should be fixed by the new LLRect.java. It goes over 90 degrees, and LLRect.java
pole flips. If this is not working with the new LLRect, there is something wrong with that.

testAntiM() creates a case that should fail. This condition needs to be fixed. The case is:
You are located in Hawaii and you should see:

Marshall Island Airfield",7.06, 171.2
Midway Island",25.7, -171.7

It only shows the Midway Island, since it is still in the same hemisphere (it did not go from
-171 to 171 (the Anti-Meridien), This case also errors since the upper right is also going
over the pole. So it also is testing testPrimeM(). If we reduce the miles to 3500 it tests
only these 2 points. Since it does not show Marshall Island, the Local Lucene is not working
right. Once this case works people we can release it.

Here are my thoughts on a fix:

We need to get the ll to work across 180 degree point. It currently uses a straight compare,
but this also needs to flip for example:  -179 + 2 = 179 longitude.



  
> Large distances in Spatial go beyond Prime MEridian
> ---------------------------------------------------
>
>                 Key: LUCENE-1781
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1781
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: contrib/spatial
>    Affects Versions: 2.9
>         Environment: All
>            Reporter: Bill Bell
>            Assignee: Michael McCandless
>             Fix For: 3.1
>
>         Attachments: LLRect.java, LLRect.java, LUCENE-1781.patch, LUCENE-1781.patch,
TestCartesian.java, TestCases.diff
>
>
> http://amidev.kaango.com/solr/core0/select?fl=*&json.nl=map&wt=json&radius=5000&rows=20&lat=39.5500507&q=honda&qt=geo&long=-105.7820674
> Get an error when using Solr when distance is calculated for the boundary box past 90
degrees.
> Aug 4, 2009 1:54:00 PM org.apache.solr.common.SolrException log
> SEVERE: java.lang.IllegalArgumentException: Illegal lattitude value 93.1558669413734
>         at org.apache.lucene.spatial.geometry.FloatLatLng.<init>(FloatLatLng.java:26)
>         at org.apache.lucene.spatial.geometry.shape.LLRect.createBox(LLRect.java:93)
>         at org.apache.lucene.spatial.tier.DistanceUtils.getBoundary(DistanceUtils.java:50)
>         at org.apache.lucene.spatial.tier.CartesianPolyFilterBuilder.getBoxShape(CartesianPolyFilterBuilder.java:47)
>         at org.apache.lucene.spatial.tier.CartesianPolyFilterBuilder.getBoundingArea(CartesianPolyFilterBuilder.java:109)
>         at org.apache.lucene.spatial.tier.DistanceQueryBuilder.<init>(DistanceQueryBuilder.java:61)
>         at com.pjaol.search.solr.component.LocalSolrQueryComponent.prepare(LocalSolrQueryComponent.java:151)
>         at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:174)
>         at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
>         at org.apache.solr.core.SolrCore.execute(SolrCore.java:1328)
>         at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:341)
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:244)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
>         at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
>         at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
>         at java.lang.Thread.run(Thread.java:619)

-- 
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


Mime
View raw message