mapnik/plugins/input/osm/osmparser.h

29 lines
730 B
C++

#include <libxml/xmlreader.h>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <string>
#include "osm.h"
#include <map>
class osmparser
{
private:
static osm_item *cur_item;
static long curID;
static bool in_node, in_way;
static osm_dataset* components;
static std::string error;
static std::map<long,osm_node*> tmp_node_store;
static int do_parse(xmlTextReaderPtr);
public:
static void processNode(xmlTextReaderPtr reader);
static void startElement(xmlTextReaderPtr reader, const xmlChar *name);
static void endElement(const xmlChar* name);
static bool parse(osm_dataset *ds, const char* filename);
static bool parse(osm_dataset *ds, char* data,int nbytes);
};