forked from MapComplete/MapComplete
		
	Fix line renderings
This commit is contained in:
		
							parent
							
								
									ec09a72cae
								
							
						
					
					
						commit
						95101a7212
					
				
					 11 changed files with 327 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -706,6 +706,43 @@
 | 
			
		|||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "lineCap": {
 | 
			
		||||
          "description": "The form at the end of a line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fill": {
 | 
			
		||||
          "description": "Wehter or not to fill polygons",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "enum": [
 | 
			
		||||
                "no",
 | 
			
		||||
                "yes"
 | 
			
		||||
              ],
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fillColor": {
 | 
			
		||||
          "description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "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",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -702,6 +702,43 @@ export default {
 | 
			
		|||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "lineCap": {
 | 
			
		||||
          "description": "The form at the end of a line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fill": {
 | 
			
		||||
          "description": "Wehter or not to fill polygons",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "enum": [
 | 
			
		||||
                "no",
 | 
			
		||||
                "yes"
 | 
			
		||||
              ],
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fillColor": {
 | 
			
		||||
          "description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "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",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -612,6 +612,43 @@
 | 
			
		|||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "lineCap": {
 | 
			
		||||
          "description": "The form at the end of a line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fill": {
 | 
			
		||||
          "description": "Wehter or not to fill polygons",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "enum": [
 | 
			
		||||
                "no",
 | 
			
		||||
                "yes"
 | 
			
		||||
              ],
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fillColor": {
 | 
			
		||||
          "description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "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",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -608,6 +608,43 @@ export default {
 | 
			
		|||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "lineCap": {
 | 
			
		||||
          "description": "The form at the end of a line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fill": {
 | 
			
		||||
          "description": "Wehter or not to fill polygons",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "enum": [
 | 
			
		||||
                "no",
 | 
			
		||||
                "yes"
 | 
			
		||||
              ],
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fillColor": {
 | 
			
		||||
          "description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "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",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,6 +35,43 @@
 | 
			
		|||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "lineCap": {
 | 
			
		||||
      "description": "The form at the end of a line",
 | 
			
		||||
      "anyOf": [
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "fill": {
 | 
			
		||||
      "description": "Wehter or not to fill polygons",
 | 
			
		||||
      "anyOf": [
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "enum": [
 | 
			
		||||
            "no",
 | 
			
		||||
            "yes"
 | 
			
		||||
          ],
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "fillColor": {
 | 
			
		||||
      "description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
 | 
			
		||||
      "anyOf": [
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "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",
 | 
			
		||||
      "anyOf": [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,6 +35,43 @@ export default {
 | 
			
		|||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "lineCap": {
 | 
			
		||||
      "description": "The form at the end of a line",
 | 
			
		||||
      "anyOf": [
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "fill": {
 | 
			
		||||
      "description": "Wehter or not to fill polygons",
 | 
			
		||||
      "anyOf": [
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "enum": [
 | 
			
		||||
            "no",
 | 
			
		||||
            "yes"
 | 
			
		||||
          ],
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "fillColor": {
 | 
			
		||||
      "description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
 | 
			
		||||
      "anyOf": [
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "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",
 | 
			
		||||
      "anyOf": [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -375,6 +375,43 @@
 | 
			
		|||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "lineCap": {
 | 
			
		||||
          "description": "The form at the end of a line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fill": {
 | 
			
		||||
          "description": "Wehter or not to fill polygons",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "enum": [
 | 
			
		||||
                "no",
 | 
			
		||||
                "yes"
 | 
			
		||||
              ],
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fillColor": {
 | 
			
		||||
          "description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "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",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -371,6 +371,43 @@ export default {
 | 
			
		|||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "lineCap": {
 | 
			
		||||
          "description": "The form at the end of a line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fill": {
 | 
			
		||||
          "description": "Wehter or not to fill polygons",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "enum": [
 | 
			
		||||
                "no",
 | 
			
		||||
                "yes"
 | 
			
		||||
              ],
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "fillColor": {
 | 
			
		||||
          "description": "The color to fill a polygon with.\nIf undefined, this will be slightly more opaque version of the stroke line",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "$ref": "#/definitions/TagRenderingConfigJson"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "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",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,8 +21,8 @@ export default class LineRenderingConfig extends WithContextLoader {
 | 
			
		|||
        this.width = this.tr("width", "7");
 | 
			
		||||
        this.dashArray = this.tr("dashArray", "");
 | 
			
		||||
        this.lineCap = this.tr("lineCap", "round");
 | 
			
		||||
        this.fill = this.tr("fill", "round");
 | 
			
		||||
        this.fillColor = this.tr("fillColor", "round");
 | 
			
		||||
        this.fill = this.tr("fill", undefined);
 | 
			
		||||
        this.fillColor = this.tr("fillColor", undefined);
 | 
			
		||||
 | 
			
		||||
        this.leftRightSensitive = json.offset !== undefined && json.offset !== 0 && json.offset !== "0"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -30,7 +30,7 @@ export default class LineRenderingConfig extends WithContextLoader {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    public GenerateLeafletStyle(tags: {}):
 | 
			
		||||
        { fillColor: string; color: string; lineCap: string; offset: number; weight: number; dashArray: string; fill: string } {
 | 
			
		||||
        { fillColor?: string; color: string; lineCap: string; offset: number; weight: number; dashArray: string; fill?: boolean } {
 | 
			
		||||
        function rendernum(tr: TagRenderingConfig, deflt: number) {
 | 
			
		||||
            const str = Number(render(tr, "" + deflt));
 | 
			
		||||
            const n = Number(str);
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +44,11 @@ export default class LineRenderingConfig extends WithContextLoader {
 | 
			
		|||
            if (tags === undefined) {
 | 
			
		||||
                return deflt
 | 
			
		||||
            }
 | 
			
		||||
            if(tr === undefined){return deflt}
 | 
			
		||||
            const str = tr?.GetRenderValue(tags)?.txt ?? deflt;
 | 
			
		||||
            if (str === "") {
 | 
			
		||||
                return deflt
 | 
			
		||||
            }
 | 
			
		||||
            return Utils.SubstituteKeys(str, tags)?.replace(/{.*}/g, "");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -56,15 +60,26 @@ export default class LineRenderingConfig extends WithContextLoader {
 | 
			
		|||
            );
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        return {
 | 
			
		||||
        const style = {
 | 
			
		||||
            color,
 | 
			
		||||
            dashArray,
 | 
			
		||||
            weight: rendernum(this.width, 5),
 | 
			
		||||
            lineCap: render(this.lineCap),
 | 
			
		||||
            offset: rendernum(this.offset, 0),
 | 
			
		||||
            fill: render(this.fill),
 | 
			
		||||
            fillColor: render(this.fillColor)
 | 
			
		||||
            offset: rendernum(this.offset, 0)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const fillStr = render(this.fill, undefined)
 | 
			
		||||
        let fill: boolean = undefined;
 | 
			
		||||
        if (fillStr !== undefined && fillStr !== "") {
 | 
			
		||||
            style["fill"] = fillStr === "yes" || fillStr === "true"
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        const fillColorStr = render(this.fillColor, undefined)
 | 
			
		||||
        if(fillColorStr !== undefined){
 | 
			
		||||
            style["fillColor"] = fillColorStr
 | 
			
		||||
        }
 | 
			
		||||
        return style
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -172,6 +172,7 @@ export default class ShowDataLayer {
 | 
			
		|||
                            if (offsettedLine !== undefined) {
 | 
			
		||||
                                self.geoLayer.removeLayer(offsettedLine)
 | 
			
		||||
                            }
 | 
			
		||||
                            // @ts-ignore
 | 
			
		||||
                            offsettedLine = L.polyline(coords, lineStyle);
 | 
			
		||||
                            this.postProcessFeature(feat, offsettedLine)
 | 
			
		||||
                            offsettedLine.addTo(this.geoLayer)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -110,12 +110,13 @@
 | 
			
		|||
            "end"
 | 
			
		||||
          ],
 | 
			
		||||
          "icon": "circle:#ccc",
 | 
			
		||||
          "iconSize": "20,20,center"
 | 
			
		||||
          "iconSize": "3,3,center"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "#": "The center line",
 | 
			
		||||
          "color": "#ffffff55",
 | 
			
		||||
          "width": 8
 | 
			
		||||
          "width": 8,
 | 
			
		||||
          "lineCap": "butt"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "#": "left",
 | 
			
		||||
| 
						 | 
				
			
			@ -145,7 +146,8 @@
 | 
			
		|||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "offset": -6
 | 
			
		||||
          "offset": -6,
 | 
			
		||||
          "lineCap": "butt"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "color": "#888",
 | 
			
		||||
| 
						 | 
				
			
			@ -172,6 +174,7 @@
 | 
			
		|||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "lineCap": "butt",
 | 
			
		||||
          "offset": 6
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue