We are building a road traffic tracking system based on Valhalla, and we have a problem with road branches: enter image description here
JSON:
{"locations":[{"lat":53.88756,"lon":25.3195619,"type":"break"},{"lat":53.8876366,"lon":25.3196835,"type":"break"},{"lat":53.888291,"lon":25.3205159,"type":"break"},{"lat":53.8896125,"lon":25.2958685,"type":"break"},{"lat":53.8896125,"lon":25.2958685,"type":"break"},{"lat":53.8804924,"lon":25.2793523,"type":"break"},{"lat":53.8774732,"lon":25.2743507,"type":"break"},{"lat":53.8724133,"lon":25.2598487,"type":"break"},{"lat":53.8689721,"lon":25.2486853,"type":"break"},{"lat":53.8231981,"lon":25.1259827,"type":"break"},{"lat":53.7370888,"lon":24.9938559,"type":"break"}],"costing":"auto","language":"ru-RU","directions_options":{"units":"kilometers"}}
Config:
{
"additional_data": {
"elevation": "/custom_files/elevation_data"
},
"httpd": {
"service": {
"drain_seconds": 28,
"interrupt": "ipc:///tmp/interrupt",
"listen": "tcp://*:8002",
"loopback": "ipc:///tmp/loopback",
"shutdown_seconds": 1,
"timeout_seconds": -1
}
},
"loki": {
"actions": [
"locate",
"route",
"height",
"sources_to_targets",
"optimized_route",
"isochrone",
"trace_route",
"trace_attributes",
"transit_available",
"expansion",
"centroid",
"status"
],
"logging": {
"color": true,
"file_name": "path_to_some_file.log",
"long_request": 100,
"type": "std_out"
},
"service": {
"proxy": "ipc:///tmp/loki"
},
"service_defaults": {
"heading_tolerance": 60,
"minimum_reachability": 50,
"node_snap_tolerance": 5,
"radius": 0,
"search_cutoff": 170000,
"street_side_max_distance": 1000,
"street_side_tolerance": 3
},
"use_connectivity": true
},
"meili": {
"auto": {
"search_radius": 10,
"turn_penalty_factor": 500
},
"bicycle": {
"turn_penalty_factor": 140
},
"customizable": [
"mode",
"search_radius",
"turn_penalty_factor",
"gps_accuracy",
"interpolation_distance",
"sigma_z",
"beta",
"max_route_distance_factor",
"max_route_time_factor"
],
"default": {
"beta": 3,
"breakage_distance": 5000,
"geometry": false,
"gps_accuracy": 3,
"interpolation_distance": 10,
"max_route_distance_factor": 5,
"max_route_time_factor": 5,
"max_search_radius": 100,
"route": true,
"search_radius": 50,
"sigma_z": 4.07,
"turn_penalty_factor": 0
},
"grid": {
"cache_size": 100240,
"size": 500
},
"logging": {
"color": true,
"file_name": "path_to_some_file.log",
"type": "std_out"
},
"mode": "auto",
"multimodal": {
"turn_penalty_factor": 70
},
"pedestrian": {
"search_radius": 50,
"turn_penalty_factor": 100
},
"service": {
"proxy": "ipc:///tmp/meili"
},
"verbose": false
},
"mjolnir": {
"admin": "/custom_files/admin_data/admins.sqlite",
"concurrency": "4",
"data_processing": {
"allow_alt_name": false,
"apply_country_overrides": true,
"infer_internal_intersections": true,
"infer_turn_channels": true,
"scan_tar": false,
"use_admin_db": true,
"use_direction_on_ways": false,
"use_rest_area": false,
"use_urban_tag": false
},
"global_synchronized_cache": false,
"hierarchy": true,
"id_table_size": 1300000000,
"import_bike_share_stations": false,
"include_bicycle": true,
"include_construction": false,
"include_driveways": true,
"include_driving": true,
"include_pedestrian": true,
"include_platforms": false,
"landmarks": "/data/valhalla/landmarks.sqlite",
"logging": {
"color": true,
"file_name": "path_to_some_file.log",
"type": "std_out"
},
"lru_mem_cache_hard_control": false,
"max_cache_size": 1000000000,
"max_concurrent_reader_users": 1,
"reclassify_links": true,
"shortcuts": true,
"tile_dir": "/custom_files/valhalla_tiles",
"tile_extract": "/custom_files/valhalla_tiles.tar",
"timezone": "/custom_files/timezone_data/timezones.sqlite",
"traffic_extract": "/custom_files/traffic.tar",
"transit_dir": "/custom_files/transit_tiles",
"transit_feeds_dir": "/gtfs_feeds",
"transit_pbf_limit": 20000,
"use_lru_mem_cache": false,
"use_simple_mem_cache": false
},
"odin": {
"logging": {
"color": true,
"file_name": "path_to_some_file.log",
"type": "std_out"
},
"markup_formatter": {
"markup_enabled": false,
"phoneme_format": "<TEXTUAL_STRING> (<span class=<QUOTES>phoneme<QUOTES>>/<VERBAL_STRING>/</span>)"
},
"service": {
"proxy": "ipc:///tmp/odin"
}
},
"service_limits": {
"auto": {
"max_distance": 50000000,
"max_locations": 20000,
"max_matrix_distance": 400000,
"max_matrix_location_pairs": 2500
},
"bicycle": {
"max_distance": 500000,
"max_locations": 50,
"max_matrix_distance": 200000,
"max_matrix_location_pairs": 2500
},
"bikeshare": {
"max_distance": 500000,
"max_locations": 50,
"max_matrix_distance": 200000,
"max_matrix_location_pairs": 2500
},
"bus": {
"max_distance": 5000000,
"max_locations": 50,
"max_matrix_distance": 400000,
"max_matrix_location_pairs": 2500
},
"centroid": {
"max_distance": 200000,
"max_locations": 5
},
"isochrone": {
"max_contours": 4,
"max_distance": 25000,
"max_distance_contour": 200,
"max_locations": 1,
"max_time_contour": 120
},
"max_alternates": 2,
"max_distance_disable_hierarchy_culling": 0,
"max_exclude_locations": 50,
"max_exclude_polygons_length": 10000,
"max_radius": 200,
"max_reachability": 100,
"max_timedep_distance": 500000,
"max_timedep_distance_matrix": 0,
"motor_scooter": {
"max_distance": 500000,
"max_locations": 50,
"max_matrix_distance": 200000,
"max_matrix_location_pairs": 2500
},
"motorcycle": {
"max_distance": 500000,
"max_locations": 50,
"max_matrix_distance": 200000,
"max_matrix_location_pairs": 2500
},
"multimodal": {
"max_distance": 500000,
"max_locations": 50,
"max_matrix_distance": 0,
"max_matrix_location_pairs": 0
},
"pedestrian": {
"max_distance": 250000,
"max_locations": 50,
"max_matrix_distance": 200000,
"max_matrix_location_pairs": 2500,
"max_transit_walking_distance": 10000,
"min_transit_walking_distance": 1
},
"skadi": {
"max_shape": 750000,
"min_resample": 10
},
"status": {
"allow_verbose": false
},
"taxi": {
"max_distance": 5000000,
"max_locations": 20,
"max_matrix_distance": 400000,
"max_matrix_location_pairs": 2500
},
"trace": {
"max_alternates": 3,
"max_alternates_shape": 100,
"max_distance": 200000,
"max_gps_accuracy": 100,
"max_search_radius": 100,
"max_shape": 16000
},
"transit": {
"max_distance": 500000,
"max_locations": 50,
"max_matrix_distance": 200000,
"max_matrix_location_pairs": 2500
},
"truck": {
"max_distance": 5000000,
"max_locations": 20,
"max_matrix_distance": 400000,
"max_matrix_location_pairs": 2500
}
},
"statsd": {
"port": 8125,
"prefix": "valhalla"
},
"thor": {
"clear_reserved_memory": false,
"extended_search": false,
"logging": {
"color": true,
"file_name": "path_to_some_file.log",
"long_request": 110,
"type": "std_out"
},
"max_reserved_labels_count_astar": 2000000,
"max_reserved_labels_count_bidir_astar": 1000000,
"max_reserved_labels_count_bidir_dijkstras": 2000000,
"max_reserved_labels_count_dijkstras": 4000000,
"service": {
"proxy": "ipc:///tmp/thor"
},
"source_to_target_algorithm": "select_optimal"
}
}
here are quite a lot of such road branches, which is poorly estimated when calculating the distance. How to solve this problem?
Try changing server settings.