java - 如何在Atlas中使用标签过滤

标签 java openstreetmap osm.pbf

新加入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);

最佳答案

您的代码将运行并生成另一个 Atlas,其中包含具有 highway=residential 的所有元素。值得注意的是,Atlas 必须遵循功能完整性(即 Edge 不能在没有其结束 Node 的情况下存在),这意味着某些没有您在此处指定的标签的功能可能仍然存在被拉入(例如连接的节点,或父关系)。

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

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

关于java - 如何在Atlas中使用标签过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56188230/

相关文章:

OpenStreetMap osm.pbf 文件,联邦州的路径数量与国家/地区的路径数量相比

java - 解决 JNI DefineClass 中的依赖关系

Java Swing - 在 JPanel 上使用 GPS 坐标绘制站名称

java - (关于 'final'的问题和)如何从JSTL中的Spring ModelMap访问 'myModels'的列表对象内容?

javascript - 如何将两个 geoJSON 要素集合添加到两个图层组中

java - Android - 如何从一张大位图创建小位图?

google-maps - Google map 于 2015 年 2 月停止对 kml/kmz 的支持

android - 为什么OSM中的 map 在android studio中不显示?

scala - 在 Spark 中处理 (OSM) PBF 文件