forked from MapComplete/MapComplete
		
	Some further improvements to the mapcomplete-changes theme
This commit is contained in:
		
							parent
							
								
									2e2a6965e7
								
							
						
					
					
						commit
						68c338e764
					
				
					 6 changed files with 492 additions and 28 deletions
				
			
		|  | @ -46,6 +46,12 @@ | ||||||
|         "en": "Shows all MapComplete changes" |         "en": "Shows all MapComplete changes" | ||||||
|       }, |       }, | ||||||
|       "tagRenderings": [ |       "tagRenderings": [ | ||||||
|  |         { | ||||||
|  |           "id": "render_id", | ||||||
|  |           "render": { | ||||||
|  |             "en": "Changeset <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|         { |         { | ||||||
|           "id": "contributor", |           "id": "contributor", | ||||||
|           "render": { |           "render": { | ||||||
|  | @ -73,9 +79,230 @@ | ||||||
|             "point", |             "point", | ||||||
|             "centroid" |             "centroid" | ||||||
|           ], |           ], | ||||||
|           "icon": {"render":"teardrop:#00cc00", |           "icon": { | ||||||
|             "mappings": [{"if":"theme=aed","then":"./assets/themes/aed/logo.svg"},{"if":"theme=aed_brugge","then":"./assets/themes/aed/logo.svg"},{"if":"theme=artwork","then":"./assets/themes/artwork/artwork.svg"},{"if":"theme=benches","then":"./assets/themes/benches/bench_poi.svg"},{"if":"theme=bicyclelib","then":"./assets/themes/bicyclelib/logo.svg"},{"if":"theme=binoculars","then":"./assets/layers/binocular/telescope.svg"},{"if":"theme=bookcases","then":"./assets/themes/bookcases/bookcase.svg"},{"if":"theme=buurtnatuur","then":"./assets/themes/buurtnatuur/groen_logo.svg"},{"if":"theme=cafes_and_pubs","then":"./assets/layers/cafe_pub/pub.svg"},{"if":"theme=campersite","then":"./assets/themes/campersite/caravan.svg"},{"if":"theme=charging_stations","then":"./assets/themes/charging_stations/logo.svg"},{"if":"theme=climbing","then":"./assets/themes/climbing/climbing_icon.svg"},{"if":"theme=cycle_highways","then":"./assets/themes/cycle_highways/fietssnelwegen-logo.svg"},{"if":"theme=cycle_infra","then":"./assets/themes/cycle_infra/cycle-infra.svg"},{"if":"theme=cyclenodes","then":"./assets/themes/cyclenodes/logo.svg"},{"if":"theme=cyclestreets","then":"./assets/themes/cyclestreets/F111.svg"},{"if":"theme=cyclofix","then":"./assets/themes/cyclofix/logo.svg"},{"if":"theme=drinking_water","then":"./assets/themes/drinking_water/logo.svg"},{"if":"theme=entrances","then":"./assets/layers/entrance/door.svg"},{"if":"theme=etymology","then":"./assets/layers/etymology/logo.svg"},{"if":"theme=facadegardens","then":"./assets/themes/facadegardens/geveltuin.svg"},{"if":"theme=food","then":"./assets/layers/food/restaurant.svg"},{"if":"theme=fritures","then":"./assets/themes/fritures/logo.svg"},{"if":"theme=fruit_trees","then":"./assets/themes/fruit_trees/fruit_tree.svg"},{"if":"theme=ghostbikes","then":"./assets/themes/ghostbikes/logo.svg"},{"if":"theme=grb","then":"./assets/themes/grb_import/housenumber_blank.svg"},{"if":"theme=grb_fixme","then":"./assets/svg/bug.svg"},{"if":"theme=missing_streets","then":"./assets/svg/robot.svg"},{"if":"theme=hackerspaces","then":"./assets/themes/hackerspaces/glider.svg"},{"if":"theme=hailhydrant","then":"./assets/themes/hailhydrant/logo.svg"},{"if":"theme=mapcomplete-changes","then":"./assets/svg/logo.svg"},{"if":"theme=maps","then":"./assets/themes/maps/logo.svg"},{"if":"theme=nature","then":"./assets/themes/nature/logo.svg"},{"if":"theme=natuurpunt","then":"./assets/themes/natuurpunt/natuurpunt.png"},{"if":"theme=notes","then":"./assets/svg/resolved.svg"},{"if":"theme=observation_towers","then":"./assets/layers/observation_tower/Tower_observation.svg"},{"if":"theme=openwindpowermap","then":"./assets/themes/openwindpowermap/wind_turbine.svg"},{"if":"theme=parkings","then":"./assets/themes/parkings/parkings.svg"},{"if":"theme=personal","then":"./assets/svg/addSmall.svg"},{"if":"theme=play_forests","then":"./assets/layers/play_forest/icon.svg"},{"if":"theme=playgrounds","then":"./assets/themes/playgrounds/playground.svg"},{"if":"theme=postal_codes","then":"./assets/themes/postal_codes/townhall.svg"},{"if":"theme=postboxes","then":"./assets/themes/postboxes/postbox.svg"},{"if":"theme=shops","then":"./assets/themes/shops/shop.svg"},{"if":"theme=sidewalks","then":"./assets/svg/bug.svg"},{"if":"theme=speelplekken","then":"./assets/themes/speelplekken/logo.svg"},{"if":"theme=sport_pitches","then":"./assets/layers/sport_pitch/table_tennis.svg"},{"if":"theme=street_lighting","then":"./assets/layers/street_lamps/street_lamp.svg"},{"if":"theme=street_lighting_assen","then":"./assets/layers/street_lamps/street_lamp.svg"},{"if":"theme=surveillance","then":"./assets/themes/surveillance/logo.svg"},{"if":"theme=toerisme_vlaanderen","then":"./assets/svg/teardrop_with_hole_green.svg"},{"if":"theme=toilets","then":"./assets/themes/toilets/toilets.svg"},{"if":"theme=trees","then":"./assets/themes/trees/logo.svg"},{"if":"theme=uk_addresses","then":"./assets/themes/uk_addresses/housenumber_unknown.svg"},{"if":"theme=waste_basket","then":"./assets/themes/waste_basket/waste_basket.svg"}] |             "render": "teardrop:#00cc00", | ||||||
| 
 |             "mappings": [ | ||||||
|  |               { | ||||||
|  |                 "if": "theme=aed", | ||||||
|  |                 "then": "./assets/themes/aed/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=aed_brugge", | ||||||
|  |                 "then": "./assets/themes/aed/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=artwork", | ||||||
|  |                 "then": "./assets/themes/artwork/artwork.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=benches", | ||||||
|  |                 "then": "./assets/themes/benches/bench_poi.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=bicyclelib", | ||||||
|  |                 "then": "./assets/themes/bicyclelib/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=binoculars", | ||||||
|  |                 "then": "./assets/layers/binocular/telescope.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=bookcases", | ||||||
|  |                 "then": "./assets/themes/bookcases/bookcase.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=buurtnatuur", | ||||||
|  |                 "then": "./assets/themes/buurtnatuur/groen_logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=cafes_and_pubs", | ||||||
|  |                 "then": "./assets/layers/cafe_pub/pub.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=campersite", | ||||||
|  |                 "then": "./assets/themes/campersite/caravan.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=charging_stations", | ||||||
|  |                 "then": "./assets/themes/charging_stations/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=climbing", | ||||||
|  |                 "then": "./assets/themes/climbing/climbing_icon.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=cycle_highways", | ||||||
|  |                 "then": "./assets/themes/cycle_highways/fietssnelwegen-logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=cycle_infra", | ||||||
|  |                 "then": "./assets/themes/cycle_infra/cycle-infra.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=cyclenodes", | ||||||
|  |                 "then": "./assets/themes/cyclenodes/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=cyclestreets", | ||||||
|  |                 "then": "./assets/themes/cyclestreets/F111.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=cyclofix", | ||||||
|  |                 "then": "./assets/themes/cyclofix/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=drinking_water", | ||||||
|  |                 "then": "./assets/themes/drinking_water/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=entrances", | ||||||
|  |                 "then": "./assets/layers/entrance/door.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=etymology", | ||||||
|  |                 "then": "./assets/layers/etymology/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=facadegardens", | ||||||
|  |                 "then": "./assets/themes/facadegardens/geveltuin.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=food", | ||||||
|  |                 "then": "./assets/layers/food/restaurant.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=fritures", | ||||||
|  |                 "then": "./assets/themes/fritures/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=fruit_trees", | ||||||
|  |                 "then": "./assets/themes/fruit_trees/fruit_tree.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=ghostbikes", | ||||||
|  |                 "then": "./assets/themes/ghostbikes/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=grb", | ||||||
|  |                 "then": "./assets/themes/grb_import/housenumber_blank.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=grb_fixme", | ||||||
|  |                 "then": "./assets/svg/bug.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=missing_streets", | ||||||
|  |                 "then": "./assets/svg/robot.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=hackerspaces", | ||||||
|  |                 "then": "./assets/themes/hackerspaces/glider.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=hailhydrant", | ||||||
|  |                 "then": "./assets/themes/hailhydrant/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=mapcomplete-changes", | ||||||
|  |                 "then": "./assets/svg/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=maps", | ||||||
|  |                 "then": "./assets/themes/maps/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=nature", | ||||||
|  |                 "then": "./assets/themes/nature/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=natuurpunt", | ||||||
|  |                 "then": "./assets/themes/natuurpunt/natuurpunt.png" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=notes", | ||||||
|  |                 "then": "./assets/svg/resolved.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=observation_towers", | ||||||
|  |                 "then": "./assets/layers/observation_tower/Tower_observation.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=openwindpowermap", | ||||||
|  |                 "then": "./assets/themes/openwindpowermap/wind_turbine.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=parkings", | ||||||
|  |                 "then": "./assets/themes/parkings/parkings.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=personal", | ||||||
|  |                 "then": "./assets/svg/addSmall.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=play_forests", | ||||||
|  |                 "then": "./assets/layers/play_forest/icon.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=playgrounds", | ||||||
|  |                 "then": "./assets/themes/playgrounds/playground.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=postal_codes", | ||||||
|  |                 "then": "./assets/themes/postal_codes/townhall.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=postboxes", | ||||||
|  |                 "then": "./assets/themes/postboxes/postbox.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=shops", | ||||||
|  |                 "then": "./assets/themes/shops/shop.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=sidewalks", | ||||||
|  |                 "then": "./assets/svg/bug.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=speelplekken", | ||||||
|  |                 "then": "./assets/themes/speelplekken/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=sport_pitches", | ||||||
|  |                 "then": "./assets/layers/sport_pitch/table_tennis.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=street_lighting", | ||||||
|  |                 "then": "./assets/layers/street_lamps/street_lamp.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=street_lighting_assen", | ||||||
|  |                 "then": "./assets/layers/street_lamps/street_lamp.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=surveillance", | ||||||
|  |                 "then": "./assets/themes/surveillance/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=toerisme_vlaanderen", | ||||||
|  |                 "then": "./assets/svg/teardrop_with_hole_green.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=toilets", | ||||||
|  |                 "then": "./assets/themes/toilets/toilets.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=trees", | ||||||
|  |                 "then": "./assets/themes/trees/logo.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=uk_addresses", | ||||||
|  |                 "then": "./assets/themes/uk_addresses/housenumber_unknown.svg" | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "if": "theme=waste_basket", | ||||||
|  |                 "then": "./assets/themes/waste_basket/waste_basket.svg" | ||||||
|  |               } | ||||||
|  |             ] | ||||||
|           }, |           }, | ||||||
|           "iconSize": "30,30,bottom" |           "iconSize": "30,30,bottom" | ||||||
|         } |         } | ||||||
|  | @ -156,14 +383,15 @@ | ||||||
|           "_embedded_cs:themes=feat.get('_embedded_cs').map(cs => cs.theme)", |           "_embedded_cs:themes=feat.get('_embedded_cs').map(cs => cs.theme)", | ||||||
|           "_embedded_cs:users=feat.get('_embedded_cs').map(cs => cs['_last_edit:contributor'])" |           "_embedded_cs:users=feat.get('_embedded_cs').map(cs => cs['_last_edit:contributor'])" | ||||||
|         ], |         ], | ||||||
|         "+mapRendering": [{ |         "+mapRendering": [ | ||||||
|  |           { | ||||||
|             "location": [ |             "location": [ | ||||||
|               "point" |               "point" | ||||||
|             ], |             ], | ||||||
|             "icon": "statistics:black", |             "icon": "statistics:black", | ||||||
|             "iconSize": "30,30,center" |             "iconSize": "30,30,center" | ||||||
|         }] |           } | ||||||
|          |         ] | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   ] |   ] | ||||||
|  |  | ||||||
							
								
								
									
										176
									
								
								assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										176
									
								
								assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,176 @@ | ||||||
|  | { | ||||||
|  |   "id": "mapcomplete-changes", | ||||||
|  |   "title": { | ||||||
|  |     "en": "Changes made with MapComplete" | ||||||
|  |   }, | ||||||
|  |   "shortDescription": { | ||||||
|  |     "en": "Shows changes made by MapComplete" | ||||||
|  |   }, | ||||||
|  |   "description": { | ||||||
|  |     "en": "This maps shows all the changes made with MapComplete" | ||||||
|  |   }, | ||||||
|  |   "language": [ | ||||||
|  |     "en" | ||||||
|  |   ], | ||||||
|  |   "maintainer": "", | ||||||
|  |   "icon": "./assets/svg/logo.svg", | ||||||
|  |   "hideFromOverview": true, | ||||||
|  |   "version": "0", | ||||||
|  |   "startLat": 0, | ||||||
|  |   "startLon": 0, | ||||||
|  |   "startZoom": 1, | ||||||
|  |   "widenFactor": 0.05, | ||||||
|  |   "clustering": false, | ||||||
|  |   "layers": [ | ||||||
|  |     { | ||||||
|  |       "id": "mapcomplete-changes", | ||||||
|  |       "name": { | ||||||
|  |         "en": "Changeset centers" | ||||||
|  |       }, | ||||||
|  |       "minzoom": 0, | ||||||
|  |       "source": { | ||||||
|  |         "osmTags": "editor~*", | ||||||
|  |         "geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/mapcomplete-changes/tile_{z}_{x}_{y}.geojson", | ||||||
|  |         "geoJsonZoomLevel": 8, | ||||||
|  |         "maxCacheAge": 0 | ||||||
|  |       }, | ||||||
|  |       "calculatedTags": [ | ||||||
|  |         "_last_edit:contributor:lc:=feat.properties['_last_edit:contributor'].toLowerCase()" | ||||||
|  |       ], | ||||||
|  |       "title": { | ||||||
|  |         "render": { | ||||||
|  |           "en": "Changeset for {theme}" | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "description": { | ||||||
|  |         "en": "Shows all MapComplete changes" | ||||||
|  |       }, | ||||||
|  |       "tagRenderings": [ | ||||||
|  |         { | ||||||
|  |           "id": "render_id", | ||||||
|  |           "render": { | ||||||
|  |             "en": "Changeset <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "id": "contributor", | ||||||
|  |           "render": { | ||||||
|  |             "en": "Change made by <a href='https://openstreetmap.org/user/{_last_edit:contributor}' target='_blank'>{_last_edit:contributor}</a>" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "id": "theme", | ||||||
|  |           "render": { | ||||||
|  |             "en": "Change with theme <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>" | ||||||
|  |           }, | ||||||
|  |           "mappings": [ | ||||||
|  |             { | ||||||
|  |               "if": "theme~http.*", | ||||||
|  |               "then": { | ||||||
|  |                 "en": "Change with <b>unofficial</b> theme <a href='https://mapcomplete.osm.be/theme.html?userlayout={theme}'>{theme}</a>" | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         } | ||||||
|  |       ], | ||||||
|  |       "mapRendering": [ | ||||||
|  |         { | ||||||
|  |           "location": [ | ||||||
|  |             "point", | ||||||
|  |             "centroid" | ||||||
|  |           ], | ||||||
|  |           "icon": { | ||||||
|  |             "render": "teardrop:#00cc00" | ||||||
|  |           }, | ||||||
|  |           "iconSize": "30,30,center" | ||||||
|  |         } | ||||||
|  |       ], | ||||||
|  |       "filter": [ | ||||||
|  |         { | ||||||
|  |           "id": "theme-search", | ||||||
|  |           "options": [ | ||||||
|  |             { | ||||||
|  |               "osmTags": "theme~.*{search}.*", | ||||||
|  |               "fields": [ | ||||||
|  |                 { | ||||||
|  |                   "name": "search" | ||||||
|  |                 } | ||||||
|  |               ], | ||||||
|  |               "question": { | ||||||
|  |                 "en": "Themename contains {search}" | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "id": "created_by", | ||||||
|  |           "options": [ | ||||||
|  |             { | ||||||
|  |               "osmTags": "_last_edit:contributor:lc~.*{search}.*", | ||||||
|  |               "fields": [ | ||||||
|  |                 { | ||||||
|  |                   "name": "search" | ||||||
|  |                 } | ||||||
|  |               ], | ||||||
|  |               "question": { | ||||||
|  |                 "en": "Made by contributor {search}" | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "id": "not_created_by", | ||||||
|  |           "options": [ | ||||||
|  |             { | ||||||
|  |               "osmTags": "_last_edit:contributor:lc!~.*{search}.*", | ||||||
|  |               "fields": [ | ||||||
|  |                 { | ||||||
|  |                   "name": "search" | ||||||
|  |                 } | ||||||
|  |               ], | ||||||
|  |               "question": { | ||||||
|  |                 "en": "<b>Not</b> made by contributor {search}" | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "builtin": "current_view", | ||||||
|  |       "override": { | ||||||
|  |         "title": "Statistics on changesets in the current view", | ||||||
|  |         "tagRenderings": [ | ||||||
|  |           { | ||||||
|  |             "id": "link_to_more", | ||||||
|  |             "render": { | ||||||
|  |               "en": "More statistics can be found <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>here</a>" | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             "id": "hist_themes", | ||||||
|  |             "render": "{histogram(_embedded_cs:themes, Themename, Number of changesets)}" | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             "id": "hist_themes", | ||||||
|  |             "render": "{histogram(_embedded_cs:users, Contributor, Number of changesets)}" | ||||||
|  |           } | ||||||
|  |         ], | ||||||
|  |         "calculatedTags": [ | ||||||
|  |           "_embedded_cs=feat.overlapWith('mapcomplete-changes').map(f => f.feat.properties)", | ||||||
|  |           "_embedded_cs:themes=feat.get('_embedded_cs').map(cs => cs.theme)", | ||||||
|  |           "_embedded_cs:users=feat.get('_embedded_cs').map(cs => cs['_last_edit:contributor'])" | ||||||
|  |         ], | ||||||
|  |         "+mapRendering": [ | ||||||
|  |           { | ||||||
|  |             "location": [ | ||||||
|  |               "point" | ||||||
|  |             ], | ||||||
|  |             "icon": "statistics:black", | ||||||
|  |             "iconSize": "30,30,center" | ||||||
|  |           } | ||||||
|  |         ] | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | @ -934,6 +934,65 @@ | ||||||
|         "shortDescription": "Map to show hydrants, extinguishers, fire stations, and ambulance stations.", |         "shortDescription": "Map to show hydrants, extinguishers, fire stations, and ambulance stations.", | ||||||
|         "title": "Hydrants, Extinguishers, Fire stations, and Ambulance stations." |         "title": "Hydrants, Extinguishers, Fire stations, and Ambulance stations." | ||||||
|     }, |     }, | ||||||
|  |     "mapcomplete-changes": { | ||||||
|  |         "description": "This maps shows all the changes made with MapComplete", | ||||||
|  |         "layers": { | ||||||
|  |             "0": { | ||||||
|  |                 "description": "Shows all MapComplete changes", | ||||||
|  |                 "filter": { | ||||||
|  |                     "0": { | ||||||
|  |                         "options": { | ||||||
|  |                             "0": { | ||||||
|  |                                 "question": "Themename contains {search}" | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "1": { | ||||||
|  |                         "options": { | ||||||
|  |                             "0": { | ||||||
|  |                                 "question": "Made by contributor {search}" | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "2": { | ||||||
|  |                         "options": { | ||||||
|  |                             "0": { | ||||||
|  |                                 "question": "<b>Not</b> made by contributor {search}" | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 }, | ||||||
|  |                 "name": "Changeset centers", | ||||||
|  |                 "tagRenderings": { | ||||||
|  |                     "contributor": { | ||||||
|  |                         "render": "Change made by <a href='https://openstreetmap.org/user/{_last_edit:contributor}' target='_blank'>{_last_edit:contributor}</a>" | ||||||
|  |                     }, | ||||||
|  |                     "theme": { | ||||||
|  |                         "mappings": { | ||||||
|  |                             "0": { | ||||||
|  |                                 "then": "Change with <b>unofficial</b> theme <a href='https://mapcomplete.osm.be/theme.html?userlayout={theme}'>{theme}</a>" | ||||||
|  |                             } | ||||||
|  |                         }, | ||||||
|  |                         "render": "Change with theme <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>" | ||||||
|  |                     } | ||||||
|  |                 }, | ||||||
|  |                 "title": { | ||||||
|  |                     "render": "Changeset for {theme}" | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "1": { | ||||||
|  |                 "override": { | ||||||
|  |                     "tagRenderings": { | ||||||
|  |                         "link_to_more": { | ||||||
|  |                             "render": "More statistics can be found <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>here</a>" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "shortDescription": "Shows changes made by MapComplete", | ||||||
|  |         "title": "Changes made with MapComplete" | ||||||
|  |     }, | ||||||
|     "maps": { |     "maps": { | ||||||
|         "description": "On this map you can find all maps OpenStreetMap knows - typically a big map on an information board showing the area, city or region, e.g. a tourist map on the back of a billboard, a map of a nature reserve, a map of cycling networks in the region, ...) <br/><br/>If a map is missing, you can easily map this map on OpenStreetMap.", |         "description": "On this map you can find all maps OpenStreetMap knows - typically a big map on an information board showing the area, city or region, e.g. a tourist map on the back of a billboard, a map of a nature reserve, a map of cycling networks in the region, ...) <br/><br/>If a map is missing, you can easily map this map on OpenStreetMap.", | ||||||
|         "shortDescription": "This theme shows all (touristic) maps that OpenStreetMap knows of", |         "shortDescription": "This theme shows all (touristic) maps that OpenStreetMap knows of", | ||||||
|  |  | ||||||
|  | @ -121,7 +121,7 @@ export default class ScriptUtils { | ||||||
| 
 | 
 | ||||||
|     public static getThemeFiles(): { parsed: LayoutConfigJson, path: string }[] { |     public static getThemeFiles(): { parsed: LayoutConfigJson, path: string }[] { | ||||||
|         return ScriptUtils.readDirRecSync("./assets/themes") |         return ScriptUtils.readDirRecSync("./assets/themes") | ||||||
|             .filter(path => path.endsWith(".json")) |             .filter(path => path.endsWith(".json") && !path.endsWith(".proto.json")) | ||||||
|             .filter(path => path.indexOf("license_info.json") < 0) |             .filter(path => path.indexOf("license_info.json") < 0) | ||||||
|             .map(path => { |             .map(path => { | ||||||
|                 try { |                 try { | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| import ScriptUtils from "./ScriptUtils"; | import ScriptUtils from "./ScriptUtils"; | ||||||
| import {existsSync, mkdirSync, writeFileSync} from "fs"; | import {existsSync, mkdirSync, readFileSync, writeFileSync} from "fs"; | ||||||
| import * as licenses from "../assets/generated/license_info.json" | import * as licenses from "../assets/generated/license_info.json" | ||||||
| import {LayoutConfigJson} from "../Models/ThemeConfig/Json/LayoutConfigJson"; | import {LayoutConfigJson} from "../Models/ThemeConfig/Json/LayoutConfigJson"; | ||||||
| import {LayerConfigJson} from "../Models/ThemeConfig/Json/LayerConfigJson"; | import {LayerConfigJson} from "../Models/ThemeConfig/Json/LayerConfigJson"; | ||||||
|  | @ -15,16 +15,11 @@ import {Translation} from "../UI/i18n/Translation"; | ||||||
| import {TagRenderingConfigJson} from "../Models/ThemeConfig/Json/TagRenderingConfigJson"; | import {TagRenderingConfigJson} from "../Models/ThemeConfig/Json/TagRenderingConfigJson"; | ||||||
| import * as questions from "../assets/tagRenderings/questions.json"; | import * as questions from "../assets/tagRenderings/questions.json"; | ||||||
| import * as icons from "../assets/tagRenderings/icons.json"; | import * as icons from "../assets/tagRenderings/icons.json"; | ||||||
|  | import PointRenderingConfigJson from "../Models/ThemeConfig/Json/PointRenderingConfigJson"; | ||||||
| 
 | 
 | ||||||
| // This scripts scans 'assets/layers/*.json' for layer definition files and 'assets/themes/*.json' for theme definition files.
 | // This scripts scans 'assets/layers/*.json' for layer definition files and 'assets/themes/*.json' for theme definition files.
 | ||||||
| // It spits out an overview of those to be used to load them
 | // It spits out an overview of those to be used to load them
 | ||||||
| 
 | 
 | ||||||
| interface LayersAndThemes { |  | ||||||
|     themes: LayoutConfigJson[], |  | ||||||
|     layers: { parsed: LayerConfigJson, path: string }[] |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class LayerOverviewUtils { | class LayerOverviewUtils { | ||||||
| 
 | 
 | ||||||
|     writeSmallOverview(themes: { id: string, title: any, shortDescription: any, icon: string, hideFromOverview: boolean }[]) { |     writeSmallOverview(themes: { id: string, title: any, shortDescription: any, icon: string, hideFromOverview: boolean }[]) { | ||||||
|  | @ -112,16 +107,22 @@ class LayerOverviewUtils { | ||||||
| 
 | 
 | ||||||
|         writeFileSync("./assets/generated/known_layers.json", JSON.stringify(Array.from(sharedLayers.values()))) |         writeFileSync("./assets/generated/known_layers.json", JSON.stringify(Array.from(sharedLayers.values()))) | ||||||
| 
 | 
 | ||||||
|         /* | 
 | ||||||
|         writeFileSync('./assets/themes/mapcomplete-changes/icons-mapping.txt', JSON.stringify( |         { | ||||||
|  |             // mapcomplete-changes shows an icon for each corresponding mapcomplete-theme
 | ||||||
|  |             const iconsPerTheme = | ||||||
|                 Array.from(sharedThemes.values()).map(th => ({ |                 Array.from(sharedThemes.values()).map(th => ({ | ||||||
|                     if: "theme=" + th.id, |                     if: "theme=" + th.id, | ||||||
|                     then: th.icon |                     then: th.icon | ||||||
|                 })) |                 })) | ||||||
|         )) //*/
 |             const proto: LayoutConfigJson = JSON.parse(readFileSync("./assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json", "UTF8")); | ||||||
| 
 |             const protolayer = <LayerConfigJson>(proto.layers.filter(l => l["id"] === "mapcomplete-changes")[0]) | ||||||
|  |             const rendering = (<PointRenderingConfigJson>protolayer.mapRendering[0]) | ||||||
|  |             rendering.icon["mappings"] = iconsPerTheme | ||||||
|  |             writeFileSync('./assets/themes/mapcomplete-changes/mapcomplete-changes.json', JSON.stringify(proto, null, "  ")) | ||||||
| 
 | 
 | ||||||
|         } |         } | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     private buildLayerIndex(knownImagePaths: Set<string>): Map<string, LayerConfigJson> { |     private buildLayerIndex(knownImagePaths: Set<string>): Map<string, LayerConfigJson> { | ||||||
|         // First, we expand and validate all builtin layers. These are written to assets/generated/layers
 |         // First, we expand and validate all builtin layers. These are written to assets/generated/layers
 | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ export default class CreateNoteImportLayerSpec extends T { | ||||||
|                 const layer = new LayerConfig(layerPrepare.convertStrict(desugaringState, bookcases, "ImportLayerGeneratorTest:Parse bookcases"), "ImportLayerGeneratorTest: init bookcases-layer") |                 const layer = new LayerConfig(layerPrepare.convertStrict(desugaringState, bookcases, "ImportLayerGeneratorTest:Parse bookcases"), "ImportLayerGeneratorTest: init bookcases-layer") | ||||||
|                 const generator = new CreateNoteImportLayer() |                 const generator = new CreateNoteImportLayer() | ||||||
|                 const generatedLayer = generator.convertStrict(desugaringState, layer, "ImportLayerGeneratorTest: convert") |                 const generatedLayer = generator.convertStrict(desugaringState, layer, "ImportLayerGeneratorTest: convert") | ||||||
|                 fs.writeFileSync("bookcases-import-layer.generated.json", JSON.stringify(generatedLayer, null, "  "), "utf8") |        //         fs.writeFileSync("bookcases-import-layer.generated.json", JSON.stringify(generatedLayer, null, "  "), "utf8")
 | ||||||
| console.log(JSON.stringify(generatedLayer, null, "  ")) | console.log(JSON.stringify(generatedLayer, null, "  ")) | ||||||
|             }] |             }] | ||||||
|         ]); |         ]); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue