Subscribe to this thread
Home - General / All posts - Removing crosses from maps when polygons too small
#06-Jan-21 05:26

Hi

Thanks in advance for your help. I am developing a map in Manifold 9 using a coastline shape file (Antarctica) with great detail at high resolution (very small islands) (see file image - "Antartica map - high resolution with polygons.png"). I wish to use the map at low resolution, displaying other features along with the coastline (image - "Antartica map - low resolution with crosses.png" - note the region where the NNE to SSW line to the left of the orange island, which is the same area as the high resolution image). My problem is that polygons are replaced by crosses when they become too small given the scale as the map is zoomed out. Is there a way to remove the crosses without removing the offending polygons?

Many thanks again

Andrew

Attachments:
Antartica map - high resolution with polygons.png
Antartica map - low resolution with crosses.png

antoniocarlos

609 post(s)
#06-Jan-21 10:38

I think that if you create a Layout component to print as PDF these artifacts created in the screen rendering to speed things up, go away on the output pdf.


How soon?

#06-Jan-21 21:56

I printed to pdf and all was fine!!! A great surprise. Thanks for your suggestion.

Best Andrew

oeaulong

521 post(s)
#06-Jan-21 19:17

A thought.

Perhaps with a calculated area field, and a style of 'hairline' for the threshold, you might vanish or depreciate the smaller islands.

oeaulong

521 post(s)
#06-Jan-21 20:56

Seems like this is showing some display optimizations. I also notice that this layer still has the (I) intrinsic Geom name. What video card are you using? I tried duplicating this with very small island layer from US in Louisiana. I cannot seem to get the plus/spike display to duplicate.

Is there a way to get the AAD_coastline link? I have hit brick wall on trying to connect today.

#06-Jan-21 21:58

Seems the screen rendering is the issue. Thanks for your suggestions . Gave me lots of food for thought.

Best Andrew

#06-Jan-21 21:59

Good idea. I shall try that to help with the screen rendering (I do a lot of screen shots to help with presentations).

Thanks for your help.

Best Andrew

geozap
264 post(s)
#06-Jan-21 19:49

You can create a column with the area of the polygons, then a query that selects polygons bigger than a threshold, then a drawing from that query, and use that drawing in your map.

Alternatively, you can create a column with the polygons area and then use that column to style the small polygons' inside and border as blue/white (whatever colour your sea is). Having the same colour with the sea will "hide" them.

#06-Jan-21 22:00

Good ideas. Thanks for helping me out. I shall give them a try to improve my screen rendering.

Best Andrew

Dimitri


7,413 post(s)
#08-Jan-21 14:38

I've sent in a suggestion recommending the small boxes/crosses that appear when there are more vertices than pixels available be replaced with a single point. I think it would look better, and may as well let the automated simplification rendering do the work.

About printing having higher resolution: PDFs can print at full printer resolution, which is often thousands of dots per inch, much higher resolution than the number of pixels you get on a screen. Consider that a monitor might have only 1400 or so pixels spread out across a 24 inch monitor, while a printer could shoot over 3000 dots into every square inch.

So... with much higher density "displays" you can get prettier effects render more data than can fit into the display device while trying to convey the real density of what is there.

tjhb
10,094 post(s)
#08-Jan-21 17:59

I've sent in a suggestion recommending the small boxes/crosses that appear when there are more vertices than pixels available be replaced with a single point. I think it would look better, and may as well let the automated simplification rendering do the work.

There is a major downside to this suggestion though, I think.

It would misrepresent the data, saying not "there are extra area or line objects here, which can't be rendered at this scale"--which is what the current approach says--but "the only object here is a point".

That would be false.

I think a better improvement would be a View option to hide the placeholder crosses altogether.

They are useful and informative for analysis, though not always needed; and are not especially attractive for display, possibly confusing when data is shared. So it would be good to be able to turn them on and off.

Dimitri


7,413 post(s)
#08-Jan-21 18:27

Agreed, but also I should have written my post better. I should have said "a single pixel" and not "single point."

tjhb
10,094 post(s)
#08-Jan-21 22:29

Got it, thanks for clarifying.

I'm not sure that I would prefer a single pixel to a cross shape, since pixels have got vanishingly small lately, and this trend might well continue. A cross shape is a bit ugly but has the virtue that it can be seen (at least, much better).

But when presentation is more important than analysis, I really would like to be able to turn the placeholders off completely. As long as the option is applied after initial rendering--so that, if I give all areas a very fat boundary, or make lines very thick, I want to see the object rendered, even if it would be smaller than one pixel if rendered with a thin boundary (or none). (This is a useful habit in Manifold 8, to make all areas and lines visible no matter how tiny. Good for detecting errors not seen at usual scales.)

The placeholder option could be per-map, accesible from the View menu, or it could be per-component, incorporated in whatever dialog winds up governing visible zoom ranges (and possibly rendering scales, if that happens as well).

An extra option in that dialog could be "Show line and area placeholders at small scales", i.e. whenever an object is smaller than one pixel, as now. On or off.

tjhb
10,094 post(s)
#07-Jan-21 03:53

I was going to suggest almost the same as geozap:

Make a second geom field in the source table, driven by an expression using a CASE operator. In the conditional I would test the size of the original area’s bounding box (fast enough to do on the fly). Above a chosen threshold, the expression would the original area unchanged; below the threshold, it would pass NULL.

Then bind a drawing taking geometry from the filtered field.

#07-Jan-21 23:09

Thank you for the detailed explanation. I appreciate it.

Best wishes

Andrew

Manifold User Community Use Agreement Copyright (C) 2007-2021 Manifold Software Limited. All rights reserved.