Add style
Description
Adds a vector style.
Endpoint
/path/{pathId}/vector/style
Method
POST
Access Level Rules
Minimum Access Level
edit+
Processing Units
Minimum processing units
2
Parameters
pathId
The id of the vector layer.
true
name
The name of the style to add.
true
parameters
The parameters JSON for the style. See details below.
true
default
Boolean whether the style should be used as the default styling of the timestamp.
true
method
The method of the style, should be 'v2' to use the most recent styling framework.
true
dryRun
Boolean whether to to only check the validity of the style without instead of creating it.
false
Default false.
The parameters JSON should follow the following schema:
{ //required
"alphaMultiplier": 1,//A float between 0 and 1
"radius":numberMapping, //A mapping that assigns a float
"width":numberMapping, //A mapping that assigns a float
"fill": colorMapping/iconMapping/patternMapping , //A mapping that assigns a hex color, pattern or icon
//optional
"popOver":{"color": colorMapping, "text":stringMapping}, //A mapping that assigns a string
"dashedLine":[number, number], //An array containing 2 numbers
"borderColor":colorMapping, //A mapping that assigns a hex color
"elevation":numberMapping, //A mapping that assings a value
}
Aside from the alphaMultiplier which should be a float, all properties in the parameters should be mappings. These mappings should be objects. There are a couple of mapping types you can use. All of these types are listed in the table below.
A mapping outputs a specific target based on the rules of the mapping in question. Targets can be of type string, number, color pattern or string. See below for documentation on how to define targets.
//Sent an expression to a seeded random color, this mapping can only be used to assign hex colors
{
"type": "seededRandom", //should be seededRandom
"expressionObject": {"expression":"2*property1+1", "properties":["myProperty"]} , //An expression to use as seed to create a random hex color
}
Expressions
Mappings can use expressions. An expressionObject is an object that consists of a properties and an expression.
expressionObject = {"expression":expression, "properties":properties, "values":values,
The properties should be an array of strings. Each element in the array should be the name of a property of the features within the layer that you are styling.
For example if your layer contains features with properties "constructionMaterial", "Height", and "housingType" then your properties array can be:
properties = ["housingType", "constructionMaterial","Height"]
The values should be an array of strings. Each element in the array should be any string value you want to use in the expression.
For example if your layer contains features with properties "constructionMaterial", "Height", and "housingType" then your values array can be:
values = ["flat", "concrete"]
The expression should be a string that can be interpreted as a formula or logical expression outputting either a number or boolean.
You can use the values of the properties array by referencing them as "property1", "property2",... and the values as "value1", "value2"...
For example:
expression="property1==value1 && property3>5"
Here property1 refers to the first element in the properties array which is in this case "housingType", the second to "Height" and value1 refers to the string "flat". That is to say the expression results in true for all features with housing type "flat" and altitude higher than 3 and false otherwise.
The expression can contain standard operators such as:
*,+,-,/, round(_), floor(_), ceil(_),),(
and logical operators such as:
&&, ||, not, ==,<=,<,>,>=,!=
An expressionObject can simply assign the value of a property:
expressionObject = {"expression":"property1", "properties":["housingType"]:, "values": []}
Or an expression can also simply be a number:
expressionObject={"expression":"1", "properties":[], "values": []}
Or boolean:
expressionObject ={"expression":"true", "properties":[], "values": []}
An expression can also be used to apply more complicated logic. For example finding the population density based on the properties "surfaceArea" and "population":
expressionObject = {"expression:"property2/property1", "properties":["surfaceArea", "population"], "values": []}
We can also make a more complicated logical expression:
expressionObject = {"expression":"property2!= 2 and property1 > 5", "properties":["surfaceArea", "population"], "values": []}
Target
A target is an object that can be of type color, pattern, icon, number or string. It signifies the value that is being assigned by the mapping.
In case of a colorMapping the target should be of type color, in case of a patternMapping of type pattern etc.
target = {type:"color/pattern/icon/number", "color":null, "pattern":null, "icon":null, "number":null}
Type color
In case of type color the target needs to contain a hex color:
target = {"type":"color", "color":"#99f53f"}
Type number
In case of type number the target needs to contain a number:
target = {"type":"number", "number":3.2}
Type string
In case of type string the target needs to contain a string:
target = {"type":"number", "string":"hello"}
type pattern
In case of type pattern the target must contain a pattern
target = {"type":"pattern", "pattern":pattern}
A pattern must be an object with:
type: One of solid, diagonal, horizontal or vertical
width: a float between 1 and 50
backgroundColor: a hex color, optional.
Example:
pattern = {"type":"diagonal", "width": 2, "color":"#f34f14", "backgroundColor":"#934314"}
Alternatively the pattern can be an object of type drive. In this case you need to include a pathId of a png that is stored on the Drive.
Example:
pattern = {"type":"drive", "pathId":"4d695990-ace7-434e-b703-e1d5ae006800"}
In this case the png will be used as pattern.
In case of type icon the target must contain an icon
target = {"type":"icon", "icon":icon}
Type icon
An icon must be an object with
type: must be the string 'predefined'
name: the name of the icon as a string. All allowed values can be found using GET /images/listIcons.
color: a hex color
Example:
icon = {"name":"dog", "type":"predefined", "color":"#f34f14"}
Alternatively the icon can be an object of type drive. In this case you need to include a pathId of a png that is stored in Ellipsis Drive.
Example:
pattern = {"type":"drive", "pathId":"4d695990-ace7-434e-b703-e1d5ae006800"}
In this case the png will be used as icon.
RECOMMENDED READING
ποΈRaster styling methodsLast updated
Was this helpful?