Java源码示例:org.geotools.feature.simple.SimpleFeatureImpl
示例1
@Override
public void registerClasses(final Kryo kryo) {
// Use existing FeatureSerializer code to serialize SimpleFeature
// classes
final FeatureSerializer simpleFeatureSerializer = new FeatureSerializer();
final GridCoverageWritableSerializer gcwSerializer = new GridCoverageWritableSerializer();
final PersistableSerializer persistSerializer = new PersistableSerializer();
PersistableFactory.getInstance().getClassIdMapping().entrySet().forEach(
e -> kryo.register(e.getKey(), persistSerializer, e.getValue()));
kryo.register(GeoWaveRDD.class);
kryo.register(GeoWaveIndexedRDD.class);
kryo.register(Geometry.class);
kryo.register(PreparedGeometry.class);
kryo.register(ByteArray.class);
kryo.register(GeoWaveInputKey.class);
kryo.register(SimpleFeatureImpl.class, simpleFeatureSerializer);
kryo.register(GridCoverageWritable.class, gcwSerializer);
}
示例2
@Before
public void setUp() throws Exception {
// Draw a "Z"
path = new Path2D.Double();
path.moveTo(0, 0);
path.lineTo(3, 0);
path.lineTo(0, 3);
path.lineTo(3, 3);
product = new Product("p", "t", 4, 4);
band = product.addBand("b", "4 * (Y-0.5) + (X-0.5) + 0.1");
dataSourceConfig = new ProfilePlotPanel.DataSourceConfig();
SimpleFeatureTypeBuilder ftb = new SimpleFeatureTypeBuilder();
ftb.setName("ft");
ftb.add("lat", Double.class);
ftb.add("lon", Double.class);
ftb.add("data", Double.class);
SimpleFeatureType ft = ftb.buildFeatureType();
DefaultFeatureCollection fc = new DefaultFeatureCollection("id", ft);
fc.add(new SimpleFeatureImpl(new Object[]{0, 0, 0.3}, ft, new FeatureIdImpl("id1"), false));
fc.add(new SimpleFeatureImpl(new Object[]{0, 0, 0.5}, ft, new FeatureIdImpl("id2"), false));
fc.add(new SimpleFeatureImpl(new Object[]{0, 0, 0.7}, ft, new FeatureIdImpl("id3"), false));
fc.add(new SimpleFeatureImpl(new Object[]{0, 0, 0.1}, ft, new FeatureIdImpl("id4"), false));
dataSourceConfig.pointDataSource = new VectorDataNode("vd", fc);
dataSourceConfig.dataField = ft.getDescriptor("data");
dataSourceConfig.boxSize = 1;
dataSourceConfig.computeInBetweenPoints = true;
}
示例3
@Test
public void test() throws SchemaException {
final Kryo kryo = new Kryo();
kryo.register(SimpleFeatureImpl.class, new FeatureSerializer());
final SimpleFeatureType schema =
DataUtilities.createType("testGeo", "location:Point:srid=4326,name:String");
final List<AttributeDescriptor> descriptors = schema.getAttributeDescriptors();
final Object[] defaults = new Object[descriptors.size()];
int p = 0;
for (final AttributeDescriptor descriptor : descriptors) {
defaults[p++] = descriptor.getDefaultValue();
}
final SimpleFeature feature =
SimpleFeatureBuilder.build(schema, defaults, UUID.randomUUID().toString());
final GeometryFactory geoFactory = new GeometryFactory();
feature.setAttribute("location", geoFactory.createPoint(new Coordinate(-45, 45)));
final Output output = new OutputChunked();
kryo.getSerializer(SimpleFeatureImpl.class).write(kryo, output, feature);
final Input input = new InputChunked();
input.setBuffer(output.getBuffer());
final SimpleFeature f2 =
(SimpleFeature) kryo.getSerializer(SimpleFeatureImpl.class).read(
kryo,
input,
SimpleFeatureImpl.class);
assertEquals(feature, f2);
}
示例4
@Override
public boolean accept(final Class<?> c) {
return SimpleFeatureImpl.class.isAssignableFrom(c);
}
示例5
@Override
public Deserializer<SimpleFeatureImpl> getDeserializer(final Class<SimpleFeatureImpl> arg0) {
return new SFDeserializer();
}
示例6
@Override
public Serializer<SimpleFeatureImpl> getSerializer(final Class<SimpleFeatureImpl> arg0) {
return new SFSerializer();
}
示例7
@Override
public SimpleFeatureImpl deserialize(final SimpleFeatureImpl t) throws IOException {
final FeatureWritable fw = new FeatureWritable();
fw.readFields(dataInput);
return (SimpleFeatureImpl) fw.getFeature();
}
示例8
@Override
public void serialize(final SimpleFeatureImpl t) throws IOException {
final FeatureWritable fw = new FeatureWritable(t.getFeatureType(), t);
fw.write(dataOutput);
}
示例9
/**
*
* Handling non-spatial attributes only
**/
public void handleNonGeometricAttributes(SimpleFeatureImpl feature) throws UnsupportedEncodingException, FileNotFoundException {
try
{
String featureAttribute = "featureWithoutID";
String featureName = "featureWithoutName";
String featureClass = "featureWithoutClass";
//Feature id
if (feature.getAttribute(configuration.attribute) != null) {
featureAttribute = feature.getAttribute(configuration.attribute).toString();
}
//Feature name
if (feature.getAttribute(configuration.featname) != null) {
featureName = feature.getAttribute(configuration.featname).toString();
}
//Feature classification
if (feature.getAttribute(configuration.featclass) != null) {
featureClass = feature.getAttribute(configuration.featclass).toString();
}
if (!featureAttribute.equals(configuration.ignore))
{
String encodingType =
URLEncoder.encode(configuration.type,
UtilsConstants.UTF_8).replace(STRING_TO_REPLACE,
REPLACEMENT);
String encodingResource =
URLEncoder.encode(featureAttribute,
UtilsConstants.UTF_8).replace(STRING_TO_REPLACE,
REPLACEMENT);
String aux = encodingType + SEPARATOR + encodingResource;
//Insert literal for name (name of feature)
if ((!featureName.equals(configuration.ignore)) && (!featureName.equals(""))) //NOT NULL values only
{
insertResourceNameLiteral(
configuration.nsUri + aux,
configuration.nsUri + Constants.NAME,
featureName,
configuration.defaultLang );
}
//Insert literal for class (type of feature)
if ((!featureClass.equals(configuration.ignore)) && (!featureClass.equals(""))) //NOT NULL values only
{
encodingResource =
URLEncoder.encode(featureClass,
UtilsConstants.UTF_8).replace(STRING_TO_REPLACE,
REPLACEMENT);
//Type according to application schema
insertResourceTypeResource(
configuration.nsUri + aux,
configuration.nsUri + encodingResource);
}
}
}
catch(Exception e) {}
}