logo separator

[mkgmap-dev] Memory limits for mkgmap and splitter

From Lambertus osm at na1400.info on Tue Aug 4 17:36:01 BST 2009

Chris Miller wrote:
>> Ah, this might explain the 'POI only' tiles I have without good reason
>> in the NE USA and Canada. Is there a possibility for a quick fix for
>> this behavior, as this would be most welcome...? :-)
> 
> Not really... currently the limitation is that each node, way and relation 
> can only belong to a maximum of 4 areas. This is because during the split 
> each area is given an ID from 1-255 (8 bits) and up to 4 areas are squeezed 
> into a single 32 bit integer for each node/way/relation. This is really important 
> to save memory for the nodes and ways, so to support more than 255 areas 
> would require a lot more memory. What happens with > 255 areas is that multiple 
> areas map to the same 8 bits and so get mixed up with each other without 
> warning - there's no bounds checking on the bit manipulation. About the only 
> 'quick fix' is to refuse to split more than 255 areas, or to split them in 
> multiple full passes which will take significantly longer. In the meantime 
> your best bet is to split your areas.list file into two by hand, making sure 
> there's < 256 areas in each. Then run the splitter twice, once for each area 
> file you created.
> 
Crap, this means I'll have to split North America into two sections 
using Osmosis. At ground level this means broken routing between the 
sections and that some cities/villages will be divided into two...

Thanks for the thorough explanation.

> Currently there's another limitation in that a relation can only appear in 
> a maximum of 4 areas - hence all the "Relation 123 in too many areas" message 
> you probably see when splitting. The result of this is that the relation 
> only gets written to the first 4 areas it encounters and won't appear in 
> any additional ones. I think I can fix this one fairly easily, I'll take 
> a look in the next few days.
> 
That'll be great. Tia.



More information about the mkgmap-dev mailing list