Hello, I’m quite new in GH. Could someone explain me sth? Now I’m using GH3 and I have my profile settings in CarFlagEncoder class.
public CarFlagEncoder(PMap properties) {
super(properties.getInt("speed_bits", 5),
properties.getDouble("speed_factor", 5),
properties.getInt("max_turn_costs", properties.getBool("turn_costs", false) ? 1 : 0));
restrictedValues.add("agricultural");
restrictedValues.add("forestry");
restrictedValues.add("no");
restrictedValues.add("restricted");
restrictedValues.add("delivery");
restrictedValues.add("military");
restrictedValues.add("emergency");
restrictedValues.add("private");
blockPrivate(properties.getBool("block_private", true));
blockFords(properties.getBool("block_fords", false));
blockBarriersByDefault(properties.getBool("block_barriers", true));
setSpeedTwoDirections(properties.getBool("speed_two_directions", false));
intendedValues.add("yes");
intendedValues.add("designated");
intendedValues.add("permissive");
potentialBarriers.add("gate");
potentialBarriers.add("lift_gate");
potentialBarriers.add("kissing_gate");
potentialBarriers.add("swing_gate");
potentialBarriers.add("cattle_grid");
potentialBarriers.add("chain");
absoluteBarriers.add("fence");
absoluteBarriers.add("bollard");
absoluteBarriers.add("stile");
absoluteBarriers.add("turnstile");
absoluteBarriers.add("cycle_barrier");
absoluteBarriers.add("motorcycle_barrier");
absoluteBarriers.add("block");
absoluteBarriers.add("bus_trap");
absoluteBarriers.add("sump_buster");
badSurfaceSpeedMap.add("cobblestone");
badSurfaceSpeedMap.add("grass_paver");
badSurfaceSpeedMap.add("gravel");
badSurfaceSpeedMap.add("sand");
badSurfaceSpeedMap.add("paving_stones");
badSurfaceSpeedMap.add("dirt");
badSurfaceSpeedMap.add("ground");
badSurfaceSpeedMap.add("grass");
badSurfaceSpeedMap.add("unpaved");
badSurfaceSpeedMap.add("compacted");
// autobahn
defaultSpeedMap.put("motorway", 100);
defaultSpeedMap.put("motorway_link", 70);
defaultSpeedMap.put("motorroad", 90);
// bundesstraße
defaultSpeedMap.put("trunk", 70);
defaultSpeedMap.put("trunk_link", 65);
// linking bigger town
defaultSpeedMap.put("primary", 65);
defaultSpeedMap.put("primary_link", 60);
// linking towns + villages
defaultSpeedMap.put("secondary", 60);
defaultSpeedMap.put("secondary_link", 50);
// streets without middle line separation
defaultSpeedMap.put("tertiary", 50);
defaultSpeedMap.put("tertiary_link", 40);
defaultSpeedMap.put("unclassified", 30);
defaultSpeedMap.put("residential", 30);
// spielstraße
defaultSpeedMap.put("living_street", 5);
defaultSpeedMap.put("service", 20);
// unknown road
defaultSpeedMap.put("road", 20);
// forestry stuff
defaultSpeedMap.put("track", 15);
trackTypeSpeedMap.put("grade1", 20); // paved
trackTypeSpeedMap.put("grade2", 15); // now unpaved - gravel mixed with ...
trackTypeSpeedMap.put("grade3", 10); // ... hard and soft materials
trackTypeSpeedMap.put(null, defaultSpeedMap.get("track"));
// limit speed on bad surfaces to 30 km/h
badSurfaceSpeed = 30;
maxPossibleSpeed = 140;
}
But now I wanna to change it into a modern type - custom model (weightning into ‘custom’ from ‘fastest’)
My code now:
profiles:
- name: car
vehicle: car
weighting: custom
custom_model: {
"speed": [
{
"if": "true",
"limit_to": 140
},
{
"if": "road_class == MOTORWAY",
"multiply_by": 0.9
},
{
"if": "road_class == TRUNK || road_class == PRIMARY",
"multiply_by": 0.8
}
],
"priority": [
{
"if": "road_environment == TUNNEL",
"multiply_by": 0.95
}
],
"distance_influence": 70
}
And my questions :
- Using my custom_model (weightning ‘custom’ instead of ‘fastest’) it takes only my settings from that model and it doesn’t see my CarFlagEncoder ? Or it takes both?
- Which speed “multiply_by” takes? My max - 140km/? Or some max speed for the kind of route?
- I have a few maps in my CarFlagEncoder f.ex with barriers - Must I have it all in my custom_model or there are some defaults and in my custom_model I have to have only params which I want to change ?
- What are differences between weightning “custom” and “fastest” ? And it is good idea to change it?
- Are there any possibilities to change distance_influence without custom_model?