pgRouting

Changeset 84

Show
Ignore:
Timestamp:
12/20/07 15:26:53 (1 year ago)
Author:
anton
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/orkney/algorithm.h

    r83 r84  
    3232#define MAX_NODES 1000000 
    3333 
    34 #define ID_FEATURE     "id" 
    35 #define COST_FEATURE   "cost" 
    36 #define WEIGHT_FEATURE "weight" 
    37 #define RC_FEATURE     "reverse_cost" 
     34#define ID_FIELD       "id" 
     35#define COST_FIELD     "cost" 
     36#define WEIGHT_FIELD  "weight" 
     37#define RC_FIELD       "reverse_cost" 
    3838 
    39 #define SOURCE_FEATURE "source" 
    40 #define TARGET_FEATURE "target" 
     39#define SOURCE_FIELD  "source" 
     40#define TARGET_FIELD  "target" 
    4141 
    42 #define TO_COST_FEATURE "to_cost" 
    43 #define RULE_FEATURE    "rule" 
     42#define TO_COST_FIELD "to_cost" 
     43#define RULE_FIELD     "rule" 
    4444 
    4545#define EXIT_SUCCESS    0 
     
    124124      for (unsigned int z = 0; z < count; ++z) 
    125125      { 
    126         if(edges[z]->GetFieldAsInteger(ID_FEATURE) > e_max_id) 
    127           e_max_id=edges[z]->GetFieldAsInteger(ID_FEATURE); 
     126        if(edges[z]->GetFieldAsInteger(ID_FIELD) > e_max_id) 
     127          e_max_id=edges[z]->GetFieldAsInteger(ID_FIELD); 
    128128      } 
    129129       
  • sandbox/orkney/astar.h

    r83 r84  
    8888      bool inserted; 
    8989     
    90       if (edge->GetFieldAsDouble(COST_FEATURE) < 0) // edges are not inserted in the graph if cost is negative 
     90      if (edge->GetFieldAsDouble(COST_FIELD) < 0) // edges are not inserted in the graph if cost is negative 
    9191        return false; 
    9292 
    93       tie(*e, inserted) = add_edge(edge->GetFieldAsInteger(SOURCE_FEATURE),  
    94                                    edge->GetFieldAsInteger(TARGET_FEATURE), graph); 
     93      tie(*e, inserted) = add_edge(edge->GetFieldAsInteger(SOURCE_FIELD),  
     94                                   edge->GetFieldAsInteger(TARGET_FIELD), graph); 
    9595 
    96       graph[*e].cost = edge->GetFieldAsDouble(COST_FEATURE); 
    97       graph[*e].id = edge->GetFieldAsInteger(ID_FEATURE); 
     96      graph[*e].cost = edge->GetFieldAsDouble(COST_FIELD); 
     97      graph[*e].id = edge->GetFieldAsInteger(ID_FIELD); 
    9898 
    9999      OGRLineString *geom = static_cast<OGRLineString*>(edge->GetGeometryRef()); 
    100100 
    101       vertex_descriptor s = vertex(edge->GetFieldAsInteger(SOURCE_FEATURE), graph); 
    102       vertex_descriptor t = vertex(edge->GetFieldAsInteger(TARGET_FEATURE), graph); 
     101      vertex_descriptor s = vertex(edge->GetFieldAsInteger(SOURCE_FIELD), graph); 
     102      vertex_descriptor t = vertex(edge->GetFieldAsInteger(TARGET_FIELD), graph); 
    103103 
    104104      graph[s].x=geom->getX(0); 
  • sandbox/orkney/dijkstra.h

    r81 r84  
    5050      bool inserted;   
    5151         
    52       tie(*e, inserted) = add_edge(edge->GetFieldAsInteger(SOURCE_FEATURE),  
    53                                    edge->GetFieldAsInteger(TARGET_FEATURE), graph); 
     52      tie(*e, inserted) = add_edge(edge->GetFieldAsInteger(SOURCE_FIELD),  
     53                                   edge->GetFieldAsInteger(TARGET_FIELD), graph); 
    5454      return inserted; 
    5555    } 
     
    5959      bool inserted = addEdge(e, edges[j], graph); 
    6060 
    61       graph[*e].cost = edges[j]->GetFieldAsDouble(COST_FEATURE);//set cost 
     61      graph[*e].cost = edges[j]->GetFieldAsDouble(COST_FIELD);//set cost 
    6262      graph[*e].id = j;//set id 
    6363 
     
    7373        if (HasReverseCost()) 
    7474            { 
    75           graph[*er].cost = edges[j]->GetFieldAsDouble(RC_FEATURE);//set reverse cost 
     75          graph[*er].cost = edges[j]->GetFieldAsDouble(RC_FIELD);//set reverse cost 
    7676            } 
    7777            else  
    7878            { 
    79               graph[*er].cost = edges[j]->GetFieldAsDouble(COST_FEATURE);//set cost 
     79              graph[*er].cost = edges[j]->GetFieldAsDouble(COST_FIELD);//set cost 
    8080            } 
    8181      }     
  • sandbox/orkney/shootingstar.h

    r81 r84  
    112112      bool inserted; 
    113113     
    114       if (edge->GetFieldAsDouble(COST_FEATURE) < 0) // edges are inserted as unpassable if cost is negative 
    115         edge->SetField(COST_FEATURE, MAX_COST); 
    116  
    117       tie(*e, inserted) = add_edge(edge->GetFieldAsInteger(SOURCE_FEATURE),  
    118                                    edge->GetFieldAsInteger(TARGET_FEATURE), graph); 
    119  
    120       graph[*e].cost = edge->GetFieldAsDouble(COST_FEATURE); 
    121       graph[*e].id = edge->GetFieldAsInteger(ID_FEATURE); 
    122  
    123       graph[*e].source = edge->GetFieldAsInteger(SOURCE_FEATURE); 
    124       graph[*e].target = edge->GetFieldAsInteger(TARGET_FEATURE); 
     114      if (edge->GetFieldAsDouble(COST_FIELD) < 0) // edges are inserted as unpassable if cost is negative 
     115        edge->SetField(COST_FIELD, MAX_COST); 
     116 
     117      tie(*e, inserted) = add_edge(edge->GetFieldAsInteger(SOURCE_FIELD),  
     118                                   edge->GetFieldAsInteger(TARGET_FIELD), graph); 
     119 
     120      graph[*e].cost = edge->GetFieldAsDouble(COST_FIELD); 
     121      graph[*e].id = edge->GetFieldAsInteger(ID_FIELD); 
     122 
     123      graph[*e].source = edge->GetFieldAsInteger(SOURCE_FIELD); 
     124      graph[*e].target = edge->GetFieldAsInteger(TARGET_FIELD); 
    125125 
    126126      graph[*e].adjacent_edges = adjacent_edges; 
     
    131131      OGRLineString *geom = static_cast<OGRLineString*>(edge->GetGeometryRef()); 
    132132 
    133       vertex_descriptor s = vertex(edge->GetFieldAsInteger(SOURCE_FEATURE), graph); 
    134       vertex_descriptor t = vertex(edge->GetFieldAsInteger(TARGET_FEATURE), graph); 
    135  
    136       graph[s].id = edge->GetFieldAsInteger(SOURCE_FEATURE); 
    137       graph[t].id = edge->GetFieldAsInteger(TARGET_FEATURE); 
     133      vertex_descriptor s = vertex(edge->GetFieldAsInteger(SOURCE_FIELD), graph); 
     134      vertex_descriptor t = vertex(edge->GetFieldAsInteger(TARGET_FIELD), graph); 
     135 
     136      graph[s].id = edge->GetFieldAsInteger(SOURCE_FIELD); 
     137      graph[t].id = edge->GetFieldAsInteger(TARGET_FIELD); 
    138138 
    139139      graph[s].x=geom->getX(0); 
     
    150150       
    151151      //Vertex ids renumbering moved here 
    152       src = edges[j]->GetFieldAsInteger(SOURCE_FEATURE); 
    153       trg = edges[j]->GetFieldAsInteger(TARGET_FEATURE); 
     152      src = edges[j]->GetFieldAsInteger(SOURCE_FIELD); 
     153      trg = edges[j]->GetFieldAsInteger(TARGET_FIELD); 
    154154     
    155155      if(vertices[src]==0) 
     
    157157        vertices[src]=j+offset; 
    158158      } 
    159       edges[j]->SetField(SOURCE_FEATURE, vertices[src]); 
     159      edges[j]->SetField(SOURCE_FIELD, vertices[src]); 
    160160     
    161161      if(vertices[trg]==0) 
     
    164164        vertices[trg]=j+offset; 
    165165      } 
    166       edges[j]->SetField(TARGET_FEATURE, vertices[trg]); 
     166      edges[j]->SetField(TARGET_FIELD, vertices[trg]); 
    167167       
    168168      int *rule_cnt; 
    169169      const int *rule_list; 
    170170       
    171       rule_list = edges[j]->GetFieldAsIntegerList(RULE_FEATURE, rule_cnt); 
     171      rule_list = edges[j]->GetFieldAsIntegerList(RULE_FIELD, rule_cnt); 
    172172     
    173173      for(int z=0; z< *rule_cnt;++z) 
     
    179179      } 
    180180 
    181       if(edges[j]->GetFieldAsDouble(TO_COST_FEATURE) > 0) 
    182       { 
    183         adjacent_edges[edges[j]->GetFieldAsInteger(ID_FEATURE)].push_back( 
    184                                 std::pair<double, vector<int> > (edges[j]->GetFieldAsDouble(TO_COST_FEATURE), rule) ); 
     181      if(edges[j]->GetFieldAsDouble(TO_COST_FIELD) > 0) 
     182      { 
     183        adjacent_edges[edges[j]->GetFieldAsInteger(ID_FIELD)].push_back( 
     184                                std::pair<double, vector<int> > (edges[j]->GetFieldAsDouble(TO_COST_FIELD), rule) ); 
    185185        rule.clear(); 
    186186      } 
    187187 
    188       if((j < count-1 && edges[j]->GetFieldAsInteger(ID_FEATURE) != edges[j+1]->GetFieldAsInteger(ID_FEATURE))||(j==count-1)) 
     188      if((j < count-1 && edges[j]->GetFieldAsInteger(ID_FIELD) != edges[j+1]->GetFieldAsInteger(ID_FIELD))||(j==count-1)) 
    189189      { 
    190190 
    191191        bool inserted = addEdge(e, edges[j], graph); 
    192192 
    193         graph[*e].cost = edges[j]->GetFieldAsDouble(COST_FEATURE);//set cost 
     193        graph[*e].cost = edges[j]->GetFieldAsDouble(COST_FIELD);//set cost 
    194194        graph[*e].id = j;//set id 
    195195 
     
    198198        { 
    199199 
    200           if(adjacent_edges[edges[j]->GetFieldAsInteger(ID_FEATURE)].size() > 0) 
     200          if(adjacent_edges[edges[j]->GetFieldAsInteger(ID_FIELD)].size() > 0) 
    201201          { 
    202             adjacent_edges[edges[j]->GetFieldAsInteger(ID_FEATURE)+e_max_id].assign(  
    203                               adjacent_edges[edges[j]->GetFieldAsInteger(ID_FEATURE)].begin(),  
    204                               adjacent_edges[edges[j]->GetFieldAsInteger(ID_FEATURE)].end() ); 
    205                 adjacent_edges.erase(edges[j]->GetFieldAsInteger(ID_FEATURE)); 
     202            adjacent_edges[edges[j]->GetFieldAsInteger(ID_FIELD)+e_max_id].assign(  
     203                              adjacent_edges[edges[j]->GetFieldAsInteger(ID_FIELD)].begin(),  
     204                              adjacent_edges[edges[j]->GetFieldAsInteger(ID_FIELD)].end() ); 
     205                adjacent_edges.erase(edges[j]->GetFieldAsInteger(ID_FIELD)); 
    206206          } 
    207207 
     
    214214          if (HasReverseCost()) 
    215215              { 
    216             graph[*er].cost = edges[j]->GetFieldAsDouble(RC_FEATURE);//set reverse cost 
     216            graph[*er].cost = edges[j]->GetFieldAsDouble(RC_FIELD);//set reverse cost 
    217217              } 
    218218              else  
    219219              { 
    220                 graph[*er].cost = edges[j]->GetFieldAsDouble(COST_FEATURE);//set cost 
     220                graph[*er].cost = edges[j]->GetFieldAsDouble(COST_FIELD);//set cost 
    221221              } 
    222222