Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
1 - city, 2 - postcode, 3 - village, 4 - street
start mixed shift from start AddressNameIndexData (!) to ...Index
optional used in case of type=street
coordinates v2.3
end mixed
Used in:
Used in:
,used for interpolation
special values 0 means - nothing, -1 - all, -2 - even, -3 - odd, -4, alphabetic positive - just positive interpolation
delta encoded to parent 24 zoom
delta encoded to parent 24 zoom
used for interpolation
delta encoded to parent 24 zoom
delta encoded to parent 24 zoom
Used in:
Used in:
shift from start cityBlockIndex to CityIndex
buildings that doesn't belong to the street
Used in:
should be written the first (for city), for postcode is optional
0-5 enum CityType
x tile of 31 zoom
y tile of 31 zoom
shift from start CityIndex (without length) to cityBlockIndex
Used in:
Used in:
* Id table 1-based. Map of sequential ids to real ids [1,2,3....n] -> [a1, ... an] a1,.. an - (ideally sorted) set of longs
Used in:
diff between 2 ids
Used in:
reference in string table
reference in string table
reference in string table
shift from OsmAndTransportIndex to the route in TransportRoute section
shift from OsmAndTransportIndex to stops that are missing
Used in:
Used in:
,common prefix for all strings inside
key, val and subtables are mixed and order is preserved by key (ascending) so that's example of data : key1,val1,subtables1,key2,val2,key3,val3,subtables3,subtables3
the shift to the data or one uint data itself
subtables are supposed to make search faster instead of searching through all strings it's enough to read prefix in the header
Used in:
array of delta x,y sint32 (CodedIinputStream) >> 5 first x delta to Tree.left, y to delta Tree.top (next delta to previous) point, line or outer polygon coordinates
array of raw var int types
array of raw var int types
pair x,y (sint32) of delta encoded to center of <coordinates> 26th zoom
repeated array<pair<tagId : raw_var_int, indexOfStringInParent : raw_var_int> >
in parent block
delta encoded
coordinates can take much space 4*4*count of data blocks= required sint32 left = 1; // delta encoded required sint32 right = 2; // delta encoded required sint32 top = 3; // delta encoded required sint32 bottom = 4; // delta encoded
Used in:
in future here can be optional raster tile
Used in:
Used in:
Used in:
before cities
encoded as fixed32 length delimited 1) cities and towns - type 1, 2) postcodes - type 2, 3) villages - type 3
encoded as fixed32 length delimited
Used in:
not mixed the list of the cities and the blocks are synchronized by the order (so even empty block will be written)
Used in:
Used in:
shift to AddressNameIndexData starting from first OsmAndAddressNameIndexData message encoded as fixed32 length delimited
Used in:
shift is measured from start (before length)
Used in:
general id of poi type is calculated ((subcategory_order << 7) | category_order)
HH Routing index need to be consistent with global file and include fully referenced clusters
Used in:
usually timestamp creation checks consistency
main profile car, pedestrian ...
later encoded as profileIds in points / segments
Used in:
range of point ids stored in block
blocks are sorted by ids
profileParams specific segments (required on top level)
potentially array to shifts could be used to speedup
Used in:
id in file to reference shortcuts
delta encoded to HHRoutePointsBox (start point 31 coordinates)
delta encoded to HHRoutePointsBox (start point 31 coordinates)
(startIndex << 1) + (endIndex > startIndex ? 1 : 0)
applied to specific profiles (if empty then applied to all profiles)
partialInd > 0, means that it's a partially written node without clusters
Used in:
required int32 pointId = 1;
segments times encoded according to cluster in
segments times encoded according to cluster out
Used in:
for root box is absolute coordinates same as RouteDataBox
delta encoded
delta encoded
delta encoded
delta encoded
///////////////////// // Map messages //// /////////////////////
Used in:
encoded as fixed32 length delimited
Used in:
delta encoded
delta encoded
delta encoded
delta encoded
shift from mapdatabox start to message MapDataBlock
true (byte = 1) - full ocean, false (byte = 0) - full land
Used in:
it is optional because natural order in block of rules is the same as id (id is 1-based and order)
min zoom combination exists
"additional" flag is encoded as %2 == 1
Used in:
Used in:
Used in:
delta encoded to parent
size is one tile
delta encoded (zoom)
delta encoded (zoom)
encoded as fixed32 length delimited could be used for address data to store generic tag group at top most POI box)
encoded as fixed32 length delimited
must be the last
shift to OsmAndPoiBoxData message from OsmAndPoiIndex.start
Used in:
zoom level
x tile
y tile
Used in:
delta encoded to OsmAndPoiBox on 24 zoom
delta encoded to OsmAndPoiBox on 24 zoom
v1.7
deprecated from v1.7
v1.7
precision in 1-xy-xy-xy binary format
Used in:
sorted categories
Used in:
encoded as fixed32 length delimited
encoded as fixed32 length delimited
children
encoded as fixed32 length delimited
Used in:
shift to OsmAndPoiNameIndexData starting from OsmAndPoiIndex message encoded as fixed32 length delimited
Used in:
can contain multiple data offsets
Used in:
fields do not preserve order define, they are repeating
shift to OsmAndPoiBoxData message from OsmAndPoiIndex.start message is started when body is started
Used in:
same to name if not present
Used in:
array of [tag1, value1, tag2, value2, ...]
Used in:
to load indexes in memory at base search and later groups could be loaded
Used in:
encoded as fixed32 length delimited
encoded as fixed32 length delimited
Used in:
coordinates can take much space 4*4*count of data blocks= required sint32 left = 1; // delta encoded required sint32 right = 2; // delta encoded required sint32 top = 3; // delta encoded required sint32 bottom = 4; // delta encoded
Used in:
for root box is absolute coordinates
delta encoded
delta encoded
delta encoded
delta encoded
shift from routeDataBox start to message RouteDataBlock
Used in:
it is optional because natural order in block of rules is the same as id (id is 1-based and order)
System.currentTimeMillis()
IMPORTANT : These messages are not intented to be parsed by google engine (because of the random access to the file) The main difference that size of that messages is not var int and is always fixed int size
System.currentTimeMillis()
first version of map index was 3. encoded as fixed32 length delimited
encoded as fixed32 length delimited
slight changes previous version was 5 encoded as fixed32 length delimited
first version of map index was 2. encoded as fixed32 length delimited
encoded as fixed32 length delimited
encoded as fixed32 length delimited
last field should version again (to check consistency)
Used in:
id calculated 1. if subtypes_order <= 31 : ( (subtypeValue << 5) | subtypes_order) << 1 2. if subtypes_order > 31 : ( (subtypeValue << 16) | subtypes_order) << 1 + 1
Used in:
,everything is encoded as 31 tile zoom
Used in:
encoded as fixed32 length delimited
routes
encoded as fixed32 length delimited
Used in:
Used in:
Used in:
array of delta x,y sint32 (CodedIinputStream) >> 5 first x delta to Tree.left, y to delta Tree.top (next delta to previous)
continuous array of pairs [pointIndex - int32, pointTypes - bytes] bytes - array of raw var int types
continuous array of triples [pointIndex - int32, tagId - raw_var_int, indexOfStringInParent : raw_var_int]
array of raw var int types
id internal
repeated array<pair<tagId : raw_var_int, indexOfStringInParent : raw_var_int> >
in parent block
Used in:
Used in:
Used in:
delta encoded to parent 24 zoom
delta encoded to parent 24 zoom
Used in:
delta encoded to parent street x 24 zoom
delta encoded to parent street y 24 zoom
String table, contains the common strings in each block.
Used in:
, , , ,Used in:
Used in:
reference in string table
reference in string table
reference in string table
reference in string table
distance in meters
reference in string table
deprecated (not used any more)
array of delta x,y sint32 (CodedIinputStream) >> 5 (precision 31 >> 5) first x,y - 31 coordinates (>>5), next points is delta to previous point, line or outer polygon coordinates 0, 0 split geometry (for not connected segments)
"tag/value" reference in string table
array of bytes = varint32 (reference of tag in string table) + UTF-8 value bytes
Used in:
array of raw var int 10-seconds based intervals between stops arrivals;
optional 10-seconds based (0, if non-provided or less < 10 seconds)
10-seconds delta based intervals for trips departing from first stop 1st trip is diff from 00:00:00
exceptions
Used in:
provided if exception applicable to the trips
provided if exception applicable to the stop
indicates whether the trip or stop available in certain restriction (default true)
if 1 number is provided, the delay is applicable to all trips/stops, otherwise it has numbers for each route or stop delay is measured in X * 10 seconds
day of week exceptions, Monday - 0, Sunday - 6
day of year exceptions 01.01.2000 - 0, 01.02.2000 - 1
Used in:
delta encoded to previous stop (first stop is delta to 0)
delta encoded to previous stop (24 zoom)
delta encoded to previous stop (24 zoom)
index in message table
index in message table
Used in:
Used in:
delta encoded to parent (24 zoom) to left
delta encoded to parent (24 zoom) to top
delta encoded to parent base id
index in message table
index in message table
array of bytes (array of pairs <raw var int>)
-shift to transport route containing that stop
TransportStop.Message.start - sizeof(TransportStop.Message.length) - routes[i] = TransportRoute.Message.start - sizeof(TransportRoute.Message.length) message is started when body is started
ids of routes that do not contain this stop anymore
ids of [routes] that contain this stop - length and values correspond to [routes] array - old version (< 08/2019) files don't have them - default algorithm makes them sorted
Used in:
delta x
delta y
Used in:
delta encoded (24 zoom)
delta encoded (24 zoom)
delta encoded (24 zoom)
delta encoded (24 zoom)
encoded as fixed32 length delimited
written as last