source: subversion/applications/lib/libosm/test1.cpp @ 34393

Last change on this file since 34393 was 14949, checked in by nienhueser, 10 years ago

API version is now 0.6

File size: 1.6 KB
Line 
1#include "Parser.h"
2#include "Client.h"
3#include "Node.h"
4#include <iostream>
5#include <fstream>
6#include <sstream>
7
8using namespace std;
9
10void dotest(OSM::Components *comp1);
11
12int main(int argc, char* argv[])
13{
14        if (argc < 4)
15        {
16                cerr << "Usage: test InOsmFile OsmUsername OsmPassword" << endl;
17                exit(1);
18        }
19
20        ifstream in(argv[1]);
21        OSM::Components *comp1 = OSM::Parser::parse(in);
22        in.close();
23
24        OSM::Client client("http://api.openstreetmap.org/api/0.6");
25        client.setLoginDetails(argv[2], argv[3]);
26
27        string osmData = client.grabOSM("map", -0.75, 51.02, -0.7, 51.07);
28
29        istringstream sstream;
30        sstream.str(osmData);
31
32        OSM::Components *comp2 = OSM::Parser::parse(sstream);
33        cout << "Testing components from API call:" << endl;
34        dotest(comp2);
35        cout << "Testing components from local file:" << endl;
36        dotest(comp1);
37
38        delete comp2;
39        delete comp1;
40
41        return 0;
42
43}
44
45void dotest(OSM::Components *comp1)
46{
47        comp1->rewindNodes();
48        comp1->rewindWays();
49
50        while (comp1->hasMoreNodes())
51        {
52                OSM::Node *n = comp1->nextNode();
53                cout << "Node id: " << n->id() << " lat: " << n->getLat() << " lon: "
54                                << n->getLon() << endl << "tags:" << endl;
55
56                map<string, string>::const_iterator iter = n->tags().begin();
57                for (; iter != n->tags().end(); ++iter)
58                {
59                        cout << "Key: " << iter->first << " Value: " << iter->second
60                                        << endl;
61                }
62        }
63        while (comp1->hasMoreWays())
64        {
65                OSM::Way *w = comp1->nextWay();
66                cout << "Way id: " << w->id() << " tags:" << endl;
67
68                map<string, string>::const_iterator iter = w->tags().begin();
69                for (; iter != w->tags().end(); ++iter)
70                {
71                        cout << "Key: " << iter->first << " Value: " << iter->second
72                                        << endl;
73                }
74        }
75}
Note: See TracBrowser for help on using the repository browser.