Skip to content

Instantly share code, notes, and snippets.

@betzms
Created December 18, 2020 11:16
Show Gist options
  • Save betzms/598a88aaca65289c73586629899d5f29 to your computer and use it in GitHub Desktop.
Save betzms/598a88aaca65289c73586629899d5f29 to your computer and use it in GitHub Desktop.
public static void main(String[] args) throws CityGMLBuilderException, CityGMLReadException, CityGMLWriteException {
CityGMLContext context = CityGMLContext.getInstance();
CityGMLBuilder builder = context.createCityGMLBuilder();
CityGMLInputFactory in = builder.createCityGMLInputFactory();
in.setProperty(CityGMLInputFactory.FEATURE_READ_MODE, FeatureReadMode.NO_SPLIT);
CityModel cityModel;
try (CityGMLReader reader = in.createCityGMLReader(new File("TestOutput.gml"))) {
cityModel = (CityModel) reader.nextFeature();
if (!cityModel.getGenericApplicationPropertyOfCityModel().isEmpty()) {
System.out.println("CityModel contains ADE");
}
}
CityGMLOutputFactory outputFactory = builder.createCityGMLOutputFactory(CityGMLVersion.DEFAULT);
ByteArrayOutputStream out = new ByteArrayOutputStream();
try (CityModelWriter writer = outputFactory.createCityModelWriter(out)) {
writer.setIndentString(" ");
writer.setPrefixes(CityGMLVersion.DEFAULT);
writer.setSchemaLocations(CityGMLVersion.DEFAULT);
writer.setCityModelInfo(new CityModelInfo(cityModel));
writer.writeStartDocument();
for (CityObjectMember member : cityModel.getCityObjectMember()) {
writer.writeFeatureMember(member.getCityObject());
}
writer.writeEndDocument();
}
byte[] gml = out.toByteArray();
String gmlString = new String(gml);
System.out.println();
System.out.println(gmlString);
System.out.println();
System.out.println("---------------------");
System.out.println();
try (CityGMLReader reader = in.createCityGMLReader("?", new ByteArrayInputStream(gml))) {
cityModel = (CityModel) reader.nextFeature();
if (!cityModel.getGenericApplicationPropertyOfCityModel().isEmpty()) {
System.out.println("Written CityModel contains ADE");
} else {
System.out.println("Written CityModel does not contain ADE");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment