@Override public GeoPoint valueAt(int index) { if (count > 0) { return values.valueAt(index); } else if (index == 0) { return missing; } else { throw new IndexOutOfBoundsException(); } }
@Override public GeoPoint valueAt(int index) { if (count > 0) { return values.valueAt(index); } else if (index == 0) { return missing; } else { throw new IndexOutOfBoundsException(); } }
public GeoPoint getValue() { int numValues = values.count(); if (numValues == 0) { return null; } return values.valueAt(0); }
public GeoPoint getValue() { int numValues = values.count(); if (numValues == 0) { return null; } return values.valueAt(0); }
@Override public void get(int docID, List<CharSequence> list) { values.setDocument(docID); for (int i = 0, count = values.count(); i < count; ++i) { list.add(values.valueAt(i).toString()); } } });
@Override protected String getDistanceString(LeafReaderContext ctx, int docId) { StringBuilder values = new StringBuilder(mode.name()); values.append(" of: ["); final MultiGeoPointValues geoPointValues = fieldData.load(ctx).getGeoPointValues(); geoPointValues.setDocument(docId); final int num = geoPointValues.count(); if (num > 0) { for (int i = 0; i < num; i++) { GeoPoint value = geoPointValues.valueAt(i); values.append("Math.max(arcDistance("); values.append(value).append("(=doc value),"); values.append(origin).append("(=origin)) - ").append(offset).append("(=offset), 0)"); if (i != num - 1) { values.append(", "); } } } else { values.append("0.0"); } values.append("]"); return values.toString(); }
@Override public void get(int docID, List<CharSequence> list) { values.setDocument(docID); for (int i = 0, count = values.count(); i < count; ++i) { list.add(values.valueAt(i).toString()); } } });
@Override public GeoPoint get(int index) { final GeoPoint point = values.valueAt(index); return new GeoPoint(point.lat(), point.lon()); }
@Override public GeoPoint get(int index) { final GeoPoint point = values.valueAt(index); return new GeoPoint(point.lat(), point.lon()); }
@Override public double valueAt(int index) { GeoPoint other = geoPointValues.valueAt(index); return Math.max(0.0d, distFunction.calculate(origin.lat(), origin.lon(), other.lat(), other.lon(), DistanceUnit.METERS) - offset); } }, 0.0);
@Override public double valueAt(int index) { GeoPoint other = geoPointValues.valueAt(index); return Math.max(0.0d, distFunction.calculate(origin.lat(), origin.lon(), other.lat(), other.lon(), DistanceUnit.METERS) - offset); } }, 0.0);
@Override public void collect(int docId) throws IOException { values.setDocument(docId); int length = values.count(); for (int i = 0; i < length; ++i) { builder.add(GeoPoints.copy(values.valueAt(i))); // GeoPoint instances are recycled! } }
@Override public void setDocument(int docId) { geoValues.setDocument(docId); resize(geoValues.count()); for (int i = 0; i < count(); ++i) { GeoPoint target = geoValues.valueAt(i); values[i] = GeoHashUtils.longEncode(target.getLon(), target.getLat(), precision); } sort(); } }
@Override public void setDocument(int docId) { geoValues.setDocument(docId); resize(geoValues.count()); for (int i = 0; i < count(); ++i) { GeoPoint target = geoValues.valueAt(i); values[i] = GeoHashUtils.longEncode(target.getLon(), target.getLat(), precision); } sort(); } }
@Override public void setDocument(int doc) { geoPointValues.setDocument(doc); resize(geoPointValues.count() * distances.length); int valueCounter = 0; for (FixedSourceDistance distance : distances) { for (int i = 0; i < geoPointValues.count(); ++i) { final GeoPoint point = geoPointValues.valueAt(i); values[valueCounter] = distance.calculate(point.lat(), point.lon()); valueCounter++; } } sort(); } };
@Override public boolean get(int doc) { values.setDocument(doc); final int length = values.count(); for (int i = 0; i < length; i++) { GeoPoint point = values.valueAt(i); if (((topLeft.lon() <= point.lon() || bottomRight.lon() >= point.lon())) && (topLeft.lat() >= point.lat() && bottomRight.lat() <= point.lat())) { return true; } } return false; }
@Override public boolean get(int doc) { values.setDocument(doc); final int length = values.count(); for (int i = 0; i < length; i++) { GeoPoint point = values.valueAt(i); if (topLeft.lon() <= point.lon() && bottomRight.lon() >= point.lon() && topLeft.lat() >= point.lat() && bottomRight.lat() <= point.lat()) { return true; } } return false; }
@Override public boolean get(int doc) { values.setDocument(doc); final int length = values.count(); for (int i = 0; i < length; i++) { GeoPoint point = values.valueAt(i); if (topLeft.lon() <= point.lon() && bottomRight.lon() >= point.lon() && topLeft.lat() >= point.lat() && bottomRight.lat() <= point.lat()) { return true; } } return false; }
@Override public boolean get(int doc) { values.setDocument(doc); final int length = values.count(); for (int i = 0; i < length; i++) { GeoPoint point = values.valueAt(i); if (((topLeft.lon() <= point.lon() || bottomRight.lon() >= point.lon())) && (topLeft.lat() >= point.lat() && bottomRight.lat() <= point.lat())) { return true; } } return false; }
@Override public void setDocument(int doc) { geoPointValues.setDocument(doc); resize(geoPointValues.count() * fromPoints.length); int v = 0; for (GeoPoint from : fromPoints) { for (int i = 0; i < geoPointValues.count(); ++i) { final GeoPoint point = geoPointValues.valueAt(i); values[v] = distance.calculate(from.lat(), from.lon(), point.lat(), point.lon(), unit); v++; } } sort(); } };