Closed Klaus-Tockloth closed 6 years ago
I can confirm it also with Mapsforge switzerland.map.
Here's a second example of a missing area:
Probably because of polygons using the default stencil buffer rendering without tessellation, require elements coming from one layer to not overlap. Using the mesh rendering is slightly slower to load (requires tessellation) and requires more memory, but should be faster to render. And it does not support currently pattern textures. More details in #212.
So adding mesh="true"
to area water rule, the lake appears complete.
@Klaus-Tockloth can you test in your theme?
So adding mesh="true" to area water rule, the lake appears complete.
Yes, this solves the issue:
<area fill="#80cccc" mesh="true" stroke="#3CCBCB" stroke-width="0.1" />
Before:
After:
The second example is a bit more complex:
This is an area (power=sub_station) which is completely surrounded by a fence (barrier=fence). Both objects are included in the map data. The theme renders power=substation as area and barrier=fence as line. Both objects are closed ways. It seems that the fence (drawn as thin line) completely subtracts the sub_station area.
This is the current (incorrect) result:
And that would be the expected result:
There was a similar situation in Osmarender, where overlapping natural=scrub
gets subtracted with other natural
areas.
I first added mesh=true
in b6bfbc612a046aa99e7328ac5e786ce27c581c87 to fix it.
But our other themes do not have that problem, so it's clearly a rules organization issue.
I separated them in 7c9c3732fb94577cd951717432720176f3263c74 and now the overlapping natural
areas render without mesh (tessellation).
So maybe some cases can be solved by better organizing their theme rules?
mesh="true" doesn't work in the (second) case where the area is complete within another area.
@Klaus-Tockloth how is that render theme rule for the 2nd case?
First the area:
<m e="way" k="power" v="plant|generator|substation|station|sub_station" closed="yes">
<area src="file:/patterns/kraftwerk.svg" symbol-scaling="size" symbol-width="32" />
<m e="way" zoom-min="17">
<caption k="name" style="normal" size="11" fill="#191919" stroke="#00123456" stroke-width="1.0" />
</m>
</m>
And later the line:
<m e="way" k="barrier" v="fence|wall|city_wall|retaining_wall" zoom-min="16">
<line stroke="#888888" stroke-width="0.1" />
</m>
Similar(?) case mentioned in OpenAndroMaps forum.
EDIT: looks like false alert, see Christian's answer there.
I enabled for now tessellation on water areas, let's see how it goes.
Lake Constance (Bodensee) with maps of Austria+Switzerland open together:
Performance and stability are more important, as well as proper rendering.
Netherlands before:
Netherlands after:
Fixed in #903 #905.
This water polygon isn't filled in vtm as it does in mapsforge:
Mapsforge:
VTM (the eastern part of Lake Zurich is (probably) not filled):
The issue can be reproduces: Map: http://download.freizeitkarte-osm.de/android/latest/freizeitkarte_che+.map.zip Theme: https://dl.dropboxusercontent.com/u/1677057/freizeitkarte-vtm.zip