package com.esri; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.Point; import org.geotools.data.simple.SimpleFeatureCollection; import org.opengis.feature.Feature; import org.opengis.feature.FeatureVisitor; import org.opengis.feature.Property; import org.opengis.filter.spatial.BBOX; import java.io.IOException; import java.util.List; /** */ @Deprecated public class SearchShapefilePoint extends SearchShapefileAbstract { public SearchShapefilePoint() { } @Override public boolean search( final double lon, final double lat, final List<ColumnInterface> columnList) throws IOException { resetColumns(columnList); m_coordinate.x = lon; m_coordinate.y = lat; final Point point = geometryFactory.createPoint(m_coordinate); // final Geometry buffer = point.buffer(m_buffer); final BBOX bbox = m_filterFactory.bbox(m_geometryName, lon - m_buffer, lat - m_buffer, lon + m_buffer, lat + m_buffer, null); final SimpleFeatureCollection featureCollection = m_featureSource.getFeatures(bbox); featureCollection.accepts(new FeatureVisitor() { public void visit(final Feature feature) { final Geometry geometry = (Geometry) feature.getProperty(m_geometryName).getValue(); final double distance = geometry.distance(point); final double weight = 1.0 - Math.min(m_buffer, distance) / m_buffer; if (weight > 0.0) { m_found = true; for (final ColumnInterface column : columnList) { final Property property = feature.getProperty(column.getQualifier()); column.addWeight(weight * column.toDouble(property.getValue())); } } } }, m_progressListener); return m_found; } }