Subscribe to this thread
Home - General / All posts - Sizing points from another field
HeyGL21 post(s)
#18-Jul-25 08:00

I want to set the size of points from data in the same table.

I've read info at Example: Format the Size of City Points by Population but the title of this example is a little misleading - the size of city points are not 'by population', rather they're set to an arbitrary size chosen by the user to convey relative population.

Is there a way I can set the size of points using actual values in an existing field?

I have many records with a "Year" value ranging from 1800 to 2025.

I'd like to set the point size relative to the year eg from 18 (18+00)/2 to 45 (20+25)/2

Thanks

KlausDE

6,424 post(s)
#18-Jul-25 09:09

What about

StylePointSize { "Field": "Year", "Fill": "boundaverage", "Method": "stdev", "Value": 9, "Values": { "1800": 9, "2025": 23 } }


Do you really want to ruin economy only to save the planet?

HeyGL21 post(s)
#18-Jul-25 09:36

Will try that thanks, but note I want point size to be dynamic as the dataset updates. There's ~30,000 records with unpredictable distributions across the years - some years between 1800 and 2025 may not be represented in the dataset. Would be very convenient to set point size using other value (like those other less-capable GIS tools )

Sloots

713 post(s)
#18-Jul-25 18:17

Why don't you try this:

Assuming a table named [Vectorlaag Table] and a field named [year] that holds the data for the year.

1) Create a calculated field called pointsize either via the menu or with this snippet of SQL:

--SQL

ALTER TABLE [Vectorlaag Table] (

ADD [pointsize] FLOAT64

AS [[

([year] - 1800) / (2025 - 1800) * (23 - 9) + 9

]]

);

2) Use a style like such: { "Field": "pointsize", "Fill": "boundaverage", "Method": "equal", "Value": 1, "Values": { "1": 1, "100": 100 } }

The calculated field converts the [year] value in a value between 9 and 23. It is a lineair mapping. Values below or above the expected boundaries (1800 and 2025) will end up lower than 9 or higher than 23 respectively. The styling is simple, pointsize 1 => 1, 100 => 100. Values in between are interpolated. Adjust the min/max of the source (1800, 2025) and the min/max of the target values (9, 23) to your needs.

Cheers,

Chris


http://www.mppng.nl/manifold/pointlabeler

HeyGL21 post(s)
#19-Jul-25 00:10

Thanks Chris - that's extensive, will write it up and report back.

(Liking the look of your point labeler)

Cheers

Greg

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