public static Geometry strTreeNN(Geometry geoms, Geometry geom) { STRtree index = buildSTRtree(geoms); Object result = index.nearestNeighbour(geom.getEnvelopeInternal(), geom, new GeometryItemDistance()); return (Geometry) result; }
public static Geometry strTreeNNk(Geometry geoms, Geometry geom, int k) { STRtree index = buildSTRtree(geoms); Object[] knnObjects = index.nearestNeighbour(geom.getEnvelopeInternal(), geom, new GeometryItemDistance(), k); List knnGeoms = new ArrayList(Arrays.asList(knnObjects)); Geometry geometryCollection = geoms.getFactory().buildGeometry(knnGeoms); return geometryCollection; }
Object[] testTopK = (Object[])strtree.nearestNeighbour(queryCenter.getEnvelopeInternal(), queryCenter, new GeometryItemDistance(), topK); List topKList = Arrays.asList(testTopK); Collections.sort(topKList,distanceComparator);