Open Geogoeroe opened 2 months ago
Confirmed, viewer maakt sowieso niet uit. Dit heeft met tile-rendering te maken. Labels moeten natuurlijk niet afgekapt op randen van de tile. Daartoe zijn een drietal mechanismen: in de renderer (Mapnik) stijl regels, via "metatiling" (tijdens tilen grotere gebieden tilen, NxN tiles, en dan opsnijden) en tenslotte "buffering/gutter" (extra rand om (meta)tile). En dan kan het toch gebeuren dat het "fout" gaat, al moet ik zeggen, zeer zelden.
We doen een onderzoek nu, omdat met name "buffering" misschien toch niet gewenste resultaat geeft. Ik heb een vraag hierover uitstaan [1], want eerlijk gezegd, snap ik niet wat er gebeurt, of dat het toch iets specifieks is voor bij WMS. lHeb helaas nog geen antwoord, misschien weet iemand bij jullie dat. Metatiling snap ik, maar die buffer...
[1] https://lists.osgeo.org/pipermail/mapproxy/2024-April/003112.html
Grotere buffer/gutter levert wel goede resultaten, is toch wat mysterieus hoe dat werkt.
Oorspronkelijke waarde was buffer: 64
, maar variatie heeft zeker effect:
buffer: 0
als bovenstaand resultaat (afkappingen)buffer: 128
idembuffer: 256
geen afkappingen, zie plaatje onderDe metatile is 2x2 dus gebied width of height is 2x512+2x256=1536 pixels (was 2x512+2x64=1152). Natuurlijk wil je zo groot mogelijk gebied ophalen, maar de limitatie gaat ook in de grootte van de query zitten, dat lijkt vaak de bottleneck... We gaan kijken...
Er was nog een case (via Prov. Zeeland), "Vlissingen" afgekapt op zoom RD7:
die is ook hiermee gerepareerd:
Nou ja, als die buffer dezelfde waarde heeft als bij de reguliere tiles dan snap ik dat het wat mis kan gaan. Maar als een factor 2 het probleem niet oplost bij een 2x zo grote X of Y per tegel, dan is dat (voor mijn lineaire brein) wel wat apart. Anyway, blij dat het wel strak kan.
Hier staat het uitgelegd: https://mapproxy.github.io/mapproxy/latest/labeling.html#meta-buffer Maar dan nog, ik begrijp niet hoe die buffer, zonder WMS, wordt afgebeeld op de uiteindelijke 512x512 tiles. Maar de grootte moet in ieder geval minimaal de helft van de maximale label-lengte zijn. Ik ga ook nog kijken naar de stijlen, die bepalen algoritme voor plaatsing alle labels (want er zijn labels in meerdere lagen, bijv huisnummers).
Overigens, voor Vlissingen is de buffer mogelijk nu iets te groot: ik zie een dieptelijn met een extra 0 erin, direct bij de uitgang van de haven.
Ja we zijn nog niet klaar. Het is 1 getal voor alle zoomlevels. In Mapnik kun je zelfs buffer per laag aanzetten, de dieptelijnen bijv. Maar, dat was ook mijn vraag, weet MapProxy daar mogelijk niet van.
Zoals ik zei, er zijn nog veel meer knoppen/wielen, om aan te draaien, zoals de (Mapnik) Style TextSymbolizer:
label-position-tolerance="50"
ipv "100"
, maar ook avoid-edges:
(lijkt geen effect te hebben). Later meer: "In een blauw geruite kiel / Draaide hij aan 't groote wiel" kwam ineens in mij op....
De nieuwe map5topo versie 2024-04 is uit. Veel label issues verdwenen. Alleen is helaas de 256 pixel gutter, die vooral "Vlissingen" verschil maakte, niet in productie configuratie meegekomen, maar nog steeds 64 px. De afkappingen blijven zeldzaam maar ik verwacht zo goed als weg in v 2024-05 (juni).
@Geogoeroe 2024-05 is net uit, alle bovenstaande "label-afkap" issues zijn m.i. opgelost. Dan dit issue sluiten.
Geen uitgebreide check gedaan, maar dit ziet er niet helemaal uit zoals ik het zou verwachten (in QGIS en Tailormap getest, zelfde beeld).