@Override public long getOsmIdentifier() { return this.source.getOsmIdentifier(); }
@Override protected boolean filter(final AtlasEntity item) { return this.identifiers.contains(item.getOsmIdentifier()); }
@Override protected void handle(final Atlas atlas, final CommandMap command) { StreamSupport.stream(atlas.entities(i -> i.getOsmIdentifier() > 0).spliterator(), false) .filter(this::filter).forEach(this::output); }
@Override public String toString() { return MoreObjects.toStringHelper(this).add("osm", getSource().getOsmIdentifier()) .add("atlas", getSource().getIdentifier()).add("boundary", this.boundary) .toString(); }
protected String formatAtlasObject(final String type, final Atlas atlas, final AtlasEntity entity) { final String shardName = atlas.metaData().getShardName().orElse("UNKNOWN"); return String.format("[%10s] [%d] [%d] --> [%s:%s] Tags: [%s]\n", type, entity.getOsmIdentifier(), entity.getIdentifier(), shardName, atlas.getName(), entity.getTags()); }
/** * A method that creates properties for a GeoJSON Feature from the tags. * * @return A GeoJSON properties object that is to be put in a Feature. */ public JsonObject geoJsonProperties() { final JsonObject properties = new JsonObject(); getTags().forEach(properties::addProperty); properties.addProperty(GeoJsonUtils.IDENTIFIER, getIdentifier()); properties.addProperty(GeoJsonUtils.OSM_IDENTIFIER, getOsmIdentifier()); properties.addProperty(GeoJsonUtils.ITEM_TYPE, String.valueOf(getType())); final Optional<String> shardName = getAtlas().metaData().getShardName(); shardName.ifPresent(shard -> properties.addProperty("shard", shard)); final Set<Relation> relations = relations(); if (relations.size() > 0) { final JsonArray relationsArray = new JsonArray(); properties.add("relations", relationsArray); for (final Relation relation : relations) { final JsonObject relationObject = relation.geoJsonProperties(); relationsArray.add(relationObject); } } return properties; }
/** * Creates an informative {@link String} for an {@link AtlasEntity} and the {@link Atlas} that * contains it. * * @param entity * {@link AtlasEntity} to create the string for * @return formatted string */ private String formatAtlasObject(final AtlasEntity entity) { final String shardName = entity.getAtlas().metaData().getShardName().orElse("UNKNOWN"); return String.format("[%s] [%d] [%d] --> [%s:%s] Tags: [%s]\n", entity.getType(), entity.getOsmIdentifier(), entity.getIdentifier(), shardName, entity.getAtlas().getName(), entity.getTags()); } }
this.containedOSMIDs.add(member.getEntity().getOsmIdentifier()); if (RelationTypeTag.BUILDING_ROLE_OUTLINE.equals(member.getRole())) this.containedOSMIDs.add(member.getEntity().getOsmIdentifier()); if (RelationTypeTag.BUILDING_ROLE_PART.equals(member.getRole()))
final long memberIdentifier = member.getEntity().getOsmIdentifier(); if (memberIdentifier == osmIdentifier)
@Override protected Optional<CheckFlag> flag(final AtlasObject object) { final Relation relation = (Relation) object; final RelationMemberList members = relation.members(); // If the number of members in the relation is 1 if (members.size() == 1) { if (members.get(0).getEntity().getType().equals(ItemType.RELATION)) { return Optional.of(createFlag(getRelationMembers((Relation) object), this.getLocalizedInstruction(2, relation.getOsmIdentifier(), members.get(0).getEntity().getOsmIdentifier()))); } // If the relation is a multi-polygon, if (relation.isMultiPolygon()) { return Optional.of(createFlag(getRelationMembers((Relation) object), this.getLocalizedInstruction(1, relation.getOsmIdentifier()))); } return Optional.of(createFlag(getRelationMembers((Relation) object), this.getLocalizedInstruction(0, relation.getOsmIdentifier()))); } return Optional.empty(); }
final double surfaceAreaMeters = surfaceArea.asMeterSquared(); final double surfaceAreaKilometers = surfaceArea.asKilometerSquared(); final long memberOsmId = member.getEntity().getOsmIdentifier();