//
 // ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:Street_map_with_marks
 // Please do not modify it anywhere else, as it may get copied and override your changes.
 // Suggestions can be made at https://www.mediawiki.org/wiki/Template_talk:Graph:Street_map_with_marks
 //
 // Template translation is in https://commons.wikimedia.org/wiki/Data:Original/Template:Graphs.tab
 //
 "version": 2, "width":}, "height": }}}}, "padding": },
 "signals":[
 // These signals allow us to quickly move the map within the image, e.g. to leave space for the legend
 ],
 "data": [
 "name": "data",
 // If query parameter is given, use it to get data from Wikidata Query service
 // Assume that it contains "coord" field with the geo coordinates
 "url": "wikidatasparql:///?query=}|PATH}}",
 "format": {"type": "json"},
 // Use tabular data source
 "url": "tabular:///}|PATH}}",
 "format": {"type": "json", "property": "data"},
 "values": [ {{{1|
 ],
 "transform": [
 // If query is given, translate geo coordinate [longitude, latitude] array into two values
 "type": "geo",
 "projection": "mercator",
 "scale": {"expr": "imgTileSize/PI/2*pow"},
 "translate": [{"expr": "imgXC"}, {"expr": "imgYC"}],
 "center": [{"expr": "imgLon"}, {"expr": "imgLat"}],
 "lon": "lon", "lat": "lat"
 ]
 // Hack: single value data source for drawing/hiding images and other non-series elements
 "name": "dummyData",
 "values": [{}]
 ],
 "scales": [
 "name": "sColor",
 "type": "ordinal",
 "range": "category10",
 "domain": {"data": "data", "field": "}"}
 ],
// Legend only works if showLegend and colorScaleField are set
 "legends": [
 "title": "Legend",
 "fill": "sColor",
 "properties": {
 "legend": {
 "x": {"value": } - } }} },
 "width": {"value": } },
 "stroke": {"value": "#ddd"},
 "fill": {"value": "#fff"},
 "strokeWidth": {"value": 2}
 ],
 "marks": [
 "type": "image",
 "from": {
 "data": "dummyData",
 "transform": [
 ]
 "properties": {
 "enter": {
 "url": {"field": "url"},
 "xc": {"signal": "imgXC"}, "yc": {"signal": "imgYC"},
 "width": {"signal": "imgWidth"}, "height": {"signal": "imgHeight"}
 // Places an image of a given name and size at the [lan,lon] location
 "type": "image",
 "from": {
 "data": "data",
 "transform": [
 "expr": "if(!test, 'wikifile:///'+datum.img, datum.img)" },
 // Ensure that either width or height parameter is passed to wikifile:// request
 "expr": "if((datum.iconWidth datum.iconHeight) && !test(/[?&](widthheight)=\\d/, datum.img),if, datum.img)" },
 ]},
 "properties": {
 "enter": {
 "url": {"field": "img"},
 "xc": {"field": "layout_x"}, "yc": {"field": "layout_y"},
 "width": {"field": "iconWidth"}, "height": {"field": "iconHeight"}
 // Draw marks of a given color, shape, and size at the [lan,lon] location
 "type": "symbol",
 "from": {
 "data": "data",
 "transform": [{ "type": "filter", "test": "!datum.img" }]
 "properties": {
 "enter": {
 "x": {"field": "layout_x"},
 "y": {"field": "layout_y"},
 // If colorScaleField is set, use color scaling, otherwise use the preset color value
 "fill": { }| "field": "type", "scale": "sColor" | "field": "color" }} },
 "size": {"field": "size"},
 "shape": {"field": "shape"},
 "stroke": {"field": "strokeColor"}
 // Draw text with the given color and size at the [lan,lon] location
 // See https://github.com/vega/vega/wiki/Marks#text for all parameter description (prepend "text" and capitalize them)
 "type": "text",
 "from": {
 "data": "data",
 "transform": [
 // Figure out if this is an LTR or RTL page. For LTR, show label to the right of the icon, left-aligned. For RTL, reverse.
 // If these values are not defined 
 ]},
 "properties": {
 "enter": {
 "text": {"field": "text"},
 "x": {"field": "layout_x" },
 "y": {"field": "layout_y"},
 "dx": {"field": "textDx" },
 "dy": {"field": "textDy"},
 "fill": {"field": "textColor"},
 "align": {"field": "textAlign"},
 "baseline": {"field": "textBaseline"},
 "radius": {"field": "textRadius"},
 "theta": {"field": "textTheta"},
 "angle": {"field": "textAngle"},
 "font": {"field": "textFont"},
 "fontSize": {"field": "textFontSize"},
 "fontWeight": {"field": "textFontWeight"},
 "fontStyle": {"field": "textFontStyle"}
 // Draw a low-zoom locator map frame
 "type": "rect",
 "from": {
 "data": "dummyData",
 "transform": [
 ]
 "properties": {
 "enter": {
 "xc": {"signal": "picXC"}, "yc": {"signal": "picYC"},
 "width": {"signal": "picWidth", "offset":2}, "height": {"signal": "picHeight"},
 "stroke": {"value":"#fff"},"strokeWidth": {"value":6},
 // Draw a low-zoom locator map by using a premade world map image
 "type": "image",
 "from": {
 "data": "dummyData",
 "transform": [
 ]
 "properties": {
 "enter": {
 "url": {"value": "wikirawupload:"},
 "xc": {"signal": "picXC"}, "yc": {"signal": "picYC"},
 "width": {"signal": "picWidth"}, "height": {"signal": "picHeight"}
 // Draw a zoom-out mark at the [lan,lon] location
 "type": "symbol",
 "from": {
 "data": "dummyData",
 "transform": [
 "type": "geo",
 "projection": "equirectangular",
 "scale": {"expr": "180/2/PI"},
 "translate": [{"expr": "picXC"}, {"expr": "picYC"}],
 "center": [{"expr": "0"}, {"expr": "0"}],
 "lon": "lon", "lat": "lat"
 ]
 "properties": {
 "enter": {
 "x": {"field": "layout_x"}, "y": {"field": "layout_y"},
 "fill": {"value": "#c33"},
 "stroke": {"value": "#ffe7e6"},
 "size": {"value": 40}
 ]
}}