[ 
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:18 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 the Point2D since the whole 
thing is not right crossing boundaries... box.getMaxPoint().getY() is not the 
max  when going (-) to (+) and vice versa.

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

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



  
> 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-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to