Assuming JTS for the geometry that is included with GeoTools:
public boolean pointIsClose( File file, Point targetPoint,double distance) { boolean ret = false; Map connect = new HashMap(); connect.put("url", file.toURL()); DataStore dataStore = DataStoreFinder.getDataStore(connect); FeatureSource featureSource = dataStore.getFeatureSource(typeName); FeatureCollection collection = featureSource.getFeatures(); FeatureIterator iterator = collection.features(); try { while (iterator.hasNext()) { Feature feature = iterator.next(); Geometry sourceGeometry = feature.getDefaultGeometry(); ret= sourceGeometry.isWithinDistance(targetPoint, distance ); } } finally { iterator.close(); } return ret; }
The double number should be obtained from CRS , which will determine the units of measurement in which the calculation will be performed.
This is the import of geotexts:
import org.geotools.data.DataStore; import org.geotools.data.DataStoreFinder; import org.geotools.data.FeatureSource; import org.geotools.feature.Feature; import org.geotools.feature.FeatureCollection; import org.geotools.feature.FeatureIterator; import org.geotools.geometry.jts.JTS; import org.geotools.referencing.CRS; import org.opengis.referencing.crs.CoordinateReferenceSystem;
Clint source share