有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Atlas中使用标记过滤

刚接触Atlas项目(以及Java),我正在尝试一些东西。我正在寻找一种更好的方法来结合herehere给出的指令,在Atlas上应用标记过滤

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

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

共 (1) 个答案

  1. # 1 楼答案

    您的代码将运行并生成另一个Atlas,其中包含带有highway=residential的所有元素。需要注意的是,Atlas必须遵循功能完整性(即,一个Edge如果没有它的结束Node就不可能存在),这意味着没有您在这里指定的标记的一些功能可能仍然会被拉入(例如,连接的Node或父Relation

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

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