Atlas中标签过滤的使用方法

How to use tag filtering in Atlas

Atlas project (and also to Java), I am trying some things out. I am looking for the preferred way to combine the instructions given here and here 在图集上应用标签过滤。

下面是一个好的方法还是有更好的选择?

String definition = "highway->residential";
final TaggableFilter filter = TaggableFilter.forDefinition(definition);
final Optional<Atlas> predicateAtlas = atlas.subAtlas(filter::test, AtlasCutType.SOFT_CUT);

您的代码可以运行并生成另一个图集,其中包含带有 highway=residential 的所有元素。重要的是要注意 Atlas 必须遵循功能完整性(即 Edge 不能没有结尾 Nodes 存在)这意味着一些没有您在此处指定的标签的功能可能仍会被拉入(已连接 Nodes,或者 parent Relations 例如)。

另一种只获取标记为 highway=residential 的特征的方法是不强制将它们反馈到 Atlas,而只是打印或使用您选择的自定义函数处理:

String definition = "highway->residential";
final TaggableFilter filter = TaggableFilter.forDefinition(definition);
atlas.entities(filter).forEach(entity -> ...);