Closed italosergio closed 4 weeks ago
só usamos os seguinte itens do json na nota
typology,
flow_direction,
traffic_flow,
localization,
speed_limit,
segregator_type,
protection_conditions_evaluation,
access_evaluation,
all_access_count,
way_with_access,
ways_without_access,
pavement_type,
pavement_condition_evaluation,
sinuosity_evaluation,
shading_evaluation,
all_risks_situations_count,
unevenness_obstacles, //NO FUTURO, ajustar
all_obstacles_count,
ridable_width,
buffer_width,
road_width,
vertical_speed_signs_count,
horizontal_speed_sign_count,
electronic_speed_control_count,
other_control_elements_count,
start_indication,
end_indication,
on_way_vertical_signs_count,
crosses_with_vertical_sign_count,
crosses_without_vertical_sign_count,
horizontal_pattern_evaluation,
painting_condition_evaluation,
good_conditions_crossing_signs,
bad_conditions_crossing_signs,
no_visible_crossing_signs,
good_conditions_picto_signs,
bad_conditions_picto_signs,
good_conditions_arrow_signs,
bad_conditions_arrow_signs,
dedicated_ligthing,
same_side_ligthing,
other_side_ligthing,
seg_length: length,
on_way_risks_situations_count,
crossing_risks_situations_count,
total_unlevel_controls,
mean_lane_width,
mean_square_size,
cycle_stoplight_count = 0,
total_stoplight_count = 0,
additional_signs_count = 0,
mas fazemos a conta do total de situações de risco assim:
converted["all_risks_situations_count"] = parseInt( converted["all_risks_situations_count"] ); converted["on_way_risks_situations_count"] = converted["bus_stops_along"] + converted["structure_side_change_without_speed_reducers_or_lights"] + converted["structure_abrupt_end_in_counterflow"]; converted["crossing_risks_situations_count"] = converted["crossings_no_speed_reduction"] + converted["conversion_path_allows_car_intrusion"] + converted["car_turning_left_with_cyclist_invisibility"]; converted["total_unlevel_controls"] = converted["pedestrian_crossings_count"] + converted["speed_bumps_count"];
o que pegamos no app tá assim:
<row>
<button type="tag" label="Ponto de embarque de ônibus interrompe a ciclo" icon="" />
</row>
<row>
<button type="tag" label="Termina ciclo com ciclista na contramão" icon="" />
</row>
<row>
<button type="tag"
label="A ciclo troca de lado na via, sem redutores de velocidade ou semáforos"
icon="" />
</row>
<row>
<button type="tag"
label="Conversão perigosa. EXPLIQUE."
icon="" />
</row>
<row>
<button type="tag"
label="Cruzamento perigoso. EXPLIQUE."
icon="" />
</row>
<row>
<button type="tag" label="Outro risco. EXPLIQUE."
icon="auditoria_cicloviaria_icons/other.png" />
esses são os textos na avaliação:
const pavement_type_rate_pattern = { Concreto: 10, Asfalto: 7.5, "Tijolo intertravado": 5, "Paralelepípedo rejuntado com cimento": 2.5, "Terra/Barro": 0, Ciclorrota: null, };
const pavement_condition_rate_pattern = { "Bom estado": 10, "Pequenas imperfeições, como fissuras": 8, "Falhas que demandam redução de velocidade ou parada": 6, "Irregularidades que demandam desvio para circulação": 4, "Buracos grandes que demandam saída a estrutura": 2, "Totalmente destruído, impossível transitar": 0, };
const painting_condition_rate_pattern = { "A pintura está boa, COMPLETA e visível": 10, "A pintura está boa, mas FALHA em ALGUNS pontos": 8, "A pintura é falha em VÁRIOS pontos": 4, "A pintura é MUITO falha, mostrando muito asfalto": 2, "Pintura APAGADA ou somente rastros de tinta": 0, };
const segregator_type_rate_pattern = { Canteiros: 10, Mureta: 8, Guias: 8, "Prismas ou blocos de concreto": 7, Balizadores: 5, "Tachas ou tachões": 4, "Sinalização com pintura": 2, "Não há": 0, Ciclorrota: null, };
const protection_conditions_rate_pattern = { "SE CICLOVIA, segregação impede completamente a invasão de automóvel e não há trechos desprotegidos": 10, "SE CICLOFAIXA, impossível automóvel invadir a estrutura sem ultrapassar por segregadores": 10, "Poucos trechos SEM segregadores dificultando invasão": 6.6, "Poucos trechos COM segregadores dificultando invasão": 3.3, "NENHUM ou QUASE NENHUM segregador dificultando invasão": 0, Ciclorrota: null, };
const shading_rate_pattern = { "Sombras na MAIOR PARTE da extensão": 10, "Sombras em PRATICAMENTE TODA a extensão": 8, "Sombras em alguns trechos, COM mudas plantadas": 6, "Sombras em alguns trechos, SEM mudas novas": 4, "Somente mudas novas": 2, "Não há árvores nem mudas": 0, };
const horiontal_pattern_rates_pattern = { "Toda área de circulação pintada de vermelho": 10, "Pintada de vermelho com interrupções": 6.7, "Apenas faixas vermelhas nas bordas, com travessias pintadas nos cruzamentos": 3.3, "Apenas faixas vermelhas nas bordas.": 0, Ciclorrota: null, };
const sinuosity_rates_pattern = { "O traçado é completamente reto": 10, "O traçado é sinuoso, exigindo atenção": 6.6, "O traçado é muito sinuoso, podendo causar colisões com obstáculos ou outros ciclistas em momento de ultrapassagem": 3.3, "O traçado é muito sinuoso ou possui curvas com obstáculos que impedem visualização de entorno ou parte da estrutura": 0, };
let project_conception_rates_pattern = { bidirecional: { "Mão única": { "Isoladas (em área verde)": 10, "No bordo esquerdo da via de mão única": 7.5, "Na via, junto ao canteiro central/canal": 5, "No canteiro central": 5, "Sobre a calçada": 2.5, "No bordo direito da via de mão única": 0, Ciclorrota: null, "Em um dos bordos de via de mão dupla": null, }, "Mão dupla": { "Isoladas (em área verde)": 10, "Sobre a calçada": 5, "Na via, junto ao canteiro central/canal": 5, "No canteiro central": 5, "Em um dos bordos de via de mão dupla": 0, "No bordo direito da via de mão única": null, "No bordo esquerdo da via de mão única": null, Ciclorrota: null, }, }, unidirecional: { "Mão única": { "Isoladas (em área verde)": 10, "No bordo esquerdo da via de mão única": 7.5, "No bordo direito da via de mão única": 7.5, "Na via, junto ao canteiro central/canal": 5, "No canteiro central": 5, "Sobre a calçada": 2.5, Ciclorrota: null, "Em um dos bordos de via de mão dupla": null, }, "Mão dupla": { "Isoladas (em área verde)": 10, "Em um dos bordos de via de mão dupla": 7.5, "Na via, junto ao canteiro central/canal": 5, "No canteiro central": 5, "Sobre a calçada": 2.5, "No bordo direito da via de mão única": null, "No bordo esquerdo da via de mão única": null, Ciclorrota: null, }, }, };
const flattenedRates = {};
for (const cycle_flow in project_conception_rates_pattern) {
for (const traffic_flow in project_conception_rates_pattern[cycle_flow]) {
for (const localization in project_conception_rates_pattern[cycle_flow][
traffic_flow
]) {
const key = ${cycle_flow} > ${traffic_flow} > ${localization}
;
const rating =
project_conception_rates_pattern[cycle_flow][traffic_flow][
localization
];
flattenedRates[key] = rating;
}
}
}
project_conception_rates_pattern = flattenedRates;
module.exports = { sinuosity_rates_pattern, pavement_type_rate_pattern, pavement_condition_rate_pattern, painting_condition_rate_pattern, segregator_type_rate_pattern, protection_conditions_rate_pattern, shading_rate_pattern, project_conception_rates_pattern, horiontal_pattern_rates_pattern, };
estrutura atual
{ "id": 1, "resume": { "timestamp": "2024-04-18_17-53-33", "evaluator_1": "Mayra", "evaluator_2": "Ada", "date": "2024-04-18", "start_time": "17-53-33", "section_start": "DEFINIR", "section_end": "DEFINIR", "section_name": "Rua do Futuro e Rua João Ramos até a Rua Amélia.", "typology": "CICLOFAIXA", "flow_direction": "", "traffic_flow": "Mão Única", "localization": "No bordo esquerdo de Via de Mão Única", "speed_limit": "30km/h", "contiguos_lanes": "2 faixas", "segregator_type": "Tachões", "protection_conditions_evaluation": "SE CICLOFAIXA: para invadir a ciclo parte do automóvel passa obrigatoriamente por cima de segregadores", "access_evaluation": "Segregadores NÃO DIFICULTAM o acesso de ciclistas", "all_access_count": 0, "way_with_access": 0, "ways_without_access": 0, "ways_access_apply": "", "pavement_type": "Asfalto", "pavement_condition_evaluation": "Irregularidades que demandam desvio para circulação", "sinuosity_evaluation": "A ciclo é completamente reta.", "shading_evaluation": "Sombras em alguns trechos, SEM mudas novas", "car_risk_situations": "Conversão perigosa. EXPLIQUE., Outro risco. EXPLIQUE.", "bus_stops_along": 0, "crossings_no_speed_reduction": "DEFINIR", "conversion_path_allows_car_intrusion": "DEFINIR", "structure_side_change_without_speed_reducers_or_lights": 0, "car_turning_left_with_cyclist_invisibility": "DEFINIR", "structure_abrupt_end_in_counterflow": 0, "other_car_risk_situations": 1, "all_risks_situations_count": 3, "permanent_obstacles_asphalt_related": "Bueiro, Raíz, Buraco, Vala profunda, Outro obstáculo", "manhole_covers": 5, "roots": 1, "potholes": 1, "deep_gutters_along_structure": 1, "unevenness_obstacles": 0, "other_obstacles": 3, "all_obstacles_count": 11, "if_gutters_width": "DEFINIR", "ridable_width": 27, "buffer_width": null, "side_lane_width": 0, "road_width": 673, "parking": "Estacionamento de um lado, incluso na circulação", "max_speed_control": "", "vertical_speed_signs_count": "DEFINIR", "horizontal_speed_sign_count": 0, "pedestrian_crossings_count": 0, "speed_bumps_count": 0, "electronic_speed_control_count": 0, "other_control_elements_count": 0, "start_indication": "DEFINIR", "end_indication": "DEFINIR", "on_way_vertical_signs_count": 6, "crosses_with_vertical_sign_count": "DEFINIR", "crosses_without_vertical_sign_count": "DEFINIR", "horizontal_pattern_evaluation": "Pintada de vermelho com interrupções", "painting_condition_evaluation": "A pintura está boa, mas FALHA em ALGUNS pontos", "good_conditions_crossing_signs": 9, "bad_conditions_crossing_signs": 1, "no_visible_crossing_signs": "DEFINIR", "pictograms_along_structure_existence": "DEFINIR", "good_conditions_picto_signs": 32, "bad_conditions_picto_signs": 8, "arrows_along_structure_existence": "DEFINIR", "good_conditions_arrow_signs": 32, "bad_conditions_arrow_signs": 8, "dedicated_ligthing": 0, "same_side_ligthing": 0, "other_side_ligthing": 0, "notes_comments": "", "front_page_photo": "DEFINIR", "back_page_photo": "DEFINIR", "structure_photos": "DEFINIR", "comments": "DEFINIR", "seg_length": "1,0", "geo_id": "DEFINIR", "form_id": "DEFINIR", "typology_evaluate": "Ciclofaixa", "ways_access_ath_allows_car_intrusion": 0 },
"vertical_speed_signs_count": somatorio de placas de velocidade
"start_indication": "DEFINIR", "end_indication": "DEFINIR",
definido como >> sim ou nao (string)
"crosses_with_vertical_sign_count": "DEFINIR", (A-30)
tipologia inspecionada (ja ta la)
para os elementos contatenados >> array string
ex.: fotos comentarios audios
existe no app mas nao existe no json
existe no json mas nao existe no app