Exemplo n.º 1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="xvals">array of x coordinate values for docid</param>
 /// <param name="yvals">array of y coordinate values for docid</param>
 /// <param name="zvals">array of z coordinate values for docid</param>
 /// <param name="lat">target latitude</param>
 /// <param name="lon">target longitude</param>
 /// <param name="radius">target radius</param>
 /// <param name="maxdoc">max doc in the docid set</param>
 /// <param name="miles">variable to specify if the geo distance calculations are in miles. 
 /// False indicates distance calculation is in kilometers</param>
 internal GeoDocIdSet(BigFloatArray xvals, BigFloatArray yvals, BigFloatArray zvals, float lat, float lon,
     float radius, int maxdoc, bool miles)
 {
     _xvals = xvals;
     _yvals = yvals;
     _zvals = zvals;
     _miles = miles;
     if (_miles)
         _radius = GeoMatchUtil.GetMilesRadiusCosine(radius);
     else
         _radius = GeoMatchUtil.GetKMRadiusCosine(radius);
     float[] coords = GeoMatchUtil.GeoMatchCoordsFromDegrees(lat, lon);
     _targetX = coords[0];
     _targetY = coords[1];
     _targetZ = coords[2];
     if (_miles)
         _delta = (float)(radius / GeoMatchUtil.EARTH_RADIUS_MILES);
     else
         _delta = (float)(radius / GeoMatchUtil.EARTH_RADIUS_KM);
     _maxDoc = maxdoc;
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="name">name of the Geo Facet</param>
 /// <param name="dataCache">The data cache for the Geo Facet</param>
 /// <param name="docBase">the base doc id</param>
 /// <param name="fspec">the facet spec for this facet</param>
 /// <param name="predefinedRanges">List of ranges, where each range looks like &lt;lat, lon: rad&gt;</param>
 /// <param name="miles">variable to specify if the geo distance calculations are in miles. False indicates distance calculation is in kilometers</param>
 public GeoFacetCountCollector(string name, GeoFacetHandler.GeoFacetData dataCache,
     int docBase, FacetSpec fspec, IEnumerable<string> predefinedRanges, bool miles)
 {
     _name = name;
     _dataCache = dataCache;
     _xvals = dataCache.xValArray;
     _yvals = dataCache.yValArray;
     _zvals = dataCache.zValArray;
     _spec = fspec;
     _predefinedRanges = new TermStringList();
     var predefinedTemp = new List<string>(predefinedRanges);
     predefinedTemp.Sort();
     _predefinedRanges.AddAll(predefinedTemp);
     _docBase = docBase;
     _countlength = predefinedTemp.Count;
     _count = new LazyBigIntArray(_countlength);
     _ranges = new GeoRange[predefinedTemp.Count];
     int index = 0;
     foreach (string range in predefinedTemp)
     {
         _ranges[index++] = Parse(range);
     }
     _miles = miles;
 }
Exemplo n.º 3
0
 internal GeoDocIdSetIterator(BigFloatArray xvals, BigFloatArray yvals, BigFloatArray zvals, float targetX, float targetY, float targetZ,
     float delta, float radiusCosine, int maxdoc)
 {
     _xvals = xvals;
     _yvals = yvals;
     _zvals = zvals;
     _targetX = targetX;
     _targetY = targetY;
     _targetZ = targetZ;
     _delta = delta;
     _radius = radiusCosine;
     _maxDoc = maxdoc;
     _doc = -1;
 }