public override bool Get(int docId) { float docX = _xvals.Get(docId); float docY = _yvals.Get(docId); float docZ = _zvals.Get(docId); return(InCircle(docX, docY, docZ, _targetX, _targetY, _targetZ, _radius)); }
public sealed override int NextDoc() { float x = _targetX; float xu = x + _delta; float xl = x - _delta; float y = _targetY; float yu = y + _delta; float yl = y - _delta; float z = _targetZ; float zu = z + _delta; float zl = z - _delta; int docid = _doc; while (docid < _maxDoc) { docid++; float docX = _xvals.Get(docid); if (docX > xu || docX < xl) { continue; } float docY = _yvals.Get(docid); if (docY > yu || docY < yl) { continue; } float docZ = _zvals.Get(docid); if (docZ > zu || docZ < zl) { continue; } if (GeoFacetFilter.InCircle(docX, docY, docZ, _targetX, _targetY, _targetZ, _radius)) { _doc = docid; return(_doc); } } _doc = DocIdSetIterator.NO_MORE_DOCS; return(_doc); }
public override string[] GetFieldValues(BoboIndexReader reader, int id) { GeoFacetData dataCache = GetFacetData <GeoFacetData>(reader); BigFloatArray xvals = dataCache.xValArray; BigFloatArray yvals = dataCache.yValArray; BigFloatArray zvals = dataCache.zValArray; float xvalue = xvals.Get(id); float yvalue = yvals.Get(id); float zvalue = zvals.Get(id); float lat = GeoMatchUtil.GetMatchLatDegreesFromXYZCoords(xvalue, yvalue, zvalue); float lon = GeoMatchUtil.GetMatchLonDegreesFromXYZCoords(xvalue, yvalue, zvalue); string[] fieldValues = new string[2]; fieldValues[0] = Convert.ToString(lat); fieldValues[1] = Convert.ToString(lon); return(fieldValues); }