-
Notifications
You must be signed in to change notification settings - Fork 826
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Marker ellipse chopped across tile boundary #2577
Comments
Mapnik 3.x now supports |
Thanks @springmeyer. However, when I added mapnik::markers_point_placement::get_point(double &x, double &y, double &angle, bool ignore_placement)
{
...
if (params_.avoid_edges && !detector_.extent().contains(box))
{
return false;
}
...
} my
which was correctly computed from setting the map buffer size to 256 and a width and height of 512.
which is clearly contained inside the |
Oh no, sounds buggy, thanks for helping test this more. I think the next step should be to reduce a really small testcase so we can both test (and if it is truly a bug then we'll have a regression test once fixed). Have a look at https://github.com/mapnik/mapnik/wiki/A-perfect-testcase to get started. |
|
I wrote that and it is not a precise or very good statement. What I meant is that:
Now: this raising the question of how buffer-size impacts the collision detector box and whether allow-overlap is computed relative to the actual tile-edge or the edge of the buffered collision detector. I'd need to look at the code to confirm for sure how this works / should work and to make sure it is consistent across symbolizers. |
Thanks @springmeyer I will start working on creating a testcase as soon as I have the time to. |
For what it's worth, the current behaviour that I'm seeing is that a TextSymbolizer with point placement appears to be working adequately. A TextSymbolizer with line placement, or a ShieldSymbolizer, is now consistently producing clipped labels near tile edges. (I'm using a tile size of 256 with a buffer size of 192). I tried all combinations of clip= and avoid-edges= without effect. Next step in attempting to work around this will be to try a zero buffer size with huge metatiles (maybe 2048x2048 and avoid-edges. The outermost tiles of a metatile will have to be discarded because they will now lack partial labels with point placement, but this should yield at least adequate results. |
Did you mean What I know |
@wibrahim, I'm responding on your comment from #2687 (comment) here, as the topic suites better to this issue.
That would be great, I'm really interested and still not fully understanding how |
Sorry for my late response. |
I have been experimenting with Marker placement for points geometry and it seems that the marker image is always chopped if the point geometry is too close to the tile boundary. I did set the map buffer to half the tile length (512/2). Also in my case when using MetaTile this specific point falls on the boundary of the MetaTile as well (I could make the MetaTile larger but that just mean that other points might get chopped).
Is there any specific way of defining the Marker (I got the same behavior with a ShieldSymbolizer) to not chop the image across tile boundaries ?
My style sheet rule is:
and the resulting image:
Any help on this issue will be much appreciated.
The text was updated successfully, but these errors were encountered: