package mil.nga.giat.geowave.examples.ingest.bulk;
import org.geotools.feature.AttributeTypeBuilder;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
import org.opengis.feature.simple.SimpleFeatureType;
import com.vividsolutions.jts.geom.Geometry;
/**
* Provides a static method to obtain an instance of a SimpleFeatureType for
* Geonames data
*/
public class GeonamesSimpleFeatureType
{
private static final String FEATURE_NAME = "GeonamesPoint";
private static SimpleFeatureType simpleFeatureType;
private GeonamesSimpleFeatureType() {
// prevent instantiation
}
public static SimpleFeatureType getInstance() {
if (simpleFeatureType == null) {
simpleFeatureType = createGeonamesPointType();
}
return simpleFeatureType;
}
private static SimpleFeatureType createGeonamesPointType() {
final SimpleFeatureTypeBuilder sftBuilder = new SimpleFeatureTypeBuilder();
final AttributeTypeBuilder atBuilder = new AttributeTypeBuilder();
sftBuilder.setName(FEATURE_NAME);
sftBuilder.add(atBuilder.binding(
Geometry.class).nillable(
false).buildDescriptor(
"geometry"));
sftBuilder.add(atBuilder.binding(
Double.class).nillable(
false).buildDescriptor(
"Latitude"));
sftBuilder.add(atBuilder.binding(
Double.class).nillable(
false).buildDescriptor(
"Longitude"));
sftBuilder.add(atBuilder.binding(
String.class).nillable(
false).buildDescriptor(
"Location"));
return sftBuilder.buildFeatureType();
}
}