use osmpbf.h
This commit is contained in:
parent
187e1f900b
commit
4143aede64
|
|
@ -10,26 +10,14 @@
|
||||||
// netinet provides the network-byte-order conversion function
|
// netinet provides the network-byte-order conversion function
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
|
||||||
// this is the header to libosmpbf for reading and writing the low-level blob storage
|
// this is the header to pbf format
|
||||||
#include <osmpbf/fileformat.pb.h>
|
#include <osmpbf/osmpbf.h>
|
||||||
|
|
||||||
// this is the header to libosmpbf for reading and writing the high-level osm objects
|
|
||||||
#include <osmpbf/osmformat.pb.h>
|
|
||||||
|
|
||||||
// the maximum size of a blob-header in bytes
|
|
||||||
const int MAX_BLOB_HEADER_SIZE = 64 * 1024;
|
|
||||||
|
|
||||||
// the maximum size of a blob in bytes
|
|
||||||
const int MAX_BLOB_SIZE = 32 * 1024 * 1024;
|
|
||||||
|
|
||||||
// nanodegree multiplier
|
|
||||||
static const long int NANO = 1000 * 1000 * 1000;
|
|
||||||
|
|
||||||
// buffer for reading a compressed blob from file
|
// buffer for reading a compressed blob from file
|
||||||
char buffer[MAX_BLOB_SIZE];
|
char buffer[OSMPBF::max_uncompressed_blob_size];
|
||||||
|
|
||||||
// buffer for decompressing the blob
|
// buffer for decompressing the blob
|
||||||
char unpack_buffer[MAX_BLOB_SIZE];
|
char unpack_buffer[OSMPBF::max_uncompressed_blob_size];
|
||||||
|
|
||||||
// pbf struct of a BlobHeader
|
// pbf struct of a BlobHeader
|
||||||
OSMPBF::BlobHeader blobheader;
|
OSMPBF::BlobHeader blobheader;
|
||||||
|
|
@ -105,8 +93,8 @@ int main(int argc, char *argv[]) {
|
||||||
sz = ntohl(sz);
|
sz = ntohl(sz);
|
||||||
|
|
||||||
// ensure the blob-header is smaller then MAX_BLOB_HEADER_SIZE
|
// ensure the blob-header is smaller then MAX_BLOB_HEADER_SIZE
|
||||||
if(sz > MAX_BLOB_HEADER_SIZE)
|
if(sz > OSMPBF::max_blob_header_size)
|
||||||
err("blob-header-size is bigger then allowed (%u > %u)", sz, MAX_BLOB_HEADER_SIZE);
|
err("blob-header-size is bigger then allowed (%u > %u)", sz, OSMPBF::max_blob_header_size);
|
||||||
|
|
||||||
// read the blob-header from the file
|
// read the blob-header from the file
|
||||||
if(fread(buffer, sz, 1, fp) != 1)
|
if(fread(buffer, sz, 1, fp) != 1)
|
||||||
|
|
@ -128,8 +116,8 @@ int main(int argc, char *argv[]) {
|
||||||
debug(" indexdata = %u bytes", blobheader.indexdata().size());
|
debug(" indexdata = %u bytes", blobheader.indexdata().size());
|
||||||
|
|
||||||
// ensure the blob is smaller then MAX_BLOB_SIZE
|
// ensure the blob is smaller then MAX_BLOB_SIZE
|
||||||
if(sz > MAX_BLOB_SIZE)
|
if(sz > OSMPBF::max_uncompressed_blob_size)
|
||||||
err("blob-size is bigger then allowed (%u > %u)", sz, MAX_BLOB_SIZE);
|
err("blob-size is bigger then allowed (%u > %u)", sz, OSMPBF::max_uncompressed_blob_size);
|
||||||
|
|
||||||
// read the blob from the file
|
// read the blob from the file
|
||||||
if(fread(buffer, sz, 1, fp) != 1)
|
if(fread(buffer, sz, 1, fp) != 1)
|
||||||
|
|
@ -246,8 +234,10 @@ int main(int argc, char *argv[]) {
|
||||||
if(headerblock.has_bbox()) {
|
if(headerblock.has_bbox()) {
|
||||||
OSMPBF::HeaderBBox bbox = headerblock.bbox();
|
OSMPBF::HeaderBBox bbox = headerblock.bbox();
|
||||||
debug(" bbox: %.7f,%.7f,%.7f,%.7f",
|
debug(" bbox: %.7f,%.7f,%.7f,%.7f",
|
||||||
(double)bbox.left() / NANO, (double)bbox.bottom() / NANO,
|
(double)bbox.left() / OSMPBF::lonlat_resolution,
|
||||||
(double)bbox.right() / NANO, (double)bbox.top() / NANO);
|
(double)bbox.bottom() / OSMPBF::lonlat_resolution,
|
||||||
|
(double)bbox.right() / OSMPBF::lonlat_resolution,
|
||||||
|
(double)bbox.top() / OSMPBF::lonlat_resolution);
|
||||||
}
|
}
|
||||||
|
|
||||||
// tell about the required features
|
// tell about the required features
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue