Hi @anhphanuet, I looked at the COLLADA dataset. It contains a single aggregate geometry which consists of multiple surface (Mesh) geometries, each of which seems to represent a building.
Summary: Decompose the input aggregate into individual surfaces (buildings); Create four tile areas covering all the buildings; Filter the buildings by the tile areas, then group the buildings with ID of the tiles.
However, most transformers for spatial filtering only support vector geometries, will reject 3D models including surface. A workaround I can think of is: once save the surface geometry as an attribute (GeometryExtractor), transform it to a representative point (CenterPointReplacer), perform filtering the points by the tile areas (Clipper, SpatialFilter, or PoinaOnAreaOverlayer), then restore the surface geometry from the attribute (GeometryReplacer).
See also this workflow example. In this example, you can group the buildings by "_row" and "_column" of the tiles.
Hi @anhphanuet, I looked at the COLLADA dataset. It contains a single aggregate geometry which consists of multiple surface (Mesh) geometries, each of which seems to represent a building.
Summary: Decompose the input aggregate into individual surfaces (buildings); Create four tile areas covering all the buildings; Filter the buildings by the tile areas, then group the buildings with ID of the tiles.
However, most transformers for spatial filtering only support vector geometries, will reject 3D models including surface. A workaround I can think of is: once save the surface geometry as an attribute (GeometryExtractor), transform it to a representative point (CenterPointReplacer), perform filtering the points by the tile areas (Clipper, SpatialFilter, or PoinaOnAreaOverlayer), then restore the surface geometry from the attribute (GeometryReplacer).
See also this workflow example. In this example, you can group the buildings by "_row" and "_column" of the tiles.
Thanks, @takashi, I tried the above workspace but my computer is unable to finish the translation because of the memory exceeding problem. I guess creating 3D-Tiles data from one large dataset is not a popular way. Do you have any suggestion?
Thank you very much,
PA.
Hi @anhphanuet, I looked at the COLLADA dataset. It contains a single aggregate geometry which consists of multiple surface (Mesh) geometries, each of which seems to represent a building.
Summary: Decompose the input aggregate into individual surfaces (buildings); Create four tile areas covering all the buildings; Filter the buildings by the tile areas, then group the buildings with ID of the tiles.
However, most transformers for spatial filtering only support vector geometries, will reject 3D models including surface. A workaround I can think of is: once save the surface geometry as an attribute (GeometryExtractor), transform it to a representative point (CenterPointReplacer), perform filtering the points by the tile areas (Clipper, SpatialFilter, or PoinaOnAreaOverlayer), then restore the surface geometry from the attribute (GeometryReplacer).
See also this workflow example. In this example, you can group the buildings by "_row" and "_column" of the tiles.
Hi @takashi,
I tried to use shapefile as the input and I changed the workspace a little bit (as the image below).
Now the problem is the ClipperTransfromer doesn't work with the Clipper and Clippee parameters.
Is there any solution for this situation?
Thank you,
PA
I attach the workspace and shapefile.
fme-workspace.zip
Hi @takashi,
I tried to use shapefile as the input and I changed the workspace a little bit (as the image below).
Now the problem is the ClipperTransfromer doesn't work with the Clipper and Clippee parameters.
Is there any solution for this situation?
Thank you,
PA
I attach the workspace and shapefile.
fme-workspace.zipYou should not set '_row' and '_column' to the Group By parameter in the Clipper. Those attributes will be merged to the clipped Inside features after clipping, and then you can group them for each area using the attributes.
You should not set '_row' and '_column' to the Group By parameter in the Clipper. Those attributes will be merged to the clipped Inside features after clipping, and then you can group them for each area using the attributes.
@takashi, but with such a partition, the tile will not contain individual identities (in one b3dm the whole tile will be highlighted and not separate objects, and when setting the number of objects in the writer, the cesium will not be able to create the same squares of tiles) If you can tell how to fix this situation I will be very grateful.
@takashi, but with such a partition, the tile will not contain individual identities (in one b3dm the whole tile will be highlighted and not separate objects, and when setting the number of objects in the writer, the cesium will not be able to create the same squares of tiles) If you can tell how to fix this situation I will be very grateful.
Hi @muzhnasto,
I'd encourage you to post a new question and link back to this one for reference for better visibility. At a glance this Q&A thread appears to be solved so it's easy to miss your new comment by accident. Thanks!