public virtual FacetIterator Iterator() { // each range is of the form <lat, lon, radius> LazyBigIntArray rangeCounts = new LazyBigIntArray(_latPredefinedRangeIndexes.Length); for (int i = 0; i < _latCount.Length; ++i) { if (_latCount[i] > 0) { for (int k = 0; k < _latPredefinedRangeIndexes.Length; ++k) { if (i >= _latPredefinedRangeIndexes[k][0] && i <= _latPredefinedRangeIndexes[k][1]) { rangeCounts.Add(k, rangeCounts.Get(k) + _latCount[i]); } } } } return(new DefaultFacetIterator(_predefinedRanges, rangeCounts, rangeCounts.Size(), true)); }
public virtual FacetIterator Iterator() { if (_predefinedRanges != null) { BigSegmentedArray rangeCounts = new LazyBigIntArray(_predefinedRangeIndexes.Length); for (int k = 0; k < _predefinedRangeIndexes.Length; ++k) { int count = 0; int idx = _predefinedRangeIndexes[k][0]; int end = _predefinedRangeIndexes[k][1]; while (idx <= end) { count += _count.Get(idx++); } rangeCounts.Add(k, rangeCounts.Get(k) + count); } return(new DefaultFacetIterator(_predefinedRanges, rangeCounts, rangeCounts.Size(), true)); } return(null); }