forked from MapComplete/MapComplete
		
	Fix themes, fix tests
This commit is contained in:
		
							parent
							
								
									255347fc06
								
							
						
					
					
						commit
						edf7dba9e3
					
				
					 16 changed files with 350 additions and 297 deletions
				
			
		| 
						 | 
				
			
			@ -232,7 +232,7 @@
 | 
			
		|||
          ]
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": null,
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "width": {
 | 
			
		||||
| 
						 | 
				
			
			@ -549,7 +549,7 @@
 | 
			
		|||
      },
 | 
			
		||||
      "title": "Service road",
 | 
			
		||||
      "tagRenderings": [],
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": null,
 | 
			
		||||
      "lineRendering": [ {
 | 
			
		||||
        "width": 4,
 | 
			
		||||
        "color": "#888888"
 | 
			
		||||
| 
						 | 
				
			
			@ -594,7 +594,7 @@
 | 
			
		|||
      "tagRenderings": [
 | 
			
		||||
        "all_tags"
 | 
			
		||||
      ],
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": null,
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "color": "#ccc",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,253 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  "id": "grb_fixme",
 | 
			
		||||
  "title": {
 | 
			
		||||
    "nl": "GRB Fixup"
 | 
			
		||||
  },
 | 
			
		||||
  "description": {
 | 
			
		||||
    "nl": "Gebouwen met een FIXME - wss GRB-import die gefixed moeten worden"
 | 
			
		||||
  },
 | 
			
		||||
  "shortDescription": {
 | 
			
		||||
    "nl": "Grb Fixup"
 | 
			
		||||
  },
 | 
			
		||||
  "icon": "./assets/svg/bug.svg",
 | 
			
		||||
  "startZoom": 14,
 | 
			
		||||
  "startLat": 51.2132,
 | 
			
		||||
  "startLon": 3.231,
 | 
			
		||||
  "defaultBackgroundId": "AGIVFlandersGRB",
 | 
			
		||||
  "hideFromOverview": true,
 | 
			
		||||
  "layers": [
 | 
			
		||||
    {
 | 
			
		||||
      "id": "osm-buildings-fixme",
 | 
			
		||||
      "name": "OSM-buildings with a fixme",
 | 
			
		||||
      "source": {
 | 
			
		||||
        "osmTags": {
 | 
			
		||||
          "and": [
 | 
			
		||||
            "building~*",
 | 
			
		||||
            "fixme~*"
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "maxCacheAge": 0
 | 
			
		||||
      },
 | 
			
		||||
      "calculatedTags": [
 | 
			
		||||
        "_grbNumber=(feat.properties.fixme?.match(/GRB thinks that this has number ([0-9a-zA-Z;]+)/) ?? ['','none']) [1]"
 | 
			
		||||
      ],
 | 
			
		||||
      "title": "OSM-gebouw",
 | 
			
		||||
      "tagRenderings": [
 | 
			
		||||
        {
 | 
			
		||||
          "id": "building type",
 | 
			
		||||
          "freeform": {
 | 
			
		||||
            "key": "building"
 | 
			
		||||
          },
 | 
			
		||||
          "render": "The building type is <b>{building}</b>",
 | 
			
		||||
          "question": {
 | 
			
		||||
            "en": "What kind of building is this?",
 | 
			
		||||
            "de": "Was ist das für ein Gebäude?",
 | 
			
		||||
            "es": "¿Qué tipo de este edificio es este?",
 | 
			
		||||
            "nl": "Wat voor soort gebouw is dit?",
 | 
			
		||||
            "fr": "De quel type de bâtiment s’agit-il ?",
 | 
			
		||||
            "nb_NO": "Hva slags bygning er dette?",
 | 
			
		||||
            "da": "Hvad er det for en bygning?",
 | 
			
		||||
            "cs": "Jaký druh budovy je toto?",
 | 
			
		||||
            "ca": "Quin tipus d'edifici és aquest?",
 | 
			
		||||
            "pl": "Jaki to rodzaj budynku?"
 | 
			
		||||
          },
 | 
			
		||||
          "mappings": [
 | 
			
		||||
            {
 | 
			
		||||
              "if": "building=house",
 | 
			
		||||
              "then": "A normal house"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": "building=detached",
 | 
			
		||||
              "then": "A house detached from other building"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": "building=semidetached_house",
 | 
			
		||||
              "then": "A house sharing only one wall with another house"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": "building=apartments",
 | 
			
		||||
              "then": "An apartment building (a highrise building for living)"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": "building=office",
 | 
			
		||||
              "then": "An office building - highrise for work"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": "building=shed",
 | 
			
		||||
              "then": "A small shed, e.g. in a garden"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": "building=garage",
 | 
			
		||||
              "then": "A single garage to park a car"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": "building=garages",
 | 
			
		||||
              "then": "A building containing only garages; typically they are all identical"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": "building=yes",
 | 
			
		||||
              "then": "A building - no specification"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "id": "grb-housenumber",
 | 
			
		||||
          "render": {
 | 
			
		||||
            "nl": "Het huisnummer is <b>{addr:housenumber}</b>"
 | 
			
		||||
          },
 | 
			
		||||
          "question": {
 | 
			
		||||
            "nl": "Wat is het huisnummer?"
 | 
			
		||||
          },
 | 
			
		||||
          "freeform": {
 | 
			
		||||
            "key": "addr:housenumber"
 | 
			
		||||
          },
 | 
			
		||||
          "mappings": [
 | 
			
		||||
            {
 | 
			
		||||
              "if": {
 | 
			
		||||
                "and": [
 | 
			
		||||
                  "not:addr:housenumber=yes",
 | 
			
		||||
                  "addr:housenumber="
 | 
			
		||||
                ]
 | 
			
		||||
              },
 | 
			
		||||
              "then": {
 | 
			
		||||
                "nl": "Geen huisnummer"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": {
 | 
			
		||||
                "and": [
 | 
			
		||||
                  "addr:housenumber:={_grbNumber}",
 | 
			
		||||
                  "fixme="
 | 
			
		||||
                ]
 | 
			
		||||
              },
 | 
			
		||||
              "then": "Het huisnummer is <b>{_grbNumber}</b>, wat overeenkomt met het GRB",
 | 
			
		||||
              "hideInAnswer": {
 | 
			
		||||
                "or": [
 | 
			
		||||
                  "_grbNumber=",
 | 
			
		||||
                  "_grbNumber=none",
 | 
			
		||||
                  "_grbNumber=no number"
 | 
			
		||||
                ]
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "if": {
 | 
			
		||||
                "and": [
 | 
			
		||||
                  "addr:housenumber=",
 | 
			
		||||
                  "not:addr:housenumber=yes",
 | 
			
		||||
                  "fixme="
 | 
			
		||||
                ]
 | 
			
		||||
              },
 | 
			
		||||
              "then": "Dit gebouw heeft geen nummer, net zoals in het GRB",
 | 
			
		||||
              "hideInAnswer": "_grbNumber!=no number"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "id": "grb-unit",
 | 
			
		||||
          "question": "Wat is de wooneenheid-aanduiding?",
 | 
			
		||||
          "render": {
 | 
			
		||||
            "nl": "De wooneenheid-aanduiding is <b>{addr:unit}</b> "
 | 
			
		||||
          },
 | 
			
		||||
          "freeform": {
 | 
			
		||||
            "key": "addr:unit"
 | 
			
		||||
          },
 | 
			
		||||
          "mappings": [
 | 
			
		||||
            {
 | 
			
		||||
              "if": "addr:unit=",
 | 
			
		||||
              "then": "Geen wooneenheid-nummer"
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "id": "grb-street",
 | 
			
		||||
          "render": {
 | 
			
		||||
            "nl": "De straat is <b>{addr:street}</b>"
 | 
			
		||||
          },
 | 
			
		||||
          "freeform": {
 | 
			
		||||
            "key": "addr:street"
 | 
			
		||||
          },
 | 
			
		||||
          "question": {
 | 
			
		||||
            "nl": "Wat is de straat?"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "id": "grb-fixme",
 | 
			
		||||
          "render": {
 | 
			
		||||
            "nl": "De fixme is <b>{fixme}</b>"
 | 
			
		||||
          },
 | 
			
		||||
          "question": {
 | 
			
		||||
            "nl": "Wat zegt de fixme?"
 | 
			
		||||
          },
 | 
			
		||||
          "freeform": {
 | 
			
		||||
            "key": "fixme"
 | 
			
		||||
          },
 | 
			
		||||
          "mappings": [
 | 
			
		||||
            {
 | 
			
		||||
              "if": {
 | 
			
		||||
                "and": [
 | 
			
		||||
                  "fixme="
 | 
			
		||||
                ]
 | 
			
		||||
              },
 | 
			
		||||
              "then": {
 | 
			
		||||
                "nl": "Geen fixme"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "id": "grb-min-level",
 | 
			
		||||
          "render": {
 | 
			
		||||
            "nl": "Dit gebouw begint maar op de {building:min_level} verdieping"
 | 
			
		||||
          },
 | 
			
		||||
          "question": {
 | 
			
		||||
            "nl": "Hoeveel verdiepingen ontbreken?"
 | 
			
		||||
          },
 | 
			
		||||
          "freeform": {
 | 
			
		||||
            "key": "building:min_level",
 | 
			
		||||
            "type": "pnat"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "id": "fix_verdieping",
 | 
			
		||||
          "render": "{tag_apply(fixme=;building:min_level=1,De eerste verdieping ontbreekt)}",
 | 
			
		||||
          "condition": "fixme=verdieping, correct the building tag, add building:level and building:min_level before upload in JOSM!"
 | 
			
		||||
        },
 | 
			
		||||
        "all_tags"
 | 
			
		||||
      ],
 | 
			
		||||
      "minzoom": 14,
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "builtin": "address",
 | 
			
		||||
      "override": {
 | 
			
		||||
        "minzoom": 18
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "builtin": "crab_address",
 | 
			
		||||
      "override": {
 | 
			
		||||
        "minzoom": 18,
 | 
			
		||||
        "+tagRenderings": [
 | 
			
		||||
          {
 | 
			
		||||
            "id": "import-button",
 | 
			
		||||
            "render": "{import_button(address, addr:street=$STRAATNM; addr:housenumber=$HUISNR,Import this address)}"
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "overrideAll": {
 | 
			
		||||
    "source": {
 | 
			
		||||
      "maxCacheAge": 0
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "widenFactor": 2,
 | 
			
		||||
  "overpassMaxZoom": 15,
 | 
			
		||||
  "osmApiTileSize": 17,
 | 
			
		||||
  "clustering": {
 | 
			
		||||
    "maxZoom": 15
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -124,9 +124,22 @@
 | 
			
		|||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "isShown": "_country=be",
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "label": "<div class='text-xl bg-white rounded-full pl-2 pr-2 break-normal'>{postal_code}</div>",
 | 
			
		||||
          "location": [
 | 
			
		||||
            "point",
 | 
			
		||||
            "centroid"
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
        {
 | 
			
		||||
          "color": "#00f",
 | 
			
		||||
          "width": "4",
 | 
			
		||||
          "fill": "no",
 | 
			
		||||
          "dashArray": "8 8"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -140,9 +153,12 @@
 | 
			
		|||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "title": "Boundary relation with addr:postcode={addr:postcode}",
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": null,
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
        {
 | 
			
		||||
          "color": "#f00",
 | 
			
		||||
          "width": 1
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -197,9 +213,20 @@
 | 
			
		|||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "isShown": "_country=be",
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
      "pointRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "marker": [
 | 
			
		||||
            {
 | 
			
		||||
              "icon": "./assets/themes/postal_codes/townhall.svg"
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "iconSize": "40,40",
 | 
			
		||||
          "location": [
 | 
			
		||||
            "point",
 | 
			
		||||
            "centroid"
 | 
			
		||||
          ],
 | 
			
		||||
          "anchor": "center"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -247,9 +247,85 @@
 | 
			
		|||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "allowSplit": true,
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "location": [
 | 
			
		||||
            "start",
 | 
			
		||||
            "end"
 | 
			
		||||
          ],
 | 
			
		||||
          "marker": [
 | 
			
		||||
            {
 | 
			
		||||
              "icon": "circle:#ccc"
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "iconSize": "3,3",
 | 
			
		||||
          "anchor": "center"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
        {
 | 
			
		||||
          "#": "The center line",
 | 
			
		||||
          "color": "#ffffff55",
 | 
			
		||||
          "width": 8,
 | 
			
		||||
          "lineCap": "butt"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "#": "left",
 | 
			
		||||
          "color": "#888",
 | 
			
		||||
          "dashArray": {
 | 
			
		||||
            "render": "",
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": "sidewalk:left=",
 | 
			
		||||
                "then": "1,12"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "width": {
 | 
			
		||||
            "render": 6,
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": {
 | 
			
		||||
                  "or": [
 | 
			
		||||
                    "sidewalk:left=no",
 | 
			
		||||
                    "sidewalk:left=separate"
 | 
			
		||||
                  ]
 | 
			
		||||
                },
 | 
			
		||||
                "then": 0
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "offset": -6,
 | 
			
		||||
          "lineCap": "butt"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "color": "#888",
 | 
			
		||||
          "dashArray": {
 | 
			
		||||
            "render": "",
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": "sidewalk:right=",
 | 
			
		||||
                "then": "1,12"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "width": {
 | 
			
		||||
            "render": 6,
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": {
 | 
			
		||||
                  "or": [
 | 
			
		||||
                    "sidewalk:right=no",
 | 
			
		||||
                    "sidewalk:right=separate"
 | 
			
		||||
                  ]
 | 
			
		||||
                },
 | 
			
		||||
                "then": 0
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "lineCap": "butt",
 | 
			
		||||
          "offset": 6
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,9 +26,12 @@
 | 
			
		|||
        "osmTags": "shadow=yes",
 | 
			
		||||
        "isOsmCache": false
 | 
			
		||||
      },
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": null,
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
        {
 | 
			
		||||
          "color": "#444444",
 | 
			
		||||
          "width": "1"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -208,9 +211,24 @@
 | 
			
		|||
        "questions",
 | 
			
		||||
        "reviews"
 | 
			
		||||
      ],
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": null,
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
        {
 | 
			
		||||
          "color": {
 | 
			
		||||
            "render": "#6d6",
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": "color~*",
 | 
			
		||||
                "then": "{color}"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "if": "colour~*",
 | 
			
		||||
                "then": "{colour}"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "width": "9"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,8 +31,7 @@
 | 
			
		|||
      "override": {
 | 
			
		||||
        "minzoom": 18,
 | 
			
		||||
        "passAllFeatures": true,
 | 
			
		||||
        "=pointRendering": [
 | 
			
		||||
        ]
 | 
			
		||||
        "=pointRendering": null
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -86,9 +85,31 @@
 | 
			
		|||
        "zh_Hant": "顯示火車站的圖層",
 | 
			
		||||
        "pl": "Warstwa pokazująca stacje kolejowe"
 | 
			
		||||
      },
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "marker": [
 | 
			
		||||
            {
 | 
			
		||||
              "icon": "./assets/themes/stations/rail-light.svg"
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "location": [
 | 
			
		||||
            "point",
 | 
			
		||||
            "centroid"
 | 
			
		||||
          ],
 | 
			
		||||
          "label": {
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": "name~*",
 | 
			
		||||
                "then": "<div style='background: white; padding: 0.25em; border-radius:0.5em'>{name}</div>"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
        {
 | 
			
		||||
          "color": "green"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -408,7 +429,19 @@
 | 
			
		|||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "marker": [
 | 
			
		||||
            {
 | 
			
		||||
              "icon": "./assets/themes/stations/departures_board.svg"
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "location": [
 | 
			
		||||
            "point",
 | 
			
		||||
            "centroid"
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
      ]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -190,9 +190,11 @@
 | 
			
		|||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "allowSplit": true,
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": null,
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
        {
 | 
			
		||||
          "color": "#ff0"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -347,9 +349,19 @@
 | 
			
		|||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "allowSplit": true,
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": null,
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
        {
 | 
			
		||||
          "color": {
 | 
			
		||||
            "render": "#a9a9a9",
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": "lit=no",
 | 
			
		||||
                "then": "#303030"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,9 +35,30 @@
 | 
			
		|||
      "tagRenderings": [
 | 
			
		||||
        "all_tags"
 | 
			
		||||
      ],
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "location": [
 | 
			
		||||
            "point",
 | 
			
		||||
            "centroid"
 | 
			
		||||
          ],
 | 
			
		||||
          "marker": [
 | 
			
		||||
            {
 | 
			
		||||
              "icon": {
 | 
			
		||||
                "render": "circle:red",
 | 
			
		||||
                "mappings": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "if": "_has_closeby_feature=yes",
 | 
			
		||||
                    "then": "circle:#008000aa"
 | 
			
		||||
                  }
 | 
			
		||||
                ]
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "iconSize": "20,20",
 | 
			
		||||
          "anchor": "center"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@
 | 
			
		|||
      "name": {
 | 
			
		||||
        "en": "Inspire polygons"
 | 
			
		||||
      },
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": null,
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "width": 2,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,6 +72,7 @@
 | 
			
		|||
          "color": "#452b29"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "pointRendering":null,
 | 
			
		||||
      "tagRenderings": [
 | 
			
		||||
        {
 | 
			
		||||
          "builtin": "survey_date",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,9 +39,30 @@
 | 
			
		|||
      "tagRenderings": [
 | 
			
		||||
        "all_tags"
 | 
			
		||||
      ],
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "location": [
 | 
			
		||||
            "point",
 | 
			
		||||
            "centroid"
 | 
			
		||||
          ],
 | 
			
		||||
          "marker": [
 | 
			
		||||
            {
 | 
			
		||||
              "icon": {
 | 
			
		||||
                "render": "circle:red",
 | 
			
		||||
                "mappings": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "if": "_has_closeby_feature=yes",
 | 
			
		||||
                    "then": "circle:#008000aa"
 | 
			
		||||
                  }
 | 
			
		||||
                ]
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "iconSize": "20,20",
 | 
			
		||||
          "anchor": "center"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "recycling",
 | 
			
		||||
| 
						 | 
				
			
			@ -66,9 +87,34 @@
 | 
			
		|||
      "tagRenderings": [
 | 
			
		||||
        "all_tags"
 | 
			
		||||
      ],
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "location": [
 | 
			
		||||
            "point",
 | 
			
		||||
            "centroid"
 | 
			
		||||
          ],
 | 
			
		||||
          "marker": [
 | 
			
		||||
            {
 | 
			
		||||
              "icon": {
 | 
			
		||||
                "render": "circle:red",
 | 
			
		||||
                "mappings": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "if": "_has_closeby_recycling=yes",
 | 
			
		||||
                    "then": "circle:#008000aa"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "if": "_has_closeby_waste_disposal=yes",
 | 
			
		||||
                    "then": "circle:#008000aa"
 | 
			
		||||
                  }
 | 
			
		||||
                ]
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "iconSize": "20,20",
 | 
			
		||||
          "anchor": "center"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "waste_disposal"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -186,9 +186,76 @@
 | 
			
		|||
          ]
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "pointRendering": [],
 | 
			
		||||
      "pointRendering": [
 | 
			
		||||
        {
 | 
			
		||||
          "location": [
 | 
			
		||||
            "point"
 | 
			
		||||
          ],
 | 
			
		||||
          "marker": [
 | 
			
		||||
            {
 | 
			
		||||
              "icon": "./assets/themes/width/icon.svg"
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "iconSize": "40,40",
 | 
			
		||||
          "anchor": "center"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "lineRendering": [
 | 
			
		||||
        {}
 | 
			
		||||
        {
 | 
			
		||||
          "width": "4",
 | 
			
		||||
          "color": {
 | 
			
		||||
            "render": "#00f",
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": {
 | 
			
		||||
                  "or": [
 | 
			
		||||
                    "access=destination",
 | 
			
		||||
                    "highway=pedestrian",
 | 
			
		||||
                    "motor_vehicle=no",
 | 
			
		||||
                    "motor_vehicle=destination"
 | 
			
		||||
                  ]
 | 
			
		||||
                },
 | 
			
		||||
                "then": "lightgrey"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "if": {
 | 
			
		||||
                  "and": [
 | 
			
		||||
                    "_width:difference!~-.*",
 | 
			
		||||
                    "_width:difference:no_pedestrians~-.*"
 | 
			
		||||
                  ]
 | 
			
		||||
                },
 | 
			
		||||
                "then": "orange"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "if": "_width:difference~-.*",
 | 
			
		||||
                "then": "#0f0"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "if": "_width:difference!~-.*",
 | 
			
		||||
                "then": "#f00"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "dashArray": {
 | 
			
		||||
            "render": "",
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": {
 | 
			
		||||
                  "and": [
 | 
			
		||||
                    "oneway=yes",
 | 
			
		||||
                    {
 | 
			
		||||
                      "or": [
 | 
			
		||||
                        "oneway:bicycle=yes",
 | 
			
		||||
                        "oneway:bicycle="
 | 
			
		||||
                      ]
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                },
 | 
			
		||||
                "then": "5 6"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -110,8 +110,7 @@ export class Each<X, Y> extends Conversion<X[], Y[]> {
 | 
			
		|||
                    values[i]?.["id"] !== undefined ? values[i]?.["id"] : ""
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
            const context_ = c.enter(i)
 | 
			
		||||
            const r = step.convert(values[i], context_)
 | 
			
		||||
            const r = step.convert(values[i], c.enter(i))
 | 
			
		||||
            result.push(r)
 | 
			
		||||
        }
 | 
			
		||||
        return result
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -552,7 +552,7 @@ export class DetectShadowedMappings extends DesugaringStep<TagRenderingConfigJso
 | 
			
		|||
     * const context = ConversionContext.test()
 | 
			
		||||
     * const r = new DetectShadowedMappings().convert(tr, context);
 | 
			
		||||
     * context.getAll("error").length // => 1
 | 
			
		||||
     * context.getAll("error")[0].message.indexOf("The mapping key=value &x=y is fully matched by a previous mapping (namely 0)") >= 0 // => true
 | 
			
		||||
     * context.getAll("error")[0].message.indexOf("The mapping key=value & x=y is fully matched by a previous mapping (namely 0)") >= 0 // => true
 | 
			
		||||
     */
 | 
			
		||||
    convert(json: TagRenderingConfigJson, context: ConversionContext): TagRenderingConfigJson {
 | 
			
		||||
        if (json.mappings === undefined || json.mappings.length === 0) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1067,7 +1067,12 @@ export class PrevalidateLayer extends DesugaringStep<LayerConfigJson> {
 | 
			
		|||
                .err("Detected a 'pointRenderingS', it is written singular")
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!(json.pointRendering?.length > 0)) {
 | 
			
		||||
        if (
 | 
			
		||||
            !(json.pointRendering?.length > 0) &&
 | 
			
		||||
            json.pointRendering !== null &&
 | 
			
		||||
            json.source !== "special" &&
 | 
			
		||||
            json.source !== "special:library"
 | 
			
		||||
        ) {
 | 
			
		||||
            context.enter("pointRendering").err("There are no pointRenderings at all...")
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -248,6 +248,7 @@ export interface LayerConfigJson {
 | 
			
		|||
    /**
 | 
			
		||||
     * Creates points to render on the map.
 | 
			
		||||
     * This can render points for point-objects, lineobjects or areaobjects; use 'location' to indicate where it should be rendered
 | 
			
		||||
     *
 | 
			
		||||
     * group: pointrendering
 | 
			
		||||
     */
 | 
			
		||||
    pointRendering: PointRenderingConfigJson[]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -219,7 +219,7 @@ export default class LayerConfig extends WithContextLoader {
 | 
			
		|||
 | 
			
		||||
        if (json.pointRendering) {
 | 
			
		||||
            this.mapRendering = Utils.NoNull(json.pointRendering).map(
 | 
			
		||||
                (r, i) => new PointRenderingConfig(r, `${context}[${i}]`)
 | 
			
		||||
                (r, i) => new PointRenderingConfig(r, `${context}[${i}](${this.id})`)
 | 
			
		||||
            )
 | 
			
		||||
        } else {
 | 
			
		||||
            this.mapRendering = []
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue