void prepareWaysWithRelationInfo(ReaderRelation osmRelation) { // is there at least one tag interesting for the registed encoders? if (encodingManager.handleRelationTags(osmRelation, 0) == 0) return; for (ReaderRelation.Member member : osmRelation.getMembers()) { if (member.getType() != ReaderRelation.Member.WAY) continue; long osmId = member.getRef(); long oldRelationFlags = getRelFlagsMap().get(osmId); // Check if our new relation data is better comparated to the the last one long newRelationFlags = encodingManager.handleRelationTags(osmRelation, oldRelationFlags); if (oldRelationFlags != newRelationFlags) getRelFlagsMap().put(osmId, newRelationFlags); } }
@Test public void testMixBikeTypesAndRelationCombination() { ReaderWay osmWay = new ReaderWay(1); osmWay.setTag("highway", "track"); osmWay.setTag("tracktype", "grade1"); ReaderRelation osmRel = new ReaderRelation(1); BikeFlagEncoder bikeEncoder = new BikeFlagEncoder(); MountainBikeFlagEncoder mtbEncoder = new MountainBikeFlagEncoder(); EncodingManager manager = new EncodingManager(bikeEncoder, mtbEncoder); // relation code for network rcn is VERY_NICE for bike and PREFER for mountainbike osmRel.setTag("route", "bicycle"); osmRel.setTag("network", "rcn"); long relFlags = manager.handleRelationTags(osmRel, 0); long allow = bikeEncoder.acceptBit | mtbEncoder.acceptBit; long flags = manager.handleWayTags(osmWay, allow, relFlags); // bike: uninfluenced speed for grade but via network => VERY_NICE // mtb: uninfluenced speed only PREFER assertTrue(bikeEncoder.getDouble(flags, PriorityWeighting.KEY) > mtbEncoder.getDouble(flags, PriorityWeighting.KEY)); }
long relFlags = manager.handleRelationTags(osmRel, 0); long allow = defaultBike.acceptBit | lessRelationCodes.acceptBit; long flags = manager.handleWayTags(osmWay, allow, relFlags);
void prepareWaysWithRelationInfo( OSMRelation osmRelation ) { // is there at least one tag interesting for the registed encoders? if (encodingManager.handleRelationTags(osmRelation, 0) == 0) return; int size = osmRelation.getMembers().size(); for (int index = 0; index < size; index++) { OSMRelation.Member member = osmRelation.getMembers().get(index); if (member.type() != OSMRelation.Member.WAY) continue; long osmId = member.ref(); long oldRelationFlags = getRelFlagsMap().get(osmId); // Check if our new relation data is better comparated to the the last one long newRelationFlags = encodingManager.handleRelationTags(osmRelation, oldRelationFlags); if (oldRelationFlags != newRelationFlags) getRelFlagsMap().put(osmId, newRelationFlags); } }
void prepareWaysWithRelationInfo(ReaderRelation osmRelation) { // is there at least one tag interesting for the registed encoders? if (encodingManager.handleRelationTags(osmRelation, 0) == 0) return; for (ReaderRelation.Member member : osmRelation.getMembers()) { if (member.getType() != ReaderRelation.Member.WAY) continue; long osmId = member.getRef(); long oldRelationFlags = getRelFlagsMap().get(osmId); // Check if our new relation data is better comparated to the the last one long newRelationFlags = encodingManager.handleRelationTags(osmRelation, oldRelationFlags); if (oldRelationFlags != newRelationFlags) getRelFlagsMap().put(osmId, newRelationFlags); } }
void prepareWaysWithRelationInfo(ReaderRelation osmRelation) { // is there at least one tag interesting for the registed encoders? if (encodingManager.handleRelationTags(osmRelation, 0) == 0) return; for (ReaderRelation.Member member : osmRelation.getMembers()) { if (member.getType() != ReaderRelation.Member.WAY) continue; long osmId = member.getRef(); long oldRelationFlags = getRelFlagsMap().get(osmId); // Check if our new relation data is better comparated to the the last one long newRelationFlags = encodingManager.handleRelationTags(osmRelation, oldRelationFlags); if (oldRelationFlags != newRelationFlags) getRelFlagsMap().put(osmId, newRelationFlags); } }