logo separator

[mkgmap-dev] Commit: r1443: Combine any gmapsupp files given as input into the output gmapsupp file correctly preserving family id's etc.

From Charlie Ferrero charlie at cferrero.net on Sun Jan 3 09:53:16 GMT 2010


Felix Hartmann wrote:
> 
> On 02.01.2010 19:17, Charlie Ferrero wrote:
>> svn commit wrote:
>>    
>>> Version 1443 was commited by steve on 2009-12-27 21:12:59 +0000 (Sun, 27 Dec 2009)
>>>
>>> Combine any gmapsupp files given as input into the output gmapsupp file correctly preserving family id's etc.
>>> _______________________________________________
>>>      
>> I can confirm that this now works (each layer can be enabled/disabled
>> and each tile has the correct name), bar one thing...transparency
>> information is being incorrectly applied to all layers.  My mapset is as
>> follows:
>>
>> top layer (contours): transparent
>> mid layer (OSM map): opaque
>> bottom layer (routing): opaque
>>
>> The transparency from the top layer is being applied to the lower
>> layers, meaning that when the GPS draws, it first draws the routing
>> layer, then the OSM layer, then the contour layer, which is reeeeaaally
>> slow.
>>
>> This is definitely a mkgmap issue because when I combine the gmapsupp
>> files using sendmap only the top layer is transparent.
>>    
> No this is not an mkgmap issue, but an issue in understanding how DP and 
> transparency work. 

 > If not disabled ALL enabled maps will be drawn.
When I combine maps using sendmap, the routing layer is transferred to 
the GPS, but not drawn.  So either sendmap 'disables' drawing for 
invisible layers in a way that is not yet understood and that mkgmap 
does not do, or else sendmap correctly preserves transparency for each 
layer and the GPS uses this in an 'intelligent' way to avoid drawing 
layers that can never be seen.

> 
> 1. Opaque maps are drawn, the order depend on the Draw Priority
> 2. After all opaque maps, the transparent maps are drawn on top, if they 
> have polygons those polygons will be drawn above non transparent maps. 
> The draw priority of a transparent map does not matter (the behaviour 
> what happens if there are several transparent maps is depending on the 
> unit and a bit erroneus).
> 
> -- A mapset can include transparent as well as opaque maps, and also 
> maps of different DP. You can also include several maps (be they 
> transparent or not) of the same area into the same mapset.
> 
> So if you have three maps you should decide:
> a) which maps are transparent, which are opaque
> b) which maps to assign which DP
> c) decide which maps to put into which mapset (or all into one mapset).
> 
> I don't know how the mkgmap --gmapsupp option works, but in the above 
> you're writing everything is working correctly.


Let me put it like this.
top layer (contours): transparent, draw-priority=28
mid layer (OSM map): opaque, draw-priority=25
bottom layer (routing): opaque, draw-priority=10

If I combine the layers using sendmap, *all* layers make it to the 
gmapsupp.img (I know this because I can route).  But only the top two 
layers are ever drawn by the GPS unit.

If I combine using mkgmap, the GPS draws first the bottom routing layer, 
then the mid layer, then the contour layer.  Clearly, there is a 
difference and the mkgmap behaviour is less desirable because it is much 
much slower and causes the GPS to plot a layer that never needs to be 
plotted.

-- 

Charlie



More information about the mkgmap-dev mailing list