Refactoring: split icons into proper layered icons, fix and rerun shops-thief
This commit is contained in:
parent
d6cd0516bb
commit
19a760178b
307 changed files with 26845 additions and 116541 deletions
|
@ -1,39 +0,0 @@
|
|||
{
|
||||
"$ref": "#/definitions/AndOrTagConfigJson",
|
||||
"definitions": {
|
||||
"AndOrTagConfigJson": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"and": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AndOrTagConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AndOrTagConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"additionalProperties": false
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
export default {
|
||||
"$ref": "#/definitions/AndOrTagConfigJson",
|
||||
"definitions": {
|
||||
"AndOrTagConfigJson": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"and": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AndOrTagConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AndOrTagConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#"
|
||||
}
|
|
@ -1,66 +0,0 @@
|
|||
{
|
||||
"$ref": "#/definitions/AndTagConfigJson",
|
||||
"description": "Chain many tags, to match, a single of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"definitions": {
|
||||
"TagConfigJson": {
|
||||
"description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AndTagConfigJson"
|
||||
},
|
||||
{
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"AndTagConfigJson": {
|
||||
"description": "Chain many tags, to match, a single of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"and": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"and"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"OrTagConfigJson": {
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"additionalProperties": false
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
export default {
|
||||
"$ref": "#/definitions/AndTagConfigJson",
|
||||
"description": "Chain many tags, to match, a single of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"definitions": {
|
||||
"TagConfigJson": {
|
||||
"description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AndTagConfigJson"
|
||||
},
|
||||
{
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"AndTagConfigJson": {
|
||||
"description": "Chain many tags, to match, a single of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"and": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"and"
|
||||
]
|
||||
},
|
||||
"OrTagConfigJson": {
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
]
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#"
|
||||
}
|
|
@ -29,7 +29,7 @@
|
|||
]
|
||||
},
|
||||
"source": {
|
||||
"description": "Question: Where should the data be fetched from?\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -166,21 +166,18 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"mapRendering": {
|
||||
"description": "Visualisation of the items on the map\nSet 'null' explicitly if you do not want a maprendering\ngroup: maprendering\ntypes: PointRendering ; LineRendering ;",
|
||||
"pointRendering": {
|
||||
"description": "Creates points to render on the map.\nThis can render points for point-objects, lineobjects or areaobjects; use 'location' to indicate where it should be rendered\ngroup: pointrendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default<default|default|default[]|default[]>"
|
||||
}
|
||||
]
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
},
|
||||
"lineRendering": {
|
||||
"description": "Creates lines and areas to render on the map\ngroup: linerendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
"passAllFeatures": {
|
||||
|
@ -397,6 +394,7 @@
|
|||
},
|
||||
"required": [
|
||||
"id",
|
||||
"pointRendering",
|
||||
"source"
|
||||
],
|
||||
"definitions": {
|
||||
|
@ -703,6 +701,38 @@
|
|||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
|
@ -825,22 +855,43 @@
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"location": {
|
||||
"description": "All the locations that this point should be rendered at.\nPossible values are:\n- `point`: only renders points at their location\n- `centroid`: show a symbol at the centerpoint of a (multi)Linestring and (multi)polygon. Points will _not_ be rendered with this\n- `projected_centerpoint`: Only on (multi)linestrings: calculate the centerpoint and snap it to the way\n- `start` and `end`: only on linestrings: add a point to the first/last coordinate of the LineString",
|
||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line\"}]",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"icon": {
|
||||
"description": "The icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one can use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"marker": {
|
||||
"description": "question: What marker should be used to\nThe icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one c an use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"icon": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"required": [
|
||||
"icon"
|
||||
]
|
||||
}
|
||||
},
|
||||
"iconBadges": {
|
||||
"description": "A list of extra badges to show next to the icon as small badge\nThey will be added as a 25% height icon at the bottom right of the icon, with all the badges in a flex layout.\n\nNote: strings are interpreted as icons, so layering and substituting is supported. You can use `circle:white;./my_icon.svg` to add a background circle",
|
||||
|
@ -882,7 +933,7 @@
|
|||
]
|
||||
},
|
||||
"anchor": {
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\nFor example, a feature attached to the ground can use 'bottom' as zooming in will give the appearance of being anchored to a fixed location.",
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\n\nifunset: Use MapComplete-default (<b>center</b>)\nsuggestions: return [{if: \"value=center\", then: \"Place the <b>center</b> of the icon on the geographical location\"},{if: \"value=top\", then: \"Place the <b>top</b> of the icon on the geographical location\"},{if: \"value=bottom\", then: \"Place the <b>bottom</b> of the icon on the geographical location\"},{if: \"value=left\", then: \"Place the <b>left</b> of the icon on the geographical location\"},{if: \"value=right\", then: \"Place the <b>right</b> of the icon on the geographical location\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -904,7 +955,7 @@
|
|||
]
|
||||
},
|
||||
"label": {
|
||||
"description": "A HTML-fragment that is shown below the icon, for example:\n<div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\nNote that, if the wayhandling hides the icon then no label is shown as well.",
|
||||
"description": "question: What label should be shown beneath the marker?\nFor example: <div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\ntypes: Dynamic value | string\ninline: Always show label <b>{value}</b> beneath the marker",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -915,7 +966,7 @@
|
|||
]
|
||||
},
|
||||
"css": {
|
||||
"description": "A snippet of css code which is applied onto the container of the entire marker",
|
||||
"description": "question: What CSS should be applied to the entire marker?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\nThis will be applied to the _container_ containing both the marker and the label\ninline: Apply CSS-style <b>{value}</b> to the _entire marker_\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -926,7 +977,7 @@
|
|||
]
|
||||
},
|
||||
"cssClasses": {
|
||||
"description": "A snippet of css-classes which are applied onto the container of the entire marker. They can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the entire marker?\nThis will be applied to the _container_ containing both the marker and the label\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the entire container\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -937,7 +988,7 @@
|
|||
]
|
||||
},
|
||||
"labelCss": {
|
||||
"description": "Css that is applied onto the label",
|
||||
"description": "question: What CSS should be applied to the label?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\ninline: Apply CSS-style <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -948,7 +999,7 @@
|
|||
]
|
||||
},
|
||||
"labelCssClasses": {
|
||||
"description": "Css classes that are applied onto the label; can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the label?\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -974,7 +1025,7 @@
|
|||
]
|
||||
},
|
||||
"rotationAlignment": {
|
||||
"description": "If the map is rotated, the icon will still point to the north if no rotation was applied",
|
||||
"description": "question: Should the icon be rotated or tilted if the map is rotated or tilted?\nifunset: Do not rotate or tilt icons. Always keep the icons straight\nsuggestions: return [{if: \"value=canvas\", then: \"If the map is tilted, tilt the icon as well. This gives the impression of an icon that is glued to the ground.\"}, {if: \"value=map\", then: \"If the map is rotated, rotate the icon as well. This gives the impression of an icon that floats perpendicular above the ground.\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -999,10 +1050,10 @@
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"color": {
|
||||
"description": "The color for way-elements and SVG-elements.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead",
|
||||
"description": "question: What color should lines be drawn in?\n\nFor an area, this will be the colour of the outside line.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead\n\ntypes: dynamic value ; string\ntitle: Line Colour\ninline: The line colour always is <b>{value}</b>\nifunset: Round ending\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -1010,10 +1061,10 @@
|
|||
]
|
||||
},
|
||||
"width": {
|
||||
"description": "The stroke-width for way-elements",
|
||||
"description": "question: How wide should the line be?\nThe stroke-width for way-elements\n\ntypes: dynamic value ; string\ntitle: Line width\ninline: The line width is <b>{value} pixels</b>\ntype: pnat\nifunset: Use the default-linewidth of 7 pixels",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": [
|
||||
|
@ -1024,21 +1075,14 @@
|
|||
]
|
||||
},
|
||||
"dashArray": {
|
||||
"description": "A dasharray, e.g. \"5 6\"\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap',\nDefault value: \"\" (empty string == full line)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"description": "question: Should a dasharray be used to render the lines?\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap, ...'. For example, `5 6` will be 5 pixels of line followed by a 6 pixel gap.\nCannot be a dynamic property due to a mapbox limitation\nifunset: Ways are rendered with a full line",
|
||||
"type": "string"
|
||||
},
|
||||
"lineCap": {
|
||||
"description": "The form at the end of a line",
|
||||
"description": "question: What form should the line-ending have?\nsuggestions: return [{if:\"value=round\",then:\"Round endings\"}, {if: \"value=square\", then: \"square endings\"}, {if: \"value=butt\", then: \"no ending (square ending at the end, without padding)\"}]\ntypes: dynamic value ; string\ntitle: Line Cap\nifunset: Use the default value (round ending)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -1046,10 +1090,10 @@
|
|||
]
|
||||
},
|
||||
"fillColor": {
|
||||
"description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line.\nUse '#00000000' to make the fill invisible",
|
||||
"description": "question: What colour should be used as fill colour for polygons?\nifunset: The polygon fill colour will be a more transparent version of the stroke colour\nsuggestions: return [{if: \"value=#00000000\", then: \"Use a transparent fill (only render the outline)\"}]\ninline: The fill colour is <b>{value}</b>\ntypes: dynamic value ; string\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -1057,10 +1101,10 @@
|
|||
]
|
||||
},
|
||||
"offset": {
|
||||
"description": "The number of pixels this line should be moved.\nUse a positive numbe to move to the right, a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details",
|
||||
"description": "question: Should the lines be moved (offsetted) with a number of pixels against the geographical lines?\nThe number of pixels this line should be moved.\nUse a positive number to move to the right in the drawing direction or a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details\nifunset: don't offset lines on the map\ninline: Pixel offset by <b>{value}</b> pixels\ntypes: dynamic value ; number\ntype: int",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
|
@ -1070,61 +1114,6 @@
|
|||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"default<default|default|default[]|default[]>": {
|
||||
"description": "Rewrites and multiplies the given renderings of type T.\n\nThis can be used for introducing many similar questions automatically,\nwhich also makes translations easier.\n\n(Note that the key does _not_ need to be wrapped in {}.\nHowever, we recommend to use them if the key is used in a translation, as missing keys will be picked up and warned for by the translation scripts)\n\nFor example:\n\n```\n{\n rewrite: {\n sourceString: [\"key\", \"a|b|c\"],\n into: [\n [\"X\", 0]\n [\"Y\", 1],\n [\"Z\", 2]\n ],\n renderings: [{\n \"key\":\"a|b|c\"\n }]\n }\n}\n```\nwill result in _three_ copies (as the values to rewrite into have three values, namely:\n\n[\n {\n # The first pair: key --> X, a|b|c --> 0\n \"X\": 0\n },\n {\n \"Y\": 1\n },\n {\n \"Z\": 2\n }\n\n]",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"rewrite": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sourceString": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"into": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"into",
|
||||
"sourceString"
|
||||
]
|
||||
},
|
||||
"renderings": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"renderings",
|
||||
"rewrite"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"QuestionableTagRenderingConfigJson": {
|
||||
"description": "A QuestionableTagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
|
||||
"type": "object",
|
||||
|
|
|
@ -29,7 +29,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"source": {
|
||||
"description": "Question: Where should the data be fetched from?\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -166,21 +166,18 @@ export default {
|
|||
}
|
||||
]
|
||||
},
|
||||
"mapRendering": {
|
||||
"description": "Visualisation of the items on the map\nSet 'null' explicitly if you do not want a maprendering\ngroup: maprendering\ntypes: PointRendering ; LineRendering ;",
|
||||
"pointRendering": {
|
||||
"description": "Creates points to render on the map.\nThis can render points for point-objects, lineobjects or areaobjects; use 'location' to indicate where it should be rendered\ngroup: pointrendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default<default|default|default[]|default[]>"
|
||||
}
|
||||
]
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
},
|
||||
"lineRendering": {
|
||||
"description": "Creates lines and areas to render on the map\ngroup: linerendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
"passAllFeatures": {
|
||||
|
@ -397,6 +394,7 @@ export default {
|
|||
},
|
||||
"required": [
|
||||
"id",
|
||||
"pointRendering",
|
||||
"source"
|
||||
],
|
||||
"definitions": {
|
||||
|
@ -697,6 +695,37 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object"
|
||||
},
|
||||
|
@ -816,22 +845,43 @@ export default {
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"location": {
|
||||
"description": "All the locations that this point should be rendered at.\nPossible values are:\n- `point`: only renders points at their location\n- `centroid`: show a symbol at the centerpoint of a (multi)Linestring and (multi)polygon. Points will _not_ be rendered with this\n- `projected_centerpoint`: Only on (multi)linestrings: calculate the centerpoint and snap it to the way\n- `start` and `end`: only on linestrings: add a point to the first/last coordinate of the LineString",
|
||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line\"}]",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"icon": {
|
||||
"description": "The icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one can use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"marker": {
|
||||
"description": "question: What marker should be used to\nThe icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one c an use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"icon": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"required": [
|
||||
"icon"
|
||||
]
|
||||
}
|
||||
},
|
||||
"iconBadges": {
|
||||
"description": "A list of extra badges to show next to the icon as small badge\nThey will be added as a 25% height icon at the bottom right of the icon, with all the badges in a flex layout.\n\nNote: strings are interpreted as icons, so layering and substituting is supported. You can use `circle:white;./my_icon.svg` to add a background circle",
|
||||
|
@ -873,7 +923,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"anchor": {
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\nFor example, a feature attached to the ground can use 'bottom' as zooming in will give the appearance of being anchored to a fixed location.",
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\n\nifunset: Use MapComplete-default (<b>center</b>)\nsuggestions: return [{if: \"value=center\", then: \"Place the <b>center</b> of the icon on the geographical location\"},{if: \"value=top\", then: \"Place the <b>top</b> of the icon on the geographical location\"},{if: \"value=bottom\", then: \"Place the <b>bottom</b> of the icon on the geographical location\"},{if: \"value=left\", then: \"Place the <b>left</b> of the icon on the geographical location\"},{if: \"value=right\", then: \"Place the <b>right</b> of the icon on the geographical location\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -895,7 +945,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"label": {
|
||||
"description": "A HTML-fragment that is shown below the icon, for example:\n<div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\nNote that, if the wayhandling hides the icon then no label is shown as well.",
|
||||
"description": "question: What label should be shown beneath the marker?\nFor example: <div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\ntypes: Dynamic value | string\ninline: Always show label <b>{value}</b> beneath the marker",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -906,7 +956,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"css": {
|
||||
"description": "A snippet of css code which is applied onto the container of the entire marker",
|
||||
"description": "question: What CSS should be applied to the entire marker?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\nThis will be applied to the _container_ containing both the marker and the label\ninline: Apply CSS-style <b>{value}</b> to the _entire marker_\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -917,7 +967,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"cssClasses": {
|
||||
"description": "A snippet of css-classes which are applied onto the container of the entire marker. They can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the entire marker?\nThis will be applied to the _container_ containing both the marker and the label\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the entire container\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -928,7 +978,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"labelCss": {
|
||||
"description": "Css that is applied onto the label",
|
||||
"description": "question: What CSS should be applied to the label?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\ninline: Apply CSS-style <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -939,7 +989,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"labelCssClasses": {
|
||||
"description": "Css classes that are applied onto the label; can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the label?\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -965,7 +1015,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"rotationAlignment": {
|
||||
"description": "If the map is rotated, the icon will still point to the north if no rotation was applied",
|
||||
"description": "question: Should the icon be rotated or tilted if the map is rotated or tilted?\nifunset: Do not rotate or tilt icons. Always keep the icons straight\nsuggestions: return [{if: \"value=canvas\", then: \"If the map is tilted, tilt the icon as well. This gives the impression of an icon that is glued to the ground.\"}, {if: \"value=map\", then: \"If the map is rotated, rotate the icon as well. This gives the impression of an icon that floats perpendicular above the ground.\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -989,10 +1039,10 @@ export default {
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"color": {
|
||||
"description": "The color for way-elements and SVG-elements.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead",
|
||||
"description": "question: What color should lines be drawn in?\n\nFor an area, this will be the colour of the outside line.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead\n\ntypes: dynamic value ; string\ntitle: Line Colour\ninline: The line colour always is <b>{value}</b>\nifunset: Round ending\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -1000,10 +1050,10 @@ export default {
|
|||
]
|
||||
},
|
||||
"width": {
|
||||
"description": "The stroke-width for way-elements",
|
||||
"description": "question: How wide should the line be?\nThe stroke-width for way-elements\n\ntypes: dynamic value ; string\ntitle: Line width\ninline: The line width is <b>{value} pixels</b>\ntype: pnat\nifunset: Use the default-linewidth of 7 pixels",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": [
|
||||
|
@ -1014,21 +1064,14 @@ export default {
|
|||
]
|
||||
},
|
||||
"dashArray": {
|
||||
"description": "A dasharray, e.g. \"5 6\"\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap',\nDefault value: \"\" (empty string == full line)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"description": "question: Should a dasharray be used to render the lines?\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap, ...'. For example, `5 6` will be 5 pixels of line followed by a 6 pixel gap.\nCannot be a dynamic property due to a mapbox limitation\nifunset: Ways are rendered with a full line",
|
||||
"type": "string"
|
||||
},
|
||||
"lineCap": {
|
||||
"description": "The form at the end of a line",
|
||||
"description": "question: What form should the line-ending have?\nsuggestions: return [{if:\"value=round\",then:\"Round endings\"}, {if: \"value=square\", then: \"square endings\"}, {if: \"value=butt\", then: \"no ending (square ending at the end, without padding)\"}]\ntypes: dynamic value ; string\ntitle: Line Cap\nifunset: Use the default value (round ending)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -1036,10 +1079,10 @@ export default {
|
|||
]
|
||||
},
|
||||
"fillColor": {
|
||||
"description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line.\nUse '#00000000' to make the fill invisible",
|
||||
"description": "question: What colour should be used as fill colour for polygons?\nifunset: The polygon fill colour will be a more transparent version of the stroke colour\nsuggestions: return [{if: \"value=#00000000\", then: \"Use a transparent fill (only render the outline)\"}]\ninline: The fill colour is <b>{value}</b>\ntypes: dynamic value ; string\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -1047,10 +1090,10 @@ export default {
|
|||
]
|
||||
},
|
||||
"offset": {
|
||||
"description": "The number of pixels this line should be moved.\nUse a positive numbe to move to the right, a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details",
|
||||
"description": "question: Should the lines be moved (offsetted) with a number of pixels against the geographical lines?\nThe number of pixels this line should be moved.\nUse a positive number to move to the right in the drawing direction or a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details\nifunset: don't offset lines on the map\ninline: Pixel offset by <b>{value}</b> pixels\ntypes: dynamic value ; number\ntype: int",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
|
@ -1059,60 +1102,6 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
"default<default|default|default[]|default[]>": {
|
||||
"description": "Rewrites and multiplies the given renderings of type T.\n\nThis can be used for introducing many similar questions automatically,\nwhich also makes translations easier.\n\n(Note that the key does _not_ need to be wrapped in {}.\nHowever, we recommend to use them if the key is used in a translation, as missing keys will be picked up and warned for by the translation scripts)\n\nFor example:\n\n```\n{\n rewrite: {\n sourceString: [\"key\", \"a|b|c\"],\n into: [\n [\"X\", 0]\n [\"Y\", 1],\n [\"Z\", 2]\n ],\n renderings: [{\n \"key\":\"a|b|c\"\n }]\n }\n}\n```\nwill result in _three_ copies (as the values to rewrite into have three values, namely:\n\n[\n {\n # The first pair: key --> X, a|b|c --> 0\n \"X\": 0\n },\n {\n \"Y\": 1\n },\n {\n \"Z\": 2\n }\n\n]",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"rewrite": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sourceString": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"into": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"into",
|
||||
"sourceString"
|
||||
]
|
||||
},
|
||||
"renderings": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"renderings",
|
||||
"rewrite"
|
||||
]
|
||||
},
|
||||
"QuestionableTagRenderingConfigJson": {
|
||||
"description": "A QuestionableTagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
|
||||
"type": "object",
|
||||
|
|
|
@ -608,6 +608,38 @@
|
|||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
|
@ -730,22 +762,43 @@
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"location": {
|
||||
"description": "All the locations that this point should be rendered at.\nPossible values are:\n- `point`: only renders points at their location\n- `centroid`: show a symbol at the centerpoint of a (multi)Linestring and (multi)polygon. Points will _not_ be rendered with this\n- `projected_centerpoint`: Only on (multi)linestrings: calculate the centerpoint and snap it to the way\n- `start` and `end`: only on linestrings: add a point to the first/last coordinate of the LineString",
|
||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line\"}]",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"icon": {
|
||||
"description": "The icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one can use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"marker": {
|
||||
"description": "question: What marker should be used to\nThe icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one c an use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"icon": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"required": [
|
||||
"icon"
|
||||
]
|
||||
}
|
||||
},
|
||||
"iconBadges": {
|
||||
"description": "A list of extra badges to show next to the icon as small badge\nThey will be added as a 25% height icon at the bottom right of the icon, with all the badges in a flex layout.\n\nNote: strings are interpreted as icons, so layering and substituting is supported. You can use `circle:white;./my_icon.svg` to add a background circle",
|
||||
|
@ -787,7 +840,7 @@
|
|||
]
|
||||
},
|
||||
"anchor": {
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\nFor example, a feature attached to the ground can use 'bottom' as zooming in will give the appearance of being anchored to a fixed location.",
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\n\nifunset: Use MapComplete-default (<b>center</b>)\nsuggestions: return [{if: \"value=center\", then: \"Place the <b>center</b> of the icon on the geographical location\"},{if: \"value=top\", then: \"Place the <b>top</b> of the icon on the geographical location\"},{if: \"value=bottom\", then: \"Place the <b>bottom</b> of the icon on the geographical location\"},{if: \"value=left\", then: \"Place the <b>left</b> of the icon on the geographical location\"},{if: \"value=right\", then: \"Place the <b>right</b> of the icon on the geographical location\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -809,7 +862,7 @@
|
|||
]
|
||||
},
|
||||
"label": {
|
||||
"description": "A HTML-fragment that is shown below the icon, for example:\n<div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\nNote that, if the wayhandling hides the icon then no label is shown as well.",
|
||||
"description": "question: What label should be shown beneath the marker?\nFor example: <div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\ntypes: Dynamic value | string\ninline: Always show label <b>{value}</b> beneath the marker",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -820,7 +873,7 @@
|
|||
]
|
||||
},
|
||||
"css": {
|
||||
"description": "A snippet of css code which is applied onto the container of the entire marker",
|
||||
"description": "question: What CSS should be applied to the entire marker?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\nThis will be applied to the _container_ containing both the marker and the label\ninline: Apply CSS-style <b>{value}</b> to the _entire marker_\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -831,7 +884,7 @@
|
|||
]
|
||||
},
|
||||
"cssClasses": {
|
||||
"description": "A snippet of css-classes which are applied onto the container of the entire marker. They can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the entire marker?\nThis will be applied to the _container_ containing both the marker and the label\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the entire container\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -842,7 +895,7 @@
|
|||
]
|
||||
},
|
||||
"labelCss": {
|
||||
"description": "Css that is applied onto the label",
|
||||
"description": "question: What CSS should be applied to the label?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\ninline: Apply CSS-style <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -853,7 +906,7 @@
|
|||
]
|
||||
},
|
||||
"labelCssClasses": {
|
||||
"description": "Css classes that are applied onto the label; can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the label?\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -879,7 +932,7 @@
|
|||
]
|
||||
},
|
||||
"rotationAlignment": {
|
||||
"description": "If the map is rotated, the icon will still point to the north if no rotation was applied",
|
||||
"description": "question: Should the icon be rotated or tilted if the map is rotated or tilted?\nifunset: Do not rotate or tilt icons. Always keep the icons straight\nsuggestions: return [{if: \"value=canvas\", then: \"If the map is tilted, tilt the icon as well. This gives the impression of an icon that is glued to the ground.\"}, {if: \"value=map\", then: \"If the map is rotated, rotate the icon as well. This gives the impression of an icon that floats perpendicular above the ground.\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -904,10 +957,10 @@
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"color": {
|
||||
"description": "The color for way-elements and SVG-elements.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead",
|
||||
"description": "question: What color should lines be drawn in?\n\nFor an area, this will be the colour of the outside line.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead\n\ntypes: dynamic value ; string\ntitle: Line Colour\ninline: The line colour always is <b>{value}</b>\nifunset: Round ending\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -915,10 +968,10 @@
|
|||
]
|
||||
},
|
||||
"width": {
|
||||
"description": "The stroke-width for way-elements",
|
||||
"description": "question: How wide should the line be?\nThe stroke-width for way-elements\n\ntypes: dynamic value ; string\ntitle: Line width\ninline: The line width is <b>{value} pixels</b>\ntype: pnat\nifunset: Use the default-linewidth of 7 pixels",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": [
|
||||
|
@ -929,21 +982,14 @@
|
|||
]
|
||||
},
|
||||
"dashArray": {
|
||||
"description": "A dasharray, e.g. \"5 6\"\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap',\nDefault value: \"\" (empty string == full line)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"description": "question: Should a dasharray be used to render the lines?\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap, ...'. For example, `5 6` will be 5 pixels of line followed by a 6 pixel gap.\nCannot be a dynamic property due to a mapbox limitation\nifunset: Ways are rendered with a full line",
|
||||
"type": "string"
|
||||
},
|
||||
"lineCap": {
|
||||
"description": "The form at the end of a line",
|
||||
"description": "question: What form should the line-ending have?\nsuggestions: return [{if:\"value=round\",then:\"Round endings\"}, {if: \"value=square\", then: \"square endings\"}, {if: \"value=butt\", then: \"no ending (square ending at the end, without padding)\"}]\ntypes: dynamic value ; string\ntitle: Line Cap\nifunset: Use the default value (round ending)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -951,10 +997,10 @@
|
|||
]
|
||||
},
|
||||
"fillColor": {
|
||||
"description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line.\nUse '#00000000' to make the fill invisible",
|
||||
"description": "question: What colour should be used as fill colour for polygons?\nifunset: The polygon fill colour will be a more transparent version of the stroke colour\nsuggestions: return [{if: \"value=#00000000\", then: \"Use a transparent fill (only render the outline)\"}]\ninline: The fill colour is <b>{value}</b>\ntypes: dynamic value ; string\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -962,10 +1008,10 @@
|
|||
]
|
||||
},
|
||||
"offset": {
|
||||
"description": "The number of pixels this line should be moved.\nUse a positive numbe to move to the right, a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details",
|
||||
"description": "question: Should the lines be moved (offsetted) with a number of pixels against the geographical lines?\nThe number of pixels this line should be moved.\nUse a positive number to move to the right in the drawing direction or a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details\nifunset: don't offset lines on the map\ninline: Pixel offset by <b>{value}</b> pixels\ntypes: dynamic value ; number\ntype: int",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
|
@ -975,61 +1021,6 @@
|
|||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"default<default|default|default[]|default[]>": {
|
||||
"description": "Rewrites and multiplies the given renderings of type T.\n\nThis can be used for introducing many similar questions automatically,\nwhich also makes translations easier.\n\n(Note that the key does _not_ need to be wrapped in {}.\nHowever, we recommend to use them if the key is used in a translation, as missing keys will be picked up and warned for by the translation scripts)\n\nFor example:\n\n```\n{\n rewrite: {\n sourceString: [\"key\", \"a|b|c\"],\n into: [\n [\"X\", 0]\n [\"Y\", 1],\n [\"Z\", 2]\n ],\n renderings: [{\n \"key\":\"a|b|c\"\n }]\n }\n}\n```\nwill result in _three_ copies (as the values to rewrite into have three values, namely:\n\n[\n {\n # The first pair: key --> X, a|b|c --> 0\n \"X\": 0\n },\n {\n \"Y\": 1\n },\n {\n \"Z\": 2\n }\n\n]",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"rewrite": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sourceString": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"into": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"into",
|
||||
"sourceString"
|
||||
]
|
||||
},
|
||||
"renderings": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"renderings",
|
||||
"rewrite"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"QuestionableTagRenderingConfigJson": {
|
||||
"description": "A QuestionableTagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
|
||||
"type": "object",
|
||||
|
@ -1760,7 +1751,7 @@
|
|||
]
|
||||
},
|
||||
"source": {
|
||||
"description": "Question: Where should the data be fetched from?\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -1897,21 +1888,18 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"mapRendering": {
|
||||
"description": "Visualisation of the items on the map\nSet 'null' explicitly if you do not want a maprendering\ngroup: maprendering\ntypes: PointRendering ; LineRendering ;",
|
||||
"pointRendering": {
|
||||
"description": "Creates points to render on the map.\nThis can render points for point-objects, lineobjects or areaobjects; use 'location' to indicate where it should be rendered\ngroup: pointrendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default<default|default|default[]|default[]>"
|
||||
}
|
||||
]
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
},
|
||||
"lineRendering": {
|
||||
"description": "Creates lines and areas to render on the map\ngroup: linerendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
"passAllFeatures": {
|
||||
|
@ -2128,6 +2116,7 @@
|
|||
},
|
||||
"required": [
|
||||
"id",
|
||||
"pointRendering",
|
||||
"source"
|
||||
],
|
||||
"additionalProperties": false
|
||||
|
@ -2162,7 +2151,7 @@
|
|||
]
|
||||
},
|
||||
"source": {
|
||||
"description": "Question: Where should the data be fetched from?\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -2299,21 +2288,18 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"mapRendering": {
|
||||
"description": "Visualisation of the items on the map\nSet 'null' explicitly if you do not want a maprendering\ngroup: maprendering\ntypes: PointRendering ; LineRendering ;",
|
||||
"pointRendering": {
|
||||
"description": "Creates points to render on the map.\nThis can render points for point-objects, lineobjects or areaobjects; use 'location' to indicate where it should be rendered\ngroup: pointrendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default<default|default|default[]|default[]>"
|
||||
}
|
||||
]
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
},
|
||||
"lineRendering": {
|
||||
"description": "Creates lines and areas to render on the map\ngroup: linerendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
"passAllFeatures": {
|
||||
|
|
|
@ -602,6 +602,37 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object"
|
||||
},
|
||||
|
@ -721,22 +752,43 @@ export default {
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"location": {
|
||||
"description": "All the locations that this point should be rendered at.\nPossible values are:\n- `point`: only renders points at their location\n- `centroid`: show a symbol at the centerpoint of a (multi)Linestring and (multi)polygon. Points will _not_ be rendered with this\n- `projected_centerpoint`: Only on (multi)linestrings: calculate the centerpoint and snap it to the way\n- `start` and `end`: only on linestrings: add a point to the first/last coordinate of the LineString",
|
||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line\"}]",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"icon": {
|
||||
"description": "The icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one can use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"marker": {
|
||||
"description": "question: What marker should be used to\nThe icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one c an use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"icon": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"required": [
|
||||
"icon"
|
||||
]
|
||||
}
|
||||
},
|
||||
"iconBadges": {
|
||||
"description": "A list of extra badges to show next to the icon as small badge\nThey will be added as a 25% height icon at the bottom right of the icon, with all the badges in a flex layout.\n\nNote: strings are interpreted as icons, so layering and substituting is supported. You can use `circle:white;./my_icon.svg` to add a background circle",
|
||||
|
@ -778,7 +830,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"anchor": {
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\nFor example, a feature attached to the ground can use 'bottom' as zooming in will give the appearance of being anchored to a fixed location.",
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\n\nifunset: Use MapComplete-default (<b>center</b>)\nsuggestions: return [{if: \"value=center\", then: \"Place the <b>center</b> of the icon on the geographical location\"},{if: \"value=top\", then: \"Place the <b>top</b> of the icon on the geographical location\"},{if: \"value=bottom\", then: \"Place the <b>bottom</b> of the icon on the geographical location\"},{if: \"value=left\", then: \"Place the <b>left</b> of the icon on the geographical location\"},{if: \"value=right\", then: \"Place the <b>right</b> of the icon on the geographical location\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -800,7 +852,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"label": {
|
||||
"description": "A HTML-fragment that is shown below the icon, for example:\n<div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\nNote that, if the wayhandling hides the icon then no label is shown as well.",
|
||||
"description": "question: What label should be shown beneath the marker?\nFor example: <div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\ntypes: Dynamic value | string\ninline: Always show label <b>{value}</b> beneath the marker",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -811,7 +863,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"css": {
|
||||
"description": "A snippet of css code which is applied onto the container of the entire marker",
|
||||
"description": "question: What CSS should be applied to the entire marker?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\nThis will be applied to the _container_ containing both the marker and the label\ninline: Apply CSS-style <b>{value}</b> to the _entire marker_\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -822,7 +874,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"cssClasses": {
|
||||
"description": "A snippet of css-classes which are applied onto the container of the entire marker. They can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the entire marker?\nThis will be applied to the _container_ containing both the marker and the label\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the entire container\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -833,7 +885,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"labelCss": {
|
||||
"description": "Css that is applied onto the label",
|
||||
"description": "question: What CSS should be applied to the label?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\ninline: Apply CSS-style <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -844,7 +896,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"labelCssClasses": {
|
||||
"description": "Css classes that are applied onto the label; can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the label?\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -870,7 +922,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"rotationAlignment": {
|
||||
"description": "If the map is rotated, the icon will still point to the north if no rotation was applied",
|
||||
"description": "question: Should the icon be rotated or tilted if the map is rotated or tilted?\nifunset: Do not rotate or tilt icons. Always keep the icons straight\nsuggestions: return [{if: \"value=canvas\", then: \"If the map is tilted, tilt the icon as well. This gives the impression of an icon that is glued to the ground.\"}, {if: \"value=map\", then: \"If the map is rotated, rotate the icon as well. This gives the impression of an icon that floats perpendicular above the ground.\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -894,10 +946,10 @@ export default {
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"color": {
|
||||
"description": "The color for way-elements and SVG-elements.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead",
|
||||
"description": "question: What color should lines be drawn in?\n\nFor an area, this will be the colour of the outside line.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead\n\ntypes: dynamic value ; string\ntitle: Line Colour\ninline: The line colour always is <b>{value}</b>\nifunset: Round ending\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -905,10 +957,10 @@ export default {
|
|||
]
|
||||
},
|
||||
"width": {
|
||||
"description": "The stroke-width for way-elements",
|
||||
"description": "question: How wide should the line be?\nThe stroke-width for way-elements\n\ntypes: dynamic value ; string\ntitle: Line width\ninline: The line width is <b>{value} pixels</b>\ntype: pnat\nifunset: Use the default-linewidth of 7 pixels",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": [
|
||||
|
@ -919,21 +971,14 @@ export default {
|
|||
]
|
||||
},
|
||||
"dashArray": {
|
||||
"description": "A dasharray, e.g. \"5 6\"\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap',\nDefault value: \"\" (empty string == full line)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"description": "question: Should a dasharray be used to render the lines?\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap, ...'. For example, `5 6` will be 5 pixels of line followed by a 6 pixel gap.\nCannot be a dynamic property due to a mapbox limitation\nifunset: Ways are rendered with a full line",
|
||||
"type": "string"
|
||||
},
|
||||
"lineCap": {
|
||||
"description": "The form at the end of a line",
|
||||
"description": "question: What form should the line-ending have?\nsuggestions: return [{if:\"value=round\",then:\"Round endings\"}, {if: \"value=square\", then: \"square endings\"}, {if: \"value=butt\", then: \"no ending (square ending at the end, without padding)\"}]\ntypes: dynamic value ; string\ntitle: Line Cap\nifunset: Use the default value (round ending)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -941,10 +986,10 @@ export default {
|
|||
]
|
||||
},
|
||||
"fillColor": {
|
||||
"description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line.\nUse '#00000000' to make the fill invisible",
|
||||
"description": "question: What colour should be used as fill colour for polygons?\nifunset: The polygon fill colour will be a more transparent version of the stroke colour\nsuggestions: return [{if: \"value=#00000000\", then: \"Use a transparent fill (only render the outline)\"}]\ninline: The fill colour is <b>{value}</b>\ntypes: dynamic value ; string\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -952,10 +997,10 @@ export default {
|
|||
]
|
||||
},
|
||||
"offset": {
|
||||
"description": "The number of pixels this line should be moved.\nUse a positive numbe to move to the right, a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details",
|
||||
"description": "question: Should the lines be moved (offsetted) with a number of pixels against the geographical lines?\nThe number of pixels this line should be moved.\nUse a positive number to move to the right in the drawing direction or a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details\nifunset: don't offset lines on the map\ninline: Pixel offset by <b>{value}</b> pixels\ntypes: dynamic value ; number\ntype: int",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
|
@ -964,60 +1009,6 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
"default<default|default|default[]|default[]>": {
|
||||
"description": "Rewrites and multiplies the given renderings of type T.\n\nThis can be used for introducing many similar questions automatically,\nwhich also makes translations easier.\n\n(Note that the key does _not_ need to be wrapped in {}.\nHowever, we recommend to use them if the key is used in a translation, as missing keys will be picked up and warned for by the translation scripts)\n\nFor example:\n\n```\n{\n rewrite: {\n sourceString: [\"key\", \"a|b|c\"],\n into: [\n [\"X\", 0]\n [\"Y\", 1],\n [\"Z\", 2]\n ],\n renderings: [{\n \"key\":\"a|b|c\"\n }]\n }\n}\n```\nwill result in _three_ copies (as the values to rewrite into have three values, namely:\n\n[\n {\n # The first pair: key --> X, a|b|c --> 0\n \"X\": 0\n },\n {\n \"Y\": 1\n },\n {\n \"Z\": 2\n }\n\n]",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"rewrite": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sourceString": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"into": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"into",
|
||||
"sourceString"
|
||||
]
|
||||
},
|
||||
"renderings": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"renderings",
|
||||
"rewrite"
|
||||
]
|
||||
},
|
||||
"QuestionableTagRenderingConfigJson": {
|
||||
"description": "A QuestionableTagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nIf the desired tags are missing and a question is defined, a question will be shown instead.",
|
||||
"type": "object",
|
||||
|
@ -1739,7 +1730,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"source": {
|
||||
"description": "Question: Where should the data be fetched from?\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -1876,21 +1867,18 @@ export default {
|
|||
}
|
||||
]
|
||||
},
|
||||
"mapRendering": {
|
||||
"description": "Visualisation of the items on the map\nSet 'null' explicitly if you do not want a maprendering\ngroup: maprendering\ntypes: PointRendering ; LineRendering ;",
|
||||
"pointRendering": {
|
||||
"description": "Creates points to render on the map.\nThis can render points for point-objects, lineobjects or areaobjects; use 'location' to indicate where it should be rendered\ngroup: pointrendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default<default|default|default[]|default[]>"
|
||||
}
|
||||
]
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
},
|
||||
"lineRendering": {
|
||||
"description": "Creates lines and areas to render on the map\ngroup: linerendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
"passAllFeatures": {
|
||||
|
@ -2107,6 +2095,7 @@ export default {
|
|||
},
|
||||
"required": [
|
||||
"id",
|
||||
"pointRendering",
|
||||
"source"
|
||||
]
|
||||
},
|
||||
|
@ -2140,7 +2129,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"source": {
|
||||
"description": "Question: Where should the data be fetched from?\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\ngroup: Basic",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -2277,21 +2266,18 @@ export default {
|
|||
}
|
||||
]
|
||||
},
|
||||
"mapRendering": {
|
||||
"description": "Visualisation of the items on the map\nSet 'null' explicitly if you do not want a maprendering\ngroup: maprendering\ntypes: PointRendering ; LineRendering ;",
|
||||
"pointRendering": {
|
||||
"description": "Creates points to render on the map.\nThis can render points for point-objects, lineobjects or areaobjects; use 'location' to indicate where it should be rendered\ngroup: pointrendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/default_4"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default_5"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/default<default|default|default[]|default[]>"
|
||||
}
|
||||
]
|
||||
"$ref": "#/definitions/default_4"
|
||||
}
|
||||
},
|
||||
"lineRendering": {
|
||||
"description": "Creates lines and areas to render on the map\ngroup: linerendering",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/default_5"
|
||||
}
|
||||
},
|
||||
"passAllFeatures": {
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"color": {
|
||||
"description": "The color for way-elements and SVG-elements.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead",
|
||||
"description": "question: What color should lines be drawn in?\n\nFor an area, this will be the colour of the outside line.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead\n\ntypes: dynamic value ; string\ntitle: Line Colour\ninline: The line colour always is <b>{value}</b>\nifunset: Round ending\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -14,10 +14,10 @@
|
|||
]
|
||||
},
|
||||
"width": {
|
||||
"description": "The stroke-width for way-elements",
|
||||
"description": "question: How wide should the line be?\nThe stroke-width for way-elements\n\ntypes: dynamic value ; string\ntitle: Line width\ninline: The line width is <b>{value} pixels</b>\ntype: pnat\nifunset: Use the default-linewidth of 7 pixels",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": [
|
||||
|
@ -28,21 +28,14 @@
|
|||
]
|
||||
},
|
||||
"dashArray": {
|
||||
"description": "A dasharray, e.g. \"5 6\"\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap',\nDefault value: \"\" (empty string == full line)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"description": "question: Should a dasharray be used to render the lines?\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap, ...'. For example, `5 6` will be 5 pixels of line followed by a 6 pixel gap.\nCannot be a dynamic property due to a mapbox limitation\nifunset: Ways are rendered with a full line",
|
||||
"type": "string"
|
||||
},
|
||||
"lineCap": {
|
||||
"description": "The form at the end of a line",
|
||||
"description": "question: What form should the line-ending have?\nsuggestions: return [{if:\"value=round\",then:\"Round endings\"}, {if: \"value=square\", then: \"square endings\"}, {if: \"value=butt\", then: \"no ending (square ending at the end, without padding)\"}]\ntypes: dynamic value ; string\ntitle: Line Cap\nifunset: Use the default value (round ending)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -50,10 +43,10 @@
|
|||
]
|
||||
},
|
||||
"fillColor": {
|
||||
"description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line.\nUse '#00000000' to make the fill invisible",
|
||||
"description": "question: What colour should be used as fill colour for polygons?\nifunset: The polygon fill colour will be a more transparent version of the stroke colour\nsuggestions: return [{if: \"value=#00000000\", then: \"Use a transparent fill (only render the outline)\"}]\ninline: The fill colour is <b>{value}</b>\ntypes: dynamic value ; string\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -61,10 +54,10 @@
|
|||
]
|
||||
},
|
||||
"offset": {
|
||||
"description": "The number of pixels this line should be moved.\nUse a positive numbe to move to the right, a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details",
|
||||
"description": "question: Should the lines be moved (offsetted) with a number of pixels against the geographical lines?\nThe number of pixels this line should be moved.\nUse a positive number to move to the right in the drawing direction or a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details\nifunset: don't offset lines on the map\ninline: Pixel offset by <b>{value}</b> pixels\ntypes: dynamic value ; number\ntype: int",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
|
@ -375,6 +368,38 @@
|
|||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
|
|
|
@ -3,10 +3,10 @@ export default {
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"color": {
|
||||
"description": "The color for way-elements and SVG-elements.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead",
|
||||
"description": "question: What color should lines be drawn in?\n\nFor an area, this will be the colour of the outside line.\nIf the value starts with \"--\", the style of the body element will be queried for the corresponding variable instead\n\ntypes: dynamic value ; string\ntitle: Line Colour\ninline: The line colour always is <b>{value}</b>\nifunset: Round ending\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -14,10 +14,10 @@ export default {
|
|||
]
|
||||
},
|
||||
"width": {
|
||||
"description": "The stroke-width for way-elements",
|
||||
"description": "question: How wide should the line be?\nThe stroke-width for way-elements\n\ntypes: dynamic value ; string\ntitle: Line width\ninline: The line width is <b>{value} pixels</b>\ntype: pnat\nifunset: Use the default-linewidth of 7 pixels",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": [
|
||||
|
@ -28,21 +28,14 @@ export default {
|
|||
]
|
||||
},
|
||||
"dashArray": {
|
||||
"description": "A dasharray, e.g. \"5 6\"\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap',\nDefault value: \"\" (empty string == full line)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"description": "question: Should a dasharray be used to render the lines?\nThe dasharray defines 'pixels of line, pixels of gap, pixels of line, pixels of gap, ...'. For example, `5 6` will be 5 pixels of line followed by a 6 pixel gap.\nCannot be a dynamic property due to a mapbox limitation\nifunset: Ways are rendered with a full line",
|
||||
"type": "string"
|
||||
},
|
||||
"lineCap": {
|
||||
"description": "The form at the end of a line",
|
||||
"description": "question: What form should the line-ending have?\nsuggestions: return [{if:\"value=round\",then:\"Round endings\"}, {if: \"value=square\", then: \"square endings\"}, {if: \"value=butt\", then: \"no ending (square ending at the end, without padding)\"}]\ntypes: dynamic value ; string\ntitle: Line Cap\nifunset: Use the default value (round ending)",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -50,10 +43,10 @@ export default {
|
|||
]
|
||||
},
|
||||
"fillColor": {
|
||||
"description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line.\nUse '#00000000' to make the fill invisible",
|
||||
"description": "question: What colour should be used as fill colour for polygons?\nifunset: The polygon fill colour will be a more transparent version of the stroke colour\nsuggestions: return [{if: \"value=#00000000\", then: \"Use a transparent fill (only render the outline)\"}]\ninline: The fill colour is <b>{value}</b>\ntypes: dynamic value ; string\ntype: color",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
|
@ -61,10 +54,10 @@ export default {
|
|||
]
|
||||
},
|
||||
"offset": {
|
||||
"description": "The number of pixels this line should be moved.\nUse a positive numbe to move to the right, a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details",
|
||||
"description": "question: Should the lines be moved (offsetted) with a number of pixels against the geographical lines?\nThe number of pixels this line should be moved.\nUse a positive number to move to the right in the drawing direction or a negative to move to the left (left/right as defined by the drawing direction of the line).\n\nIMPORTANT: MapComplete will already normalize 'key:both:property' and 'key:both' into the corresponding 'key:left' and 'key:right' tagging (same for 'sidewalk=left/right/both' which is rewritten to 'sidewalk:left' and 'sidewalk:right')\nThis simplifies programming. Refer to the CalculatedTags.md-documentation for more details\nifunset: don't offset lines on the map\ninline: Pixel offset by <b>{value}</b> pixels\ntypes: dynamic value ; number\ntype: int",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"$ref": "#/definitions/MinimalTagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
|
@ -369,6 +362,37 @@ export default {
|
|||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#"
|
||||
|
|
|
@ -409,6 +409,38 @@
|
|||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
|
|
|
@ -403,6 +403,37 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object"
|
||||
}
|
||||
|
|
90
Docs/Schemas/MinimalTagRenderingConfigJson.schema.json
Normal file
90
Docs/Schemas/MinimalTagRenderingConfigJson.schema.json
Normal file
|
@ -0,0 +1,90 @@
|
|||
{
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"TagConfigJson": {
|
||||
"description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"{and:TagConfigJson[];}": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"and": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"and"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"{or:TagConfigJson[];}": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"additionalProperties": false
|
||||
}
|
87
Docs/Schemas/MinimalTagRenderingConfigJsonJSC.ts
Normal file
87
Docs/Schemas/MinimalTagRenderingConfigJsonJSC.ts
Normal file
|
@ -0,0 +1,87 @@
|
|||
export default {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"TagConfigJson": {
|
||||
"description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"{and:TagConfigJson[];}": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"and": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"and"
|
||||
]
|
||||
},
|
||||
"{or:TagConfigJson[];}": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
]
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#"
|
||||
}
|
|
@ -1,66 +0,0 @@
|
|||
{
|
||||
"$ref": "#/definitions/OrTagConfigJson",
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"definitions": {
|
||||
"TagConfigJson": {
|
||||
"description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AndTagConfigJson"
|
||||
},
|
||||
{
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"AndTagConfigJson": {
|
||||
"description": "Chain many tags, to match, a single of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"and": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"and"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"OrTagConfigJson": {
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"additionalProperties": false
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
export default {
|
||||
"$ref": "#/definitions/OrTagConfigJson",
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"definitions": {
|
||||
"TagConfigJson": {
|
||||
"description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AndTagConfigJson"
|
||||
},
|
||||
{
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"AndTagConfigJson": {
|
||||
"description": "Chain many tags, to match, a single of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"and": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"and"
|
||||
]
|
||||
},
|
||||
"OrTagConfigJson": {
|
||||
"description": "Chain many tags, to match, all of these should be true\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for documentation",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"or": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/TagConfigJson"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"or"
|
||||
]
|
||||
}
|
||||
},
|
||||
"$schema": "http://json-schema.org/draft-07/schema#"
|
||||
}
|
|
@ -3,22 +3,43 @@
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"location": {
|
||||
"description": "All the locations that this point should be rendered at.\nPossible values are:\n- `point`: only renders points at their location\n- `centroid`: show a symbol at the centerpoint of a (multi)Linestring and (multi)polygon. Points will _not_ be rendered with this\n- `projected_centerpoint`: Only on (multi)linestrings: calculate the centerpoint and snap it to the way\n- `start` and `end`: only on linestrings: add a point to the first/last coordinate of the LineString",
|
||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line\"}]",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"icon": {
|
||||
"description": "The icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one can use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"marker": {
|
||||
"description": "question: What marker should be used to\nThe icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one c an use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"icon": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"required": [
|
||||
"icon"
|
||||
]
|
||||
}
|
||||
},
|
||||
"iconBadges": {
|
||||
"description": "A list of extra badges to show next to the icon as small badge\nThey will be added as a 25% height icon at the bottom right of the icon, with all the badges in a flex layout.\n\nNote: strings are interpreted as icons, so layering and substituting is supported. You can use `circle:white;./my_icon.svg` to add a background circle",
|
||||
|
@ -60,7 +81,7 @@
|
|||
]
|
||||
},
|
||||
"anchor": {
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\nFor example, a feature attached to the ground can use 'bottom' as zooming in will give the appearance of being anchored to a fixed location.",
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\n\nifunset: Use MapComplete-default (<b>center</b>)\nsuggestions: return [{if: \"value=center\", then: \"Place the <b>center</b> of the icon on the geographical location\"},{if: \"value=top\", then: \"Place the <b>top</b> of the icon on the geographical location\"},{if: \"value=bottom\", then: \"Place the <b>bottom</b> of the icon on the geographical location\"},{if: \"value=left\", then: \"Place the <b>left</b> of the icon on the geographical location\"},{if: \"value=right\", then: \"Place the <b>right</b> of the icon on the geographical location\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -82,7 +103,7 @@
|
|||
]
|
||||
},
|
||||
"label": {
|
||||
"description": "A HTML-fragment that is shown below the icon, for example:\n<div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\nNote that, if the wayhandling hides the icon then no label is shown as well.",
|
||||
"description": "question: What label should be shown beneath the marker?\nFor example: <div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\ntypes: Dynamic value | string\ninline: Always show label <b>{value}</b> beneath the marker",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -93,7 +114,7 @@
|
|||
]
|
||||
},
|
||||
"css": {
|
||||
"description": "A snippet of css code which is applied onto the container of the entire marker",
|
||||
"description": "question: What CSS should be applied to the entire marker?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\nThis will be applied to the _container_ containing both the marker and the label\ninline: Apply CSS-style <b>{value}</b> to the _entire marker_\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -104,7 +125,7 @@
|
|||
]
|
||||
},
|
||||
"cssClasses": {
|
||||
"description": "A snippet of css-classes which are applied onto the container of the entire marker. They can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the entire marker?\nThis will be applied to the _container_ containing both the marker and the label\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the entire container\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -115,7 +136,7 @@
|
|||
]
|
||||
},
|
||||
"labelCss": {
|
||||
"description": "Css that is applied onto the label",
|
||||
"description": "question: What CSS should be applied to the label?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\ninline: Apply CSS-style <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -126,7 +147,7 @@
|
|||
]
|
||||
},
|
||||
"labelCssClasses": {
|
||||
"description": "Css classes that are applied onto the label; can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the label?\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -152,7 +173,7 @@
|
|||
]
|
||||
},
|
||||
"rotationAlignment": {
|
||||
"description": "If the map is rotated, the icon will still point to the north if no rotation was applied",
|
||||
"description": "question: Should the icon be rotated or tilted if the map is rotated or tilted?\nifunset: Do not rotate or tilt icons. Always keep the icons straight\nsuggestions: return [{if: \"value=canvas\", then: \"If the map is tilted, tilt the icon as well. This gives the impression of an icon that is glued to the ground.\"}, {if: \"value=map\", then: \"If the map is rotated, rotate the icon as well. This gives the impression of an icon that floats perpendicular above the ground.\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
|
|
@ -3,22 +3,43 @@ export default {
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"location": {
|
||||
"description": "All the locations that this point should be rendered at.\nPossible values are:\n- `point`: only renders points at their location\n- `centroid`: show a symbol at the centerpoint of a (multi)Linestring and (multi)polygon. Points will _not_ be rendered with this\n- `projected_centerpoint`: Only on (multi)linestrings: calculate the centerpoint and snap it to the way\n- `start` and `end`: only on linestrings: add a point to the first/last coordinate of the LineString",
|
||||
"description": "question: At what location should this icon be shown?\nmultianswer: true\nsuggestions: return [{if: \"value=point\",then: \"Show an icon for point (node) objects\"},{if: \"value=centroid\",then: \"Show an icon for line or polygon (way) objects at their centroid location\"}, {if: \"value=start\",then: \"Show an icon for line (way) objects at the start\"},{if: \"value=end\",then: \"Show an icon for line (way) object at the end\"},{if: \"value=projected_centerpoint\",then: \"Show an icon for line (way) object near the centroid location, but moved onto the line\"}]",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"icon": {
|
||||
"description": "The icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one can use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
"marker": {
|
||||
"description": "question: What marker should be used to\nThe icon for an element.\nNote that this also doubles as the icon for this layer (rendered with the overpass-tags) ánd the icon in the presets.\n\nThe result of the icon is rendered as follows:\nthe resulting string is interpreted as a _list_ of items, separated by \";\". The bottommost layer is the first layer.\nAs a result, on could use a generic pin, then overlay it with a specific icon.\nTo make things even more practical, one c an use all SVG's from the folder \"assets/svg\" and _substitute the color_ in it.\nE.g. to draw a red pin, use \"pin:#f00\", to have a green circle with your icon on top, use `circle:#0f0;<path to my icon.svg>`\n\nType: icon",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"icon": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
"required": [
|
||||
"icon"
|
||||
]
|
||||
}
|
||||
},
|
||||
"iconBadges": {
|
||||
"description": "A list of extra badges to show next to the icon as small badge\nThey will be added as a 25% height icon at the bottom right of the icon, with all the badges in a flex layout.\n\nNote: strings are interpreted as icons, so layering and substituting is supported. You can use `circle:white;./my_icon.svg` to add a background circle",
|
||||
|
@ -60,7 +81,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"anchor": {
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\nFor example, a feature attached to the ground can use 'bottom' as zooming in will give the appearance of being anchored to a fixed location.",
|
||||
"description": "question: What is the anchorpoint of the icon?\n\nThis matches the geographical point with a location on the icon.\n\nifunset: Use MapComplete-default (<b>center</b>)\nsuggestions: return [{if: \"value=center\", then: \"Place the <b>center</b> of the icon on the geographical location\"},{if: \"value=top\", then: \"Place the <b>top</b> of the icon on the geographical location\"},{if: \"value=bottom\", then: \"Place the <b>bottom</b> of the icon on the geographical location\"},{if: \"value=left\", then: \"Place the <b>left</b> of the icon on the geographical location\"},{if: \"value=right\", then: \"Place the <b>right</b> of the icon on the geographical location\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -82,7 +103,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"label": {
|
||||
"description": "A HTML-fragment that is shown below the icon, for example:\n<div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\nNote that, if the wayhandling hides the icon then no label is shown as well.",
|
||||
"description": "question: What label should be shown beneath the marker?\nFor example: <div style=\"background: white\">{name}</div>\n\nIf the icon is undefined, then the label is shown in the center of the feature.\ntypes: Dynamic value | string\ninline: Always show label <b>{value}</b> beneath the marker",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -93,7 +114,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"css": {
|
||||
"description": "A snippet of css code which is applied onto the container of the entire marker",
|
||||
"description": "question: What CSS should be applied to the entire marker?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\nThis will be applied to the _container_ containing both the marker and the label\ninline: Apply CSS-style <b>{value}</b> to the _entire marker_\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -104,7 +125,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"cssClasses": {
|
||||
"description": "A snippet of css-classes which are applied onto the container of the entire marker. They can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the entire marker?\nThis will be applied to the _container_ containing both the marker and the label\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the entire container\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -115,7 +136,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"labelCss": {
|
||||
"description": "Css that is applied onto the label",
|
||||
"description": "question: What CSS should be applied to the label?\nYou can set the css-properties here, e.g. `background: red; font-size: 12px; `\ninline: Apply CSS-style <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -126,7 +147,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"labelCssClasses": {
|
||||
"description": "Css classes that are applied onto the label; can be space-separated",
|
||||
"description": "question: Which CSS-classes should be applied to the label?\n\nThe classes should be separated by a space (` `)\nYou can use most Tailwind-css classes, see https://tailwindcss.com/ for more information\nFor example: `center bg-gray-500 mx-2 my-1 rounded-full`\ninline: Apply CSS-classes <b>{value}</b> to the label\ntypes: Dynamic value ; string",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
@ -152,7 +173,7 @@ export default {
|
|||
]
|
||||
},
|
||||
"rotationAlignment": {
|
||||
"description": "If the map is rotated, the icon will still point to the north if no rotation was applied",
|
||||
"description": "question: Should the icon be rotated or tilted if the map is rotated or tilted?\nifunset: Do not rotate or tilt icons. Always keep the icons straight\nsuggestions: return [{if: \"value=canvas\", then: \"If the map is tilted, tilt the icon as well. This gives the impression of an icon that is glued to the ground.\"}, {if: \"value=map\", then: \"If the map is rotated, rotate the icon as well. This gives the impression of an icon that floats perpendicular above the ground.\"}]",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/TagRenderingConfigJson"
|
||||
|
|
|
@ -497,6 +497,38 @@
|
|||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
|
|
|
@ -491,6 +491,37 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object"
|
||||
},
|
||||
|
|
|
@ -336,6 +336,38 @@
|
|||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
|
|
|
@ -330,6 +330,37 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
"MinimalTagRenderingConfigJson": {
|
||||
"description": "Mostly used for lineRendering and pointRendering",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"render": {
|
||||
"description": "question: What value should be rendered?\n\nThis piece of text will be shown in the infobox.\nNote that \"&LBRACEkey&RBRACE\"-parts are substituted by the corresponding values of the element.\n\nThis value will be used if there is no mapping which matches (or there are no matches)\nNote that this is a HTML-interpreted value, so you can add links as e.g. '<a href='{website}'>{website}</a>' or include images such as `This is of type A <br><img src='typeA-icon.svg' />`",
|
||||
"type": "string"
|
||||
},
|
||||
"mappings": {
|
||||
"description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"if": {
|
||||
"$ref": "#/definitions/TagConfigJson",
|
||||
"description": "question: When should this single mapping match?\n\nIf this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
|
||||
},
|
||||
"then": {
|
||||
"description": "question: What text should be shown?\n\nIf the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"if",
|
||||
"then"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Record<string,string[]>": {
|
||||
"type": "object"
|
||||
},
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -270,25 +270,29 @@
|
|||
"condition": "addr:housenumber~*"
|
||||
},
|
||||
"iconSize": "50,50",
|
||||
"icon": {
|
||||
"render": "./assets/layers/address/housenumber_blank.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
{
|
||||
"and": [
|
||||
"addr:housenumber=",
|
||||
"nohousenumber!=yes"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/address/housenumber_blank.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
{
|
||||
"and": [
|
||||
"addr:housenumber=",
|
||||
"nohousenumber!=yes"
|
||||
]
|
||||
},
|
||||
"addr:street="
|
||||
]
|
||||
},
|
||||
"addr:street="
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/uk_addresses/housenumber_unknown.svg"
|
||||
"then": "./assets/themes/uk_addresses/housenumber_unknown.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
|
|
|
@ -1278,104 +1278,91 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": {
|
||||
"render": "./assets/themes/advertising/sign.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"advertising=billboard"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/advertising/billboard.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=board",
|
||||
"then": "./assets/themes/advertising/board.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=column",
|
||||
"then": "./assets/themes/advertising/column.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=flag",
|
||||
"then": "./assets/themes/advertising/flag.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"advertising=poster_box",
|
||||
"_referencing_ways=[\"way/-1\"]"
|
||||
]
|
||||
},
|
||||
"then": "brick_wall_square;./assets/themes/advertising/poster_box_no_support.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"advertising=poster_box",
|
||||
"_referencing_ways~*"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/advertising/poster_box_no_support.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=poster_box",
|
||||
"then": "./assets/themes/advertising/poster_box.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"advertising=screen",
|
||||
"_referencing_ways=[\"way/-1\"]"
|
||||
]
|
||||
},
|
||||
"then": "brick_wall_square;./assets/themes/advertising/screen_no_support.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"advertising=screen",
|
||||
"_referencing_ways~*"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/advertising/screen_no_support.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=screen",
|
||||
"then": "./assets/themes/advertising/screen.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=sculpture",
|
||||
"then": "./assets/themes/advertising/sculpture.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"advertising=sign",
|
||||
"_referencing_ways=[\"way/-1\"]"
|
||||
]
|
||||
},
|
||||
"then": "brick_wall_square;./assets/themes/advertising/sign.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=sign",
|
||||
"then": "./assets/themes/advertising/sign.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=tarp",
|
||||
"then": "./assets/themes/advertising/tarp.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=totem",
|
||||
"then": "./assets/themes/advertising/totem.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=wall_painting",
|
||||
"then": "./assets/themes/advertising/wall_painting.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"mappings": [
|
||||
{
|
||||
"if": "_referencing_ways=[\"way/-1\"]",
|
||||
"then": "brick_wall_square"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/themes/advertising/sign.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"advertising=billboard"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/advertising/billboard.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=board",
|
||||
"then": "./assets/themes/advertising/board.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=column",
|
||||
"then": "./assets/themes/advertising/column.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=flag",
|
||||
"then": "./assets/themes/advertising/flag.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"advertising=poster_box",
|
||||
"_referencing_ways~*"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/advertising/poster_box_no_support.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=poster_box",
|
||||
"then": "./assets/themes/advertising/poster_box.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"advertising=screen",
|
||||
"_referencing_ways~*"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/advertising/screen_no_support.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=screen",
|
||||
"then": "./assets/themes/advertising/screen.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=sculpture",
|
||||
"then": "./assets/themes/advertising/sculpture.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=sign",
|
||||
"then": "./assets/themes/advertising/sign.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=tarp",
|
||||
"then": "./assets/themes/advertising/tarp.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=totem",
|
||||
"then": "./assets/themes/advertising/totem.svg"
|
||||
},
|
||||
{
|
||||
"if": "advertising=wall_painting",
|
||||
"then": "./assets/themes/advertising/wall_painting.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"iconSize": {
|
||||
"render": "40,40",
|
||||
"mappings": [
|
||||
|
|
|
@ -378,13 +378,17 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/hailhydrant/Twemoji_1f691.svg",
|
||||
"iconSize": "35,35",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/hailhydrant/Twemoji_1f691.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -800,7 +800,15 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/themes/artwork/artwork.svg",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/themes/artwork/artwork.svg"
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
|
@ -812,15 +820,5 @@
|
|||
"color": "#0000ff",
|
||||
"width": "10"
|
||||
}
|
||||
],
|
||||
"pl": {
|
||||
"title": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "{name}"
|
||||
}
|
||||
},
|
||||
"render": "turbina wiatrowa"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -476,6 +476,23 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/atm/atm.svg"
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
]
|
||||
}
|
||||
],
|
||||
"filter": [
|
||||
"open_now",
|
||||
{
|
||||
|
@ -495,14 +512,5 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/layers/atm/atm.svg",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
}
|
||||
|
|
|
@ -107,7 +107,15 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/layers/bank/bank.svg",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/bank/bank.svg"
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
|
|
|
@ -604,7 +604,11 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/layers/barrier/barrier.svg",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/barrier/barrier.svg"
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point"
|
||||
]
|
||||
|
|
|
@ -1125,7 +1125,6 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:#99bd54;./assets/layers/bench/bench.svg",
|
||||
"iconSize": "35,35",
|
||||
"iconBadges": [
|
||||
{
|
||||
|
@ -1137,7 +1136,16 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "#99bd54"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/bench/bench.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -259,12 +259,20 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/themes/benches/bench_public_transport.svg",
|
||||
"iconSize": "35,35",
|
||||
"location": [
|
||||
"point"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/themes/benches/bench_public_transport.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -328,7 +328,6 @@
|
|||
"deletion": true,
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "pin:#22ff55;./assets/layers/bicycle_library/bicycle_library.svg",
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": "opening_hours~*",
|
||||
|
@ -344,7 +343,16 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "bottom"
|
||||
"anchor": "bottom",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "pin",
|
||||
"color": "#22ff55"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/bicycle_library/bicycle_library.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -586,13 +586,17 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/bicycle_rental/logo.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/bicycle_rental/logo.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -316,7 +316,6 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "pin:#ffffff;./assets/layers/bicycle_tube_vending_machine/pinIcon.svg",
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": {
|
||||
|
@ -333,7 +332,16 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "bottom"
|
||||
"anchor": "bottom",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "pin",
|
||||
"color": "#ffffff"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/bicycle_tube_vending_machine/pinIcon.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -351,12 +351,20 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "pin:#684c2b;./assets/layers/bike_cafe/bike_cafe.svg",
|
||||
"iconSize": "50,50",
|
||||
"anchor": "bottom",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": "pin",
|
||||
"color": "#684c2b"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/bike_cafe/bike_cafe.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -249,7 +249,6 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/layers/bike_cleaning/bike_cleaning.svg",
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": {
|
||||
|
@ -270,7 +269,12 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "bottom"
|
||||
"anchor": "bottom",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/bike_cleaning/bike_cleaning.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -716,13 +716,21 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "pin:#5473de;./assets/layers/bike_parking/parking.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "bottom"
|
||||
"anchor": "bottom",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "pin",
|
||||
"color": "#5473de"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/bike_parking/parking.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -999,53 +999,107 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "pin:#88d32c;./assets/layers/bike_repair_station/repair_station.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump=yes",
|
||||
"service:bicycle:tools=yes",
|
||||
"service:bicycle:pump:operational_status=broken"
|
||||
]
|
||||
},
|
||||
"then": "pin:#88d32c;./assets/layers/bike_repair_station/repair_station_broken_pump.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump=yes",
|
||||
"service:bicycle:tools=yes"
|
||||
]
|
||||
},
|
||||
"then": "pin:#30abf0;./assets/layers/bike_repair_station/repair_station_pump.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump:operational_status=broken",
|
||||
"service:bicycle:tools=no"
|
||||
]
|
||||
},
|
||||
"then": "pin:black;./assets/layers/bike_repair_station/broken_pump.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump=yes",
|
||||
{
|
||||
"or": [
|
||||
"service:bicycle:tools=no",
|
||||
"service:bicycle:tools="
|
||||
"marker": [
|
||||
{
|
||||
"icon": "pin",
|
||||
"color": {
|
||||
"render": "#88d32c",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump=yes",
|
||||
"service:bicycle:tools=yes",
|
||||
"service:bicycle:pump:operational_status=broken"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"then": "pin:#e1783a;./assets/layers/bike_repair_station/pump.svg"
|
||||
},
|
||||
"then": "#88d32c"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump=yes",
|
||||
"service:bicycle:tools=yes"
|
||||
]
|
||||
},
|
||||
"then": "#30abf0"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump:operational_status=broken",
|
||||
"service:bicycle:tools=no"
|
||||
]
|
||||
},
|
||||
"then": "black"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump=yes",
|
||||
{
|
||||
"or": [
|
||||
"service:bicycle:tools=no",
|
||||
"service:bicycle:tools="
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"then": "#e1783a"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/bike_repair_station/repair_station.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump=yes",
|
||||
"service:bicycle:tools=yes",
|
||||
"service:bicycle:pump:operational_status=broken"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/bike_repair_station/repair_station_broken_pump.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump=yes",
|
||||
"service:bicycle:tools=yes"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/bike_repair_station/repair_station_pump.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump:operational_status=broken",
|
||||
"service:bicycle:tools=no"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/bike_repair_station/broken_pump.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"service:bicycle:pump=yes",
|
||||
{
|
||||
"or": [
|
||||
"service:bicycle:tools=no",
|
||||
"service:bicycle:tools="
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/bike_repair_station/pump.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": "operator=De Fietsambassade Gent",
|
||||
|
|
|
@ -867,19 +867,47 @@
|
|||
"deletion": true,
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "pin:#f04c4c;./assets/layers/bike_shop/repair_shop.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "operator=De Fietsambassade Gent",
|
||||
"then": "./assets/themes/cyclofix/fietsambassade_gent_logo_small.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "pin",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "operator=De Fietsambassade Gent",
|
||||
"then": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"if": "service:bicycle:retail=yes",
|
||||
"then": "pin:#353d57;./assets/layers/bike_shop/shop.svg"
|
||||
"color": {
|
||||
"render": "#f04c4c",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "operator=De Fietsambassade Gent",
|
||||
"then": null
|
||||
},
|
||||
{
|
||||
"if": "service:bicycle:retail=yes",
|
||||
"then": "#353d57"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/bike_shop/repair_shop.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "operator=De Fietsambassade Gent",
|
||||
"then": "./assets/themes/cyclofix/fietsambassade_gent_logo_small.svg"
|
||||
},
|
||||
{
|
||||
"if": "service:bicycle:retail=yes",
|
||||
"then": "./assets/layers/bike_shop/shop.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": "opening_hours~*",
|
||||
|
|
|
@ -84,13 +84,17 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/layers/bike_themed_object/other_services.svg",
|
||||
"iconSize": "50,50",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "bottom"
|
||||
"anchor": "bottom",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/bike_themed_object/other_services.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -167,12 +167,20 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/layers/binocular/telescope.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/binocular/telescope.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -408,21 +408,25 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/birdhide/birdhide.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"building=yes",
|
||||
"shelter=yes",
|
||||
"amenity=shelter"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/birdhide/birdshelter.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/birdhide/birdhide.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"building=yes",
|
||||
"shelter=yes",
|
||||
"amenity=shelter"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/birdhide/birdshelter.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
|
|
|
@ -333,19 +333,6 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "circle:white;./assets/layers/cafe_pub/pub.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "amenity=cafe",
|
||||
"then": "circle:white;./assets/layers/cafe_pub/cafe.svg"
|
||||
},
|
||||
{
|
||||
"if": "amenity=nightclub",
|
||||
"then": "circle:white;./assets/layers/cafe_pub/nightclub.svg"
|
||||
}
|
||||
]
|
||||
},
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": "opening_hours~*",
|
||||
|
@ -363,6 +350,23 @@
|
|||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "circle:white;./assets/layers/cafe_pub/pub.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "amenity=cafe",
|
||||
"then": "circle:white;./assets/layers/cafe_pub/cafe.svg"
|
||||
},
|
||||
{
|
||||
"if": "amenity=nightclub",
|
||||
"then": "circle:white;./assets/layers/cafe_pub/nightclub.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -118,12 +118,20 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/layers/car_rental/car_rental.svg",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"label": "<div class='bg-white block p-1 rounded'>{name}</div>"
|
||||
"label": "<div class='bg-white block p-1 rounded'>{name}</div>",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/car_rental/car_rental.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -5238,60 +5238,32 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": {
|
||||
"render": "pin:#fff;./assets/themes/charging_stations/plug.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "bicycle=yes",
|
||||
"then": "pin:#fff;./assets/themes/charging_stations/bicycle.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"car=yes",
|
||||
"motorcar=yes"
|
||||
]
|
||||
},
|
||||
"then": "pin:#fff;./assets/themes/charging_stations/car.svg"
|
||||
}
|
||||
]
|
||||
},
|
||||
"iconBadges": [
|
||||
"marker": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"disused:amenity=charging_station",
|
||||
"operational_status=broken"
|
||||
]
|
||||
},
|
||||
"then": "close:#c22;"
|
||||
"icon": "pin",
|
||||
"color": "#fff"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"proposed:amenity=charging_station",
|
||||
"planned:amenity=charging_station"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/charging_station/under_construction.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"bicycle=yes",
|
||||
"icon": {
|
||||
"render": "./assets/themes/charging_stations/plug.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"or": [
|
||||
"motorcar=yes",
|
||||
"car=yes"
|
||||
]
|
||||
"if": "bicycle=yes",
|
||||
"then": "./assets/themes/charging_stations/bicycle.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"car=yes",
|
||||
"motorcar=yes"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/charging_stations/car.svg"
|
||||
}
|
||||
]
|
||||
},
|
||||
"then": "circle:#fff;./assets/themes/charging_stations/car.svg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"anchor": "bottom",
|
||||
"iconSize": "50,50"
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -728,30 +728,37 @@
|
|||
}
|
||||
}
|
||||
],
|
||||
"mapRendering": [
|
||||
"lineRendering": [],
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": {
|
||||
"render": "pin:#fff;./assets/themes/charging_stations/plug.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "bicycle=yes",
|
||||
"then": "pin:#fff;./assets/themes/charging_stations/bicycle.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"car=yes",
|
||||
"motorcar=yes"
|
||||
]
|
||||
"marker": [{
|
||||
"icon": "pin",
|
||||
"color": "#fff"
|
||||
},{
|
||||
"icon": {
|
||||
"render":"./assets/themes/charging_stations/plug.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "bicycle=yes",
|
||||
"then": "./assets/themes/charging_stations/bicycle.svg"
|
||||
},
|
||||
"then": "pin:#fff;./assets/themes/charging_stations/car.svg"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"car=yes",
|
||||
"motorcar=yes"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/charging_stations/car.svg"
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
}],
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": {
|
||||
|
|
|
@ -307,13 +307,17 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/climbing/climbing_no_rope.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/climbing/climbing_no_rope.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -165,7 +165,6 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/climbing/club.svg",
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": "opening_hours~*",
|
||||
|
@ -185,7 +184,12 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/climbing/club.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -481,7 +481,6 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/climbing/climbing_gym.svg",
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": "opening_hours~*",
|
||||
|
@ -501,7 +500,12 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/climbing/climbing_gym.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -122,7 +122,11 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/climbing/climbing_unknown.svg",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/climbing/climbing_unknown.svg"
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
|
|
|
@ -228,7 +228,6 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/themes/climbing/climbing_route.svg",
|
||||
"iconSize": "28,28",
|
||||
"location": [
|
||||
"point",
|
||||
|
@ -251,7 +250,16 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/themes/climbing/climbing_route.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -494,15 +494,19 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": {
|
||||
"render": "./assets/layers/clock/clock.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "display=digital",
|
||||
"then": "./assets/layers/clock/clock_digital.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/clock/clock.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "display=digital",
|
||||
"then": "./assets/layers/clock/clock_digital.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"iconSize": {
|
||||
"render": "40,40,center",
|
||||
"mappings": [
|
||||
|
|
|
@ -7,48 +7,108 @@
|
|||
"title": "Conflation",
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": "point",
|
||||
"icon": {
|
||||
"render": "addSmall:#000",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "detach=yes",
|
||||
"then": "circle:white;close:#c33"
|
||||
}
|
||||
]
|
||||
},
|
||||
"iconSize": "10,10",
|
||||
"anchor": "center"
|
||||
},
|
||||
{
|
||||
"location": "end",
|
||||
"icon": {
|
||||
"render": "circle:#0f0",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "reprojection=yes",
|
||||
"then": "none:#f00"
|
||||
"location": [
|
||||
"point"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"color": {
|
||||
"render": "#000",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "detach=yes",
|
||||
"then": "white"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"if": "move=no",
|
||||
"then": "ring:#0f0"
|
||||
"icon": {
|
||||
"render": "addSmall:#000",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "detach=yes",
|
||||
"then": "white"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"mappings": [
|
||||
{
|
||||
"if": "detach=yes",
|
||||
"then": "close"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": "#C33"
|
||||
}
|
||||
],
|
||||
"iconSize": "10,10",
|
||||
"anchor": "center"
|
||||
},
|
||||
{
|
||||
"location": "start",
|
||||
"icon": {
|
||||
"render": "square:#f00",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "reprojection=yes",
|
||||
"then": "reload:#f00"
|
||||
"location": [
|
||||
"end"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "circle",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "reprojection=yes",
|
||||
"then": "none"
|
||||
},
|
||||
{
|
||||
"if": "move=no",
|
||||
"then": "ring"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"render": "#0f0",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "reprojection=yes",
|
||||
"then": "#f00"
|
||||
},
|
||||
{
|
||||
"if": "move=no",
|
||||
"then": "#0f0"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"iconSize": "10,10",
|
||||
"anchor": "center"
|
||||
},
|
||||
{
|
||||
"location": [
|
||||
"start"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "square",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "reprojection=yes",
|
||||
"then": "reload"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"render": "#f00",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "reprojection=yes",
|
||||
"then": "#f00"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"iconSize": {
|
||||
"render": "10,10,center",
|
||||
"mappings": [
|
||||
|
@ -71,16 +131,7 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"color": "#00f",
|
||||
"dasharray": {
|
||||
"render": "",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "resulting-geometry=yes",
|
||||
"then": "6 6"
|
||||
}
|
||||
]
|
||||
}
|
||||
"color": "#00f"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,13 @@
|
|||
"centroid"
|
||||
],
|
||||
"iconSize": "50,50",
|
||||
"icon": "./assets/layers/crab_address/housenumber_blank.svg",
|
||||
"label": "<div style='margin-top: -42px; color: white' class='rounded-full p-1 font-bold relative'>{_HNRLABEL}</div>",
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/crab_address/housenumber_blank.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -647,20 +647,24 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/crossings/pedestrian_crossing.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"highway=traffic_signals",
|
||||
"crossing=traffic_signals"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/crossings/traffic_lights.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/crossings/pedestrian_crossing.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"highway=traffic_signals",
|
||||
"crossing=traffic_signals"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/crossings/traffic_lights.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point"
|
||||
]
|
||||
|
|
|
@ -1695,10 +1695,14 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/cycle_infra/bicycleway.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/cycle_infra/bicycleway.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -683,7 +683,7 @@
|
|||
},
|
||||
"allowMove": {
|
||||
"enableRelocation": false,
|
||||
"enableImproveAccuraccy": true
|
||||
"enableImproveAccuracy": true
|
||||
},
|
||||
"filter": [
|
||||
"has_image",
|
||||
|
@ -691,15 +691,23 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "square:#008754;./assets/layers/defibrillator/defibrillator.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "_recently_surveyed=true",
|
||||
"then": "square:#28ba3d;./assets/layers/defibrillator/defibrillator.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": "square",
|
||||
"color": {
|
||||
"render": "#008754",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "_recently_surveyed=true",
|
||||
"then": "#28ba3d"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/defibrillator/defibrillator.svg"
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point"
|
||||
]
|
||||
|
|
|
@ -76,13 +76,21 @@
|
|||
"allowMove": true,
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/layers/dentist/dentist.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/dentist/dentist.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -35,14 +35,19 @@
|
|||
"presets": [],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "direction_gradient:var(--catch-detail-color)",
|
||||
"iconSize": "200,200",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"rotation": "{_direction:numerical}deg",
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "direction_gradient",
|
||||
"color": "var(--catch-detail-color)"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -147,13 +147,21 @@
|
|||
"allowMove": true,
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/layers/doctors/doctors.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/doctors/doctors.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -177,7 +177,6 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": "./assets/layers/dogpark/dog-park.svg",
|
||||
"iconSize": "40,40",
|
||||
"label": {
|
||||
"mappings": [
|
||||
|
@ -187,7 +186,12 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/dogpark/dog-park.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -256,7 +256,6 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "pin:#6BC4F7;./assets/layers/drinking_water/drips.svg",
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": {
|
||||
|
@ -273,7 +272,16 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "bottom"
|
||||
"anchor": "bottom",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "pin",
|
||||
"color": "#6BC4F7"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/drinking_water/drips.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -331,7 +331,6 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/layers/elevator/elevator_wheelchair.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
|
@ -348,7 +347,16 @@
|
|||
"then": "close:#c33"
|
||||
}
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/elevator/elevator_wheelchair.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -389,7 +389,6 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:#FFFFFF00;./assets/themes/elongated_coin/penny.svg",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
|
@ -399,6 +398,15 @@
|
|||
"if": "opening_hours~*",
|
||||
"then": "icons.isOpen"
|
||||
}
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "#FFFFFF00"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/themes/elongated_coin/penny.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -550,15 +550,23 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": {
|
||||
"render": "circle:white;./assets/layers/entrance/entrance.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "entrance=emergency",
|
||||
"then": "circle:white;./assets/layers/entrance/emergency_door.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/entrance/entrance.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "entrance=emergency",
|
||||
"then": "./assets/layers/entrance/emergency_door.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -267,25 +267,29 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "pin:#05d7fcaa",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"name:etymology=",
|
||||
"name:etymology:wikidata="
|
||||
]
|
||||
},
|
||||
"then": "pin:#fcca05aa"
|
||||
}
|
||||
]
|
||||
},
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "pin:#05d7fcaa",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"name:etymology=",
|
||||
"name:etymology:wikidata="
|
||||
]
|
||||
},
|
||||
"then": "pin:#fcca05aa"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -164,13 +164,17 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/hailhydrant/Twemoji12_1f9ef.svg",
|
||||
"iconSize": "20,20",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/hailhydrant/Twemoji12_1f9ef.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -297,13 +297,17 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/hailhydrant/Twemoji12_1f692.svg",
|
||||
"iconSize": "35,35",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/hailhydrant/Twemoji12_1f692.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -99,7 +99,6 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": "circle:white;./assets/layers/fitness_centre/gym.svg",
|
||||
"iconSize": "40,40",
|
||||
"label": "<div style='background: white; padding: 0.25em; border-radius:0.5em'>{name}</div>",
|
||||
"iconBadges": [
|
||||
|
@ -108,7 +107,16 @@
|
|||
"then": "icons.isOpen"
|
||||
}
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/fitness_centre/gym.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -425,7 +425,6 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": "circle:white;./assets/layers/fitness_station/fitness.svg",
|
||||
"iconSize": "40,40",
|
||||
"iconBadges": [
|
||||
{
|
||||
|
@ -438,7 +437,16 @@
|
|||
"then": "icons.isOpen"
|
||||
}
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/fitness_station/fitness.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -78,8 +78,12 @@
|
|||
"centroid",
|
||||
"point"
|
||||
],
|
||||
"icon": "./assets/svg/bug.svg",
|
||||
"label": "<div class='bg-white rounded p-2'>{fixme}</div>"
|
||||
"label": "<div class='bg-white rounded p-2'>{fixme}</div>",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/svg/bug.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -1165,24 +1165,6 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "circle:white;./assets/layers/food/restaurant.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"amenity=fast_food",
|
||||
"cuisine=friture"
|
||||
]
|
||||
},
|
||||
"then": "circle:white;./assets/layers/food/fries.svg"
|
||||
},
|
||||
{
|
||||
"if": "amenity=fast_food",
|
||||
"then": "circle:white;./assets/layers/food/fastfood.svg"
|
||||
}
|
||||
]
|
||||
},
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": "opening_hours~*",
|
||||
|
@ -1222,6 +1204,28 @@
|
|||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "circle:white;./assets/layers/food/restaurant.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"amenity=fast_food",
|
||||
"cuisine=friture"
|
||||
]
|
||||
},
|
||||
"then": "circle:white;./assets/layers/food/fries.svg"
|
||||
},
|
||||
{
|
||||
"if": "amenity=fast_food",
|
||||
"then": "circle:white;./assets/layers/food/fastfood.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -282,13 +282,17 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/layers/ghost_bike/ghost_bike.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "bottom"
|
||||
"anchor": "bottom",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/ghost_bike/ghost_bike.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -68,13 +68,21 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/layers/governments/government.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/governments/government.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -5,15 +5,20 @@
|
|||
"source": "special",
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "crosshair:var(--catch-detail-color)",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "speed>2",
|
||||
"then": "gps_arrow"
|
||||
"marker": [
|
||||
{
|
||||
"color": "--catch-detail-color",
|
||||
"icon": {
|
||||
"render": "crosshair",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "speed>2",
|
||||
"then": "gps_arrow"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"iconSize": "40,40",
|
||||
"pitchAlignment": "map",
|
||||
"rotation": {
|
||||
|
|
|
@ -11,9 +11,14 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": "square:red",
|
||||
"iconSize": "5,5",
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "square",
|
||||
"color": "red"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -347,19 +347,23 @@
|
|||
"deletion": true,
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/themes/hackerspaces/glider.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"hackerspace=makerspace"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/hackerspaces/led.png"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/themes/hackerspaces/glider.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"hackerspace=makerspace"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/hackerspaces/led.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
|
|
|
@ -5,11 +5,19 @@
|
|||
"source": "special",
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/svg/home.svg",
|
||||
"iconSize": "20,20",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/svg/home.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
|
@ -117,13 +117,21 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "circle:white;./assets/layers/hospital/hospital.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/hospital/hospital.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -107,9 +107,17 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": "circle:white;./assets/layers/hotel/hotel.svg",
|
||||
"iconSize": "40,40",
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/layers/hotel/hotel.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -527,13 +527,17 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/themes/hailhydrant/hydrant.svg",
|
||||
"iconSize": "20,20",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/hailhydrant/hydrant.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
1
assets/layers/id_presets/fas-bowl-rice.svg
Normal file
1
assets/layers/id_presets/fas-bowl-rice.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
2
assets/layers/id_presets/fas-bowl-rice.svg.license
Normal file
2
assets/layers/id_presets/fas-bowl-rice.svg.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Font-Awesome icon set
|
||||
SPDX-License-Identifier: CC-BY 4.0
|
1
assets/layers/id_presets/fas-jar.svg
Normal file
1
assets/layers/id_presets/fas-jar.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z"/></svg>
|
After Width: | Height: | Size: 596 B |
2
assets/layers/id_presets/fas-jar.svg.license
Normal file
2
assets/layers/id_presets/fas-jar.svg.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Font-Awesome icon set
|
||||
SPDX-License-Identifier: CC-BY 4.0
|
1
assets/layers/id_presets/fas-plate-wheat.svg
Normal file
1
assets/layers/id_presets/fas-plate-wheat.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
2
assets/layers/id_presets/fas-plate-wheat.svg.license
Normal file
2
assets/layers/id_presets/fas-plate-wheat.svg.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Font-Awesome icon set
|
||||
SPDX-License-Identifier: CC-BY 4.0
|
File diff suppressed because it is too large
Load diff
|
@ -49,6 +49,16 @@
|
|||
"https://github.com/FortAwesome/Font-Awesome"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "fas-bowl-rice.svg",
|
||||
"license": "CC-BY 4.0",
|
||||
"authors": [
|
||||
"Font-Awesome icon set"
|
||||
],
|
||||
"sources": [
|
||||
"https://github.com/FortAwesome/Font-Awesome"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "fas-camera-retro.svg",
|
||||
"license": "CC-BY-4.0",
|
||||
|
@ -209,6 +219,16 @@
|
|||
"https://github.com/FortAwesome/Font-Awesome"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "fas-jar.svg",
|
||||
"license": "CC-BY 4.0",
|
||||
"authors": [
|
||||
"Font-Awesome icon set"
|
||||
],
|
||||
"sources": [
|
||||
"https://github.com/FortAwesome/Font-Awesome"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "fas-key.svg",
|
||||
"license": "CC-BY-4.0",
|
||||
|
@ -299,6 +319,16 @@
|
|||
"https://github.com/FortAwesome/Font-Awesome"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "fas-plate-wheat.svg",
|
||||
"license": "CC-BY 4.0",
|
||||
"authors": [
|
||||
"Font-Awesome icon set"
|
||||
],
|
||||
"sources": [
|
||||
"https://github.com/FortAwesome/Font-Awesome"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "fas-plug.svg",
|
||||
"license": "CC-BY-4.0",
|
||||
|
|
|
@ -15,9 +15,14 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": "square:red;",
|
||||
"iconSize": "15,15",
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "square",
|
||||
"color": "red"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": []
|
||||
|
|
|
@ -435,43 +435,47 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": {
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"room=administration",
|
||||
"room=auditorium",
|
||||
"room=bedroom",
|
||||
"room=chapel",
|
||||
"room=class",
|
||||
"room=computer",
|
||||
"room=conference",
|
||||
"room=crypt",
|
||||
"room=kitchen",
|
||||
"room=laboratory",
|
||||
"room=library",
|
||||
"room=locker",
|
||||
"room=nursery",
|
||||
"room=office",
|
||||
"room=prison_cell",
|
||||
"room=restaurant",
|
||||
"room=security_check",
|
||||
"room=sport",
|
||||
"room=storage",
|
||||
"room=technical",
|
||||
"room=toilets",
|
||||
"room=waiting"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/indoors/room_{room}.svg"
|
||||
},
|
||||
{
|
||||
"if": "room=toilet",
|
||||
"then": "./assets/layers/indoors/room_toilets.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"room=administration",
|
||||
"room=auditorium",
|
||||
"room=bedroom",
|
||||
"room=chapel",
|
||||
"room=class",
|
||||
"room=computer",
|
||||
"room=conference",
|
||||
"room=crypt",
|
||||
"room=kitchen",
|
||||
"room=laboratory",
|
||||
"room=library",
|
||||
"room=locker",
|
||||
"room=nursery",
|
||||
"room=office",
|
||||
"room=prison_cell",
|
||||
"room=restaurant",
|
||||
"room=security_check",
|
||||
"room=sport",
|
||||
"room=storage",
|
||||
"room=technical",
|
||||
"room=toilets",
|
||||
"room=waiting"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/indoors/room_{room}.svg"
|
||||
},
|
||||
{
|
||||
"if": "room=toilet",
|
||||
"then": "./assets/layers/indoors/room_toilets.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"iconSize": "15,15",
|
||||
"anchor": "bottom"
|
||||
}
|
||||
|
|
|
@ -79,12 +79,16 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": "./assets/layers/information_board/board.svg",
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point"
|
||||
],
|
||||
"anchor": "center"
|
||||
"anchor": "center",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/information_board/board.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -396,27 +396,31 @@
|
|||
"location": [
|
||||
"point"
|
||||
],
|
||||
"icon": {
|
||||
"render": "./assets/layers/kerbs/KerbIcon.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "kerb=raised",
|
||||
"then": "./assets/layers/kerbs/raised.svg"
|
||||
},
|
||||
{
|
||||
"if": "kerb=lowered",
|
||||
"then": "./assets/layers/kerbs/lowered.svg"
|
||||
},
|
||||
{
|
||||
"if": "kerb=flush",
|
||||
"then": "./assets/layers/kerbs/flush.svg"
|
||||
},
|
||||
{
|
||||
"if": "kerb=no",
|
||||
"then": "./assets/layers/kerbs/no.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/kerbs/KerbIcon.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "kerb=raised",
|
||||
"then": "./assets/layers/kerbs/raised.svg"
|
||||
},
|
||||
{
|
||||
"if": "kerb=lowered",
|
||||
"then": "./assets/layers/kerbs/lowered.svg"
|
||||
},
|
||||
{
|
||||
"if": "kerb=flush",
|
||||
"then": "./assets/layers/kerbs/flush.svg"
|
||||
},
|
||||
{
|
||||
"if": "kerb=no",
|
||||
"then": "./assets/layers/kerbs/no.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -186,18 +186,22 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"icon": {
|
||||
"mappings": [
|
||||
{
|
||||
"if": "amenity=kindergarten",
|
||||
"then": "circle:white;./assets/layers/kindergarten_childcare/kindergarten.svg"
|
||||
},
|
||||
{
|
||||
"if": "amenity=childcare",
|
||||
"then": "circle:white;./assets/layers/kindergarten_childcare/childcare.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"mappings": [
|
||||
{
|
||||
"if": "amenity=kindergarten",
|
||||
"then": "circle:white;./assets/layers/kindergarten_childcare/kindergarten.svg"
|
||||
},
|
||||
{
|
||||
"if": "amenity=childcare",
|
||||
"then": "circle:white;./assets/layers/kindergarten_childcare/childcare.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
|
|
@ -88,24 +88,28 @@
|
|||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"has_note_layer=yes",
|
||||
"has_presets=no"
|
||||
]
|
||||
},
|
||||
"then": "./assets/svg/note.svg"
|
||||
},
|
||||
{
|
||||
"if": "number_of_presets=1",
|
||||
"then": "{first_preset}"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"has_note_layer=yes",
|
||||
"has_presets=no"
|
||||
]
|
||||
},
|
||||
"then": "./assets/svg/note.svg"
|
||||
},
|
||||
{
|
||||
"if": "number_of_presets=1",
|
||||
"then": "{first_preset}"
|
||||
}
|
||||
],
|
||||
"render": "<div class='relative'> <img src='./assets/svg/add_pin.svg' class='absolute' style='height: 50px'> <div class='absolute top-0 left-0 rounded-full overflow-hidden noselect' style='width: 40px; height: 40px'><div class='flex slide min-w-min' style='animation: slide linear {number_of_presets}s infinite; width: calc( (1 + {number_of_presets}) * 40px ); height: 40px'>{renderings}{first_preset}</div></div></div>"
|
||||
}
|
||||
],
|
||||
"render": "<div class='relative'> <img src='./assets/svg/add_pin.svg' class='absolute' style='height: 50px'> <div class='absolute top-0 left-0 rounded-full overflow-hidden noselect' style='width: 40px; height: 40px'><div class='flex slide min-w-min' style='animation: slide linear {number_of_presets}s infinite; width: calc( (1 + {number_of_presets}) * 40px ); height: 40px'>{renderings}{first_preset}</div></div></div>"
|
||||
},
|
||||
}
|
||||
],
|
||||
"labelCssClasses": "text-sm min-w-min px-2 rounded-full text-white opacity-65 whitespace-nowrap block-ruby",
|
||||
"labelCss": "background: #00000088",
|
||||
"label": {
|
||||
|
|
|
@ -350,37 +350,41 @@
|
|||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/map/map.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"map_source=OpenStreetMap",
|
||||
"map_source:attribution=sticker"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/map/map-stickered.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"map_source=OpenStreetMap",
|
||||
"map_source:attribution=yes"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/map/osm-logo-white-bg.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"map_source=OpenStreetMap"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/map/osm-logo-buggy-attr.svg"
|
||||
"marker": [
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/layers/map/map.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"map_source=OpenStreetMap",
|
||||
"map_source:attribution=sticker"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/map/map-stickered.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"map_source=OpenStreetMap",
|
||||
"map_source:attribution=yes"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/map/osm-logo-white-bg.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"map_source=OpenStreetMap"
|
||||
]
|
||||
},
|
||||
"then": "./assets/layers/map/osm-logo-buggy-attr.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"iconSize": "50,50",
|
||||
"location": [
|
||||
"point",
|
||||
|
|
|
@ -309,43 +309,48 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": {
|
||||
"render": "./assets/layers/maproulette/logomark.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "status=0",
|
||||
"then": "pin:#959DFF"
|
||||
},
|
||||
{
|
||||
"if": "status=1",
|
||||
"then": "pin:#65D2DA"
|
||||
},
|
||||
{
|
||||
"if": "status=2",
|
||||
"then": "pin:#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "status=3",
|
||||
"then": "pin:#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "status=4",
|
||||
"then": "pin:#737373"
|
||||
},
|
||||
{
|
||||
"if": "status=5",
|
||||
"then": "pin:#CCB186"
|
||||
},
|
||||
{
|
||||
"if": "status=6",
|
||||
"then": "pin:#FF5E63"
|
||||
},
|
||||
{
|
||||
"if": "status=9",
|
||||
"then": "pin:#FF349C"
|
||||
"marker": [
|
||||
{
|
||||
"icon": "pin",
|
||||
"color": {
|
||||
"render": "#00",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "status=0",
|
||||
"then": "#959DFF"
|
||||
},
|
||||
{
|
||||
"if": "status=1",
|
||||
"then": "#65D2DA"
|
||||
},
|
||||
{
|
||||
"if": "status=2",
|
||||
"then": "#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "status=3",
|
||||
"then": "#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "status=4",
|
||||
"then": "#737373"
|
||||
},
|
||||
{
|
||||
"if": "status=5",
|
||||
"then": "#CCB186"
|
||||
},
|
||||
{
|
||||
"if": "status=6",
|
||||
"then": "#FF5E63"
|
||||
},
|
||||
{
|
||||
"if": "status=9",
|
||||
"then": "#FF349C"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"iconSize": "40,40",
|
||||
"anchor": "bottom"
|
||||
}
|
||||
|
|
|
@ -204,43 +204,67 @@
|
|||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": {
|
||||
"render": "./assets/layers/maproulette/logomark.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "mr_taskStatus=Created",
|
||||
"then": "pin:#959DFF"
|
||||
"marker": [
|
||||
{
|
||||
"color": {
|
||||
"mappings": [
|
||||
{
|
||||
"if": "mr_taskStatus=Created",
|
||||
"then": "#959DFF"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Fixed",
|
||||
"then": "#65D2DA"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=False positive",
|
||||
"then": "#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Skipped",
|
||||
"then": "#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Deleted",
|
||||
"then": "#737373"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Already fixed",
|
||||
"then": "#CCB186"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Too hard",
|
||||
"then": "#FF5E63"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Disabled",
|
||||
"then": "#FF349C"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Fixed",
|
||||
"then": "pin:#65D2DA"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=False positive",
|
||||
"then": "pin:#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Skipped",
|
||||
"then": "pin:#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Deleted",
|
||||
"then": "pin:#737373"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Already fixed",
|
||||
"then": "pin:#CCB186"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Too hard",
|
||||
"then": "pin:#FF5E63"
|
||||
},
|
||||
{
|
||||
"if": "mr_taskStatus=Disabled",
|
||||
"then": "pin:#FF349C"
|
||||
"icon": {
|
||||
"render": "./assets/layers/maproulette/logomark.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"mr_taskStatus=Created",
|
||||
"mr_taskStatus=Fixed",
|
||||
"mr_taskStatus=False positive",
|
||||
"mr_taskStatus=Skipped",
|
||||
"mr_taskStatus=Deleted",
|
||||
"mr_taskStatus=Already fixed",
|
||||
"mr_taskStatus=Already fixed",
|
||||
"mr_taskStatus=Disabled",
|
||||
"mr_taskStatus=Too hard"
|
||||
]
|
||||
},
|
||||
"then": "pin"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
"iconSize": "40,40",
|
||||
"anchor": "bottom"
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue