Soy nuevo en GeoTools y en los SIG en general. Tengo un shapefile que contiene polígonos de características que representan las zonas de taxis de la ciudad de Nueva York. También tengo las coordenadas en latitud y longitud de los lugares de recogida y entrega de un (gran) número de viajes en taxi.
He leído el Shapefile en un DataStore y puedo iterar sobre las características, pero no tengo idea de cómo consultarlo realmente. Supongo que se trata de una función que proporciona Geotools, pero tal vez me equivoque.
Mi código hasta ahora es el siguiente:
File file = new File("taxi_zones.shp");
FileDataStore myData = FileDataStoreFinder.getDataStore(file);
SimpleFeatureSource source = myData.getFeatureSource();
SimpleFeatureType schema = source.getSchema();
Query query = new Query(schema.getTypeName());
FeatureCollection<SimpleFeatureType, SimpleFeature> collection = source.getFeatures(query);
try (FeatureIterator<SimpleFeature> features = collection.features()) {
while (features.hasNext()) {
SimpleFeature feature = features.next();
System.out.println(feature.getID() + ": ");
for (Property attribute : feature.getProperties()) {
if (attribute.getName().toString().equals("the_geom")) {
System.out.println("\t" + attribute.getName() + ":" + attribute.getValue());
}
}
}
}
EDIT: Desde entonces he encontrado el subproyecto CQL y me doy cuenta de que necesito algo así: Filter filter = ECQL.toFilter("")
pero no sé cómo formular el texto de la consulta