[
https://issues.apache.org/jira/browse/LUCENE-6699?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14707941#comment-14707941
]
Karl Wright edited comment on LUCENE-6699 at 8/22/15 8:24 AM:
--------------------------------------------------------------
Hmm, as a final check, I took the original point from the original failure,
which is not adjusted and is therefore on the WGS84 surface. Unfortunately,
that too fails in the same way:
{code}
c = new
GeoCircle(PlanetModel.WGS84,-0.006450320645814321,0.004660694205115142,0.00489710732634323);
//xyzb = new XYZBounds();
//c.getBounds(xyzb);
//System.err.println("xmin="+xyzb.getMinimumX()+",
xmax="+xyzb.getMaximumX()+",ymin="+xyzb.getMinimumY()+",
ymax="+xyzb.getMaximumY()+",zmin="+xyzb.getMinimumZ()+",
zmax="+xyzb.getMaximumZ());
//xmin=1.0010356621420726,
xmax=1.0011141249179447,ymin=-2.5326643901354566E-4,
ymax=0.009584741915757169,zmin=-0.011359874956269283,
zmax=-0.0015549504447452225
area =
GeoAreaFactory.makeGeoArea(PlanetModel.WGS84,1.0010822580620098,1.0010945779732867,0.007079167343247293,0.007541006774427837,-0.0021855011220022575,-0.001896122718181518);
assertTrue(GeoArea.CONTAINS == area.getRelationship(c));
p2 = new GeoPoint(PlanetModel.WGS84,-0.002164069780096702,
0.007505617500830066);
assertTrue(PlanetModel.WGS84.pointOnSurface(p2));
assertTrue(!c.isWithin(p2));
assertTrue(!area.isWithin(p2)); // fails
{code}
So there is something more subtle going on than I originally thought. Looking
into it now.
was (Author: [email protected]):
Hmm, as a final check, I took the original point from the original failure,
which is not adjusted and is therefore on the WGS84 surface. Unfortunately,
that too fails in the same way:
{code}
c = new
GeoCircle(PlanetModel.WGS84,-0.006450320645814321,0.004660694205115142,0.00489710732634323);
//xyzb = new XYZBounds();
//c.getBounds(xyzb);
//System.err.println("xmin="+xyzb.getMinimumX()+",
xmax="+xyzb.getMaximumX()+",ymin="+xyzb.getMinimumY()+",
ymax="+xyzb.getMaximumY()+",zmin="+xyzb.getMinimumZ()+",
zmax="+xyzb.getMaximumZ());
//xmin=1.0010356621420726,
xmax=1.0011141249179447,ymin=-2.5326643901354566E-4,
ymax=0.009584741915757169,zmin=-0.011359874956269283,
zmax=-0.0015549504447452225
area =
GeoAreaFactory.makeGeoArea(PlanetModel.WGS84,1.0010822580620098,1.0010945779732867,0.007079167343247293,0.007541006774427837,-0.0021855011220022575,-0.001896122718181518);
assertTrue(GeoArea.CONTAINS == area.getRelationship(c));
p2 = new GeoPoint(PlanetModel.WGS84,-0.002164069780096702,
0.007505617500830066);
assertTrue(PlanetModel.WGS84.pointOnSurface(p2));
assertTrue(!c.isWithin(p2));
assertTrue(!area.isWithin(p2));
{code}
So there is something more subtle going on than I originally thought. Looking
into it now.
> Integrate lat/lon BKD and spatial3d
> -----------------------------------
>
> Key: LUCENE-6699
> URL: https://issues.apache.org/jira/browse/LUCENE-6699
> Project: Lucene - Core
> Issue Type: New Feature
> Reporter: Michael McCandless
> Assignee: Michael McCandless
> Attachments: Geo3DPacking.java, LUCENE-6699.patch, LUCENE-6699.patch,
> LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch,
> LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch,
> LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch,
> LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch,
> LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch,
> LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch, LUCENE-6699.patch
>
>
> I'm opening this for discussion, because I'm not yet sure how to do
> this integration, because of my ignorance about spatial in general and
> spatial3d in particular :)
> Our BKD tree impl is very fast at doing lat/lon shape intersection
> (bbox, polygon, soon distance: LUCENE-6698) against previously indexed
> points.
> I think to integrate with spatial3d, we would first need to record
> lat/lon/z into doc values. Somewhere I saw discussion about how we
> could stuff all 3 into a single long value with acceptable precision
> loss? Or, we could use BinaryDocValues? We need all 3 dims available
> to do the fast per-hit query time filtering.
> But, second: what do we index into the BKD tree? Can we "just" index
> earth surface lat/lon, and then at query time is spatial3d able to
> give me an enclosing "surface lat/lon" bbox for a 3d shape? Or
> ... must we index all 3 dimensions into the BKD tree (seems like this
> could be somewhat wasteful)?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]