Les informations sur les bâtiments sont stockées dans le fichier citygml. J'essaie d'extraire la géométrie du polygone du bâtiment en utilisant la bibliothèque citygml4j. J'ai regardé la classe FeatureWalker, mais je suis incapable d'obtenir la géométrie du polygone.Extraction de la géométrie polygonale à partir des données citygml à l'aide de la bibliothèque citygml4j
Comment procéder? Voici mon code:
CityGMLContext ctx = new CityGMLContext();
CityGMLBuilder builder = ctx.createCityGMLBuilder();
CityGMLInputFactory in = builder.createCityGMLInputFactory();
CityGMLReader reader = in.createCityGMLReader(new File("/home/vishal/NWW/sampleData/LOD2_Building_v100.gml"));
while(reader.hasNext())
{
CityGML citygml = reader.nextFeature();
System.out.println("Found class:" + citygml.getCityGMLClass() + "\nVersion"+citygml.getCityGMLModule().getVersion());
//Counting the no of buildings
CityModel citymodel = new CityModel();
if(citygml.getCityGMLClass() == CityGMLClass.CITY_MODEL)
{
citymodel = (CityModel)citygml;
// Counting the no of buildings
int count=0;
for(CityObjectMember cityObjectMember : citymodel.getCityObjectMember())
{
AbstractCityObject cityobject = cityObjectMember.getCityObject();
if(cityobject.getCityGMLClass() == CityGMLClass.BUILDING)
{
++count;
}
}
System.out.println("Building count"+count);
}
FeatureWalker walker = new FeatureWalker(){
public void visit(Building building){
System.out.println(building.getId());
//MultiSurface multisurface = boundrysurface.getLod2MultiSurface().getMultiSurface();
//System.out.println(multisurface.getSurfaceMember().get(0));
List<BoundarySurfaceProperty> list = building.getBoundedBySurface();
System.out.println(list);
System.out.println(list.get(0).getBoundarySurface());
//HOW TO GET THE POLYGON AND ITS COORDINATES??
}
};
citymodel.accept(walker);
PS: Si vous avez d'autres ressources/tutoriels sur la bibliothèque citygml4j, bien vouloir me faire savoir.
Merci,