java如何在Atlas中使用标记过滤
刚接触Atlas项目(以及Java),我正在尝试一些东西。我正在寻找一种更好的方法来结合here和here给出的指令,在Atlas上应用标记过滤
以下是一个好方法还是有更好的选择
String definition = "highway->residential";
final TaggableFilter filter = TaggableFilter.forDefinition(definition);
final Optional<Atlas> predicateAtlas = atlas.subAtlas(filter::test, AtlasCutType.SOFT_CUT);
# 1 楼答案
您的代码将运行并生成另一个Atlas,其中包含带有
highway=residential
的所有元素。需要注意的是,Atlas必须遵循功能完整性(即,一个Edge
如果没有它的结束Node
就不可能存在),这意味着没有您在这里指定的标记的一些功能可能仍然会被拉入(例如,连接的Node
或父Relation
)另一种只获取标记为
highway=residential
的功能的方法是不强制将它们反馈到Atlas,而是直接打印,或使用您选择的自定义功能处理: