OsmAnd/DataExtractionOSM/src/osmand_odb.proto

68 lines
1.8 KiB
Protocol Buffer
Raw Normal View History

option java_package = "net.osmand.binary";
//protoc --java_out=../.. osmand_odb.proto
//
// STORAGE LAYER: Storing primitives.
//
// IMPORTANT : These messages are not intented to be parsed by google engine (because of the size)
// The main difference that size of that messages is not var int and is always fixed int size
message OsmAndStructure {
required uint32 version = 1;
repeated OsmAndMapIndex mapIndex = 2;
}
message OsmAndMapIndex {
repeated MapRootLevel levels = 1;
}
message MapRootLevel {
required int32 maxZoom = 1;
required int32 minZoom = 2;
required int32 left = 3;
required int32 right = 4;
required int32 top = 5;
required int32 bottom = 6;
repeated MapTree root = 7;
}
message MapTree {
required sint32 left = 1; // delta encoded
required sint32 right = 2; // delta encoded
required sint32 top = 3; // delta encoded
required sint32 bottom = 4; // delta encoded
optional StringTable stringTable = 5;
optional uint64 baseId = 6;
repeated MapTree subtrees = 7;
repeated MapData leafs = 8;
}
// These messages could be read directly
/**
String table, contains the common strings in each block.
*/
message StringTable {
repeated string s = 1;
}
/// Simple messages
message MapData {
required bytes coordinates = 1; // array of delta x,y sint32 could be read by codedinputstream
// first x delta to Tree.left, y to delta Tree.top (next delta to previous)
required bytes types = 2; // array of fixed int16
required sint64 id = 3; // delta encoded
optional uint32 stringId = 4;
optional bytes restrictions = 5; // array of SInt64 delta encoded (to baseId !)
optional int32 highwayMeta = 6;
}