"Auto-load maps of any type" override tiles which have transparent area

ta-ka shared this problem 4 years ago
Closed

I've created three offline map files (maps.zip) to reproduce the issue. Could you please confirm and solve it? Please also have a look at the video. https://www.dropbox.com/s/rcxp3by0pcpdqpa/auto-load_maps_of_any_type.mp4?dl=0


(1) GSI Map Standard.sqlitedb, (2) GSI Map Relief.sqlitedb, (3) GSI Map Relief transparent.sqlitedb


(1) is a map of 10x10 tiles. An island is located at the center. (2) and (3) are the same island maps with 4x4 tiles showing altitude by color. Sea area of (2) is solid color while Sea area of (3) is transparent.


By setting "Auto-load maps of any type" and selecting map (3), only map (1) is shown and map (3) is hidden. On the other hand, selecting map (2) shows map (2) at the center and map (1) around it as expected.

Files: maps.zip

Comments (5)

photo
2

Hello ta-ka,


hmm hard work. Please read this posts http://help.locusmap.eu/topic/mbtiles-folder-map-combining#comment-16379 (everything except post itself). This is what cause these troubles for you.


When I look on it, current behavior seems to be logical. Locus finds tile with transparent area so it search for any alternative map that may fill this space. Isn't more logical to use your semitransparent map as a full featured overlay: http://docs.locusmap.eu/doku.php?id=manual:user_guide:maps_tools:overlays ?


Then this issue should not happen.

photo
2

Hi menion,


I'm aware of map overlay function you pointed out, thanks. I know this is one of the excellent feature of Locus. :)

Now, how about a logic below. It's not too much complicated, I think. Well, the things might not be so simple but I send you an idea anyway.


tile_a: tile in selected map, tile_b: tile in alternative map being auto-loaded

1. if tile_a doesn't exist -> auto-load tile_b

2. if tile_a exists and doesn't have transparent area -> do not auto-load tile_b

3. if tile_a exists and has transparent area

3.1 if tile_b has transparent area -> auto load tile_b -> Paulo will be happy.

3.2 if tile_b doesn't have transparent area -> do not load tile_b -> I will be happy.

photo
1

Hello ta-ka,


your suggestion 3.1 and 3.2 make sense. On second side, I'm more then sure, that soon or later appear here another topic, where someone will be confused, that Locus do not load extra map tiles, when first map has some transparent parts.


So I currently do not see any universal solution. Ehm, what about using "Map overlays"? :)

photo
2

Hi menion,


> someone will be confused,

In fact, someone was already me. ;) It took some time to find the reason why first map tiles are disappeard even they have visible area.


> that Locus do not load extra map tiles, when first map has some transparent parts.

I don't think it makes confusion. Because the first map tile which has some transparent area does have opaque area that user actually want to see on screen. Well, it is not easy to foresee all the use case, your opinion may be right. ;)


> what about using "Map overlays"? :)

All right. I'll accept your suggestion. Thanks for discussion. :)

photo
2

Understand. I think almost everything is doable. In this case, i just think it will be a too much work for such rare situation like yours.


Generally rendering system (work with more maps) is not perfect in Locus, I'm aware of that. But I'm also little worried to change it completely, because .. well, "it works" quite well in most common situations ...


Thanks for understanding.