-package org.argeo.app.api.geo;
-
-import javax.xml.namespace.QName;
-
-import org.argeo.api.acr.Content;
-import org.argeo.api.acr.search.AndFilter;
-import org.argeo.api.app.EntityType;
-import org.argeo.app.geo.acr.GeoEntityUtils;
-import org.locationtech.jts.geom.Geometry;
-
-import jakarta.json.stream.JsonGenerator;
-
-public interface FeatureAdapter {
- default Geometry getDefaultGeometry(Content c, QName targetFeature) {
- // TODO deal with more defaults
- // TODO deal with target feature
- if (c.hasContentClass(EntityType.geopoint)) {
- return getGeoPointGeometry(c);
- }
- return null;
- }
-
- void writeProperties(JsonGenerator g, Content content, QName targetFeature);
-
- void addConstraintsForFeature(AndFilter filter, QName targetFeature);
-
- static Geometry getGeoPointGeometry(Content c) {
- if (c.hasContentClass(EntityType.geopoint)) {
- return GeoEntityUtils.toPoint(c);
-// double latitude = c.get(WGS84PosName.lat, Double.class).get();
-// double longitude = c.get(WGS84PosName.lon, Double.class).get();
-//
-// Coordinate coordinate = new Coordinate(longitude, latitude);
-// Point the_geom = JTS.GEOMETRY_FACTORY.createPoint(coordinate);
-// return the_geom;
- }
- return null;
- }
-}