source: subversion/applications/lib/libosm/rulestest.cpp @ 34562

Last change on this file since 34562 was 12366, checked in by nienhueser, 11 years ago

Non-const access to tags, fix rulestest (id encapsulation)

File size: 1.5 KB
Line 
1#include "Parser.h"
2#include "Client.h"
3#include "Node.h"
4#include <iostream>
5#include <fstream>
6#include <sstream>
7#include "FeatureClassification.h"
8#include "FeaturesParser.h"
9
10using std::cout;
11using std::cerr;
12using std::endl;
13
14void dotest(OSM::Components *comp1, OSM::FeatureClassification*);
15
16int main(int argc,char* argv[])
17{
18        if(argc<3)
19        {
20                cerr<<"Usage: test InOsmFile FeaturesFile" << endl;
21                exit(1);
22        }
23       
24        std::ifstream in(argv[1]);
25        cerr<<"parsing osm"<<endl;
26        OSM::Components *comp1 = OSM::Parser::parse(in);
27        in.close();
28        cerr<<"done"<<endl;
29        cerr<<"parsing rulesfile"<<endl;
30        std::ifstream in2(argv[2]);
31        OSM::FeatureClassification *classification=OSM::FeaturesParser::parse(in2);
32        cerr<<"done"<<endl;
33        in2.close();
34        if(comp1) 
35                cerr<<"comp1 exists"<<endl;
36        if(classification) 
37                cerr<<"classification exists"<<endl;
38        if(comp1&&classification)
39        {
40                dotest(comp1,classification);
41                delete classification;
42                delete comp1;
43        }
44
45        return 0;
46
47}
48
49void dotest(OSM::Components *comp1, OSM::FeatureClassification* classification)
50{
51        comp1->rewindNodes();
52        comp1->rewindWays();
53
54        while(comp1->hasMoreWays())
55        {
56                OSM::Way *w = comp1->nextWay();
57                cout << endl << "Way id: " << w->id() << " tags:" << endl;
58
59                std::vector<std::string> keys = w->getTags();
60
61                for(int count=0; count<keys.size(); count++)
62                {
63                        cout  << "Key: " << keys[count] << " Value: " << 
64                                w->tags()[keys[count]] << endl;
65                }
66                cout << endl << "Info from featureClassification:" << endl;
67                cout << "Feature class: " << classification->getFeatureClass(w)
68                                                                         <<endl<<endl;
69        }
70}
Note: See TracBrowser for help on using the repository browser.