Ticket #1319: 0001-set-attr_street_destination_forward-backward.patch

File 0001-set-attr_street_destination_forward-backward.patch, 2.6 KB (added by rico (2), 5 years ago)
  • navit/maptool/osm.c

    From b87c0358ee5f5c57ba4cb2aeb2567c5a2ffb728f Mon Sep 17 00:00:00 2001
    From: Rico Rommel <rico@bierrommel.de>
    Date: Fri, 28 Aug 2015 21:18:01 +0200
    Subject: [PATCH 1/1] set attr_street_destination_forward/backward
    
    ---
     navit/maptool/osm.c | 31 ++++++++++++++++++++++++++++---
     1 file changed, 28 insertions(+), 3 deletions(-)
    
    diff --git a/navit/maptool/osm.c b/navit/maptool/osm.c
    index d8063c3..70961db 100644
    a b enum attr_strings_type { 
    106106        attr_string_ref,
    107107        attr_string_exit_to,
    108108        attr_string_street_destination,
     109        attr_string_street_destination_forward,
     110        attr_string_street_destination_backward,
    109111        attr_string_house_number,
    110112        attr_string_label,
    111113        attr_string_postal,
    osm_add_tag(char *k, char *v) 
    11801182                                attr_strings_save(attr_string_street_name_systematic_int, v);
    11811183                        level=5;
    11821184        }
     1185        int has_destination_forward = 0;
     1186        int has_destination_backward = 0;
     1187        if (! strcmp(k,"destination:forward")) {
     1188                if (in_way) {
     1189                        attr_strings_save(attr_string_street_destination_forward, v);
     1190                        has_destination_forward=1;
     1191                }
     1192                level=5;
     1193        }
     1194        if (! strcmp(k,"destination:backward")) {
     1195                if (in_way) {
     1196                        attr_strings_save(attr_string_street_destination_backward, v);
     1197                        has_destination_backward=1;
     1198                }
     1199                level=5;
     1200        }
    11831201        if (! strcmp(k,"destination")) {
    1184                         if (in_way)
    1185                                 attr_strings_save(attr_string_street_destination, v);
    1186                         level=5;
     1202                if (in_way){
     1203                        attr_strings_save(attr_string_street_destination, v);
     1204                        if (has_destination_forward == 0)
     1205                                attr_strings_save(attr_string_street_destination_forward, v);
     1206                        if (has_destination_backward == 0)
     1207                                attr_strings_save(attr_string_street_destination_backward, v);
     1208                }
     1209                level=5;
    11871210        }
    11881211        if (! strcmp(k,"exit_to")) {
    11891212                        attr_strings_save(attr_string_exit_to, v);
    osm_end_way(struct maptool_osm *osm) 
    17781801                item_bin_add_attr_string(item_bin, attr_street_name_systematic, attr_strings[attr_string_street_name_systematic]);
    17791802                item_bin_add_attr_string(item_bin, attr_street_name_systematic_nat, attr_strings[attr_string_street_name_systematic_nat]);
    17801803                item_bin_add_attr_string(item_bin, attr_street_destination, attr_strings[attr_string_street_destination]);
     1804                item_bin_add_attr_string(item_bin, attr_street_destination_forward, attr_strings[attr_string_street_destination_forward]);
     1805                item_bin_add_attr_string(item_bin, attr_street_destination_backward, attr_strings[attr_string_street_destination_backward]);
    17811806                item_bin_add_attr_longlong(item_bin, attr_osm_wayid, osmid_attr_value);
    17821807                if (debug_attr_buffer[0])
    17831808                        item_bin_add_attr_string(item_bin, attr_debug, debug_attr_buffer);