Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Allow-overlap default true #968

Open
tmcw opened this Issue · 6 comments

4 participants

@tmcw
Collaborator

This is kind of a rough blue-sky suggestion - it'd break lots of existing maps and might need to wait for a Mapnik 3. But, from watching a bunch of support requests fly by and checking out how I and others usually style maps, I'm starting to think that allow-overlap: true is the expected behavior, and what it does is not well-known when it comes to markers.

For labels, it makes sense: labels are presentational and usually non-overlapped on other maps. But for markers, people assume that Mapnik is doing clustering, because not showing data by default is unusual.

I'm unaware of other ramifications of this: maybe there are performance problems with displaying everything by default?

@springmeyer
Owner

totally reasonable, and makes sense for dynamically drawn markers (less so for symbols, more common use-case for point symbolizer). So in a sense we could just make the change for markers, but that would be odd given we want to merge markers and points... The complicating breakage would not necessarily be where points/markers overlapped but how stylesheets will change based on their bbox's not being added to the collision detector (what else is placed). Thinking about osm main stylesheet. So, we may need to pair this with offering the ability to set global defaults or something. In short, I'm supportive but my mind spins thinking about how to do this right.

@tmcw
Collaborator

At least one good thing is that by setting maker-allow-overlap:true; in the automatically-added styles, we can punt on this indefinitely.

@gjury

IMO the confusing part is in the wiki
https://github.com/mapnik/mapnik/wiki/PointSymbolizer
where it says "allow text to overlap the point image" it should say "allow overlaping the point image"

@springmeyer
Owner

@gjury - that is confusing, please feel free to edit for more clarity. Specifically, allow-overlap allows the given symbolizer (the property can be applied on several) to be placed even if it collides with a previously placed marker, point, or text (really any other symbolizer that places features rendering the collision cache).

@strk

Global defaults specification ( #481 ) would possibly make this ticket easier to deal with (give users control over what the defaults are)

@springmeyer
Owner

@strk - yes, this is definitely a strong case for global defaults. But, its tricky, would users be able to set a global default for all MarkersSymbolizers in a style, or a entire map? Or all symbolizers that accept the property? Or just markers above a certain zoom level? Or just markers above a certain zoom level that have not set the property manually (E.G what if you want a default but still be able to override?). Not saying all this complexity is needed, but its unclear to me what exactly would be the most useful/desired by stylesheet authors. Just adding defaults support in Mapnik core for the sake of programmers/calling application may not be as fruitful as providing the support **before* Mapnik in a preprocessor like Carto.js.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.