To define layers in mapview the following is currently needed.
Below a working sample to illustrate this.
#defaultView:Map SELECT ?item ?itemLabel ?layer ?coor { ?item wdt:P1435 wd:Q9259 . ?item wdt:P17 ?country . ?country wdt:P30 wd:Q18 . ?item wdt:P625 ?coor SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . ?country rdfs:label ?layer . ?item rdfs:label ?itemLabel } }
If ?layerLabel could be used instead, this could be simplified to:
#defaultView:Map SELECT ?item ?itemLabel ?layerLabel ?coor { ?item wdt:P1435 wd:Q9259 . ?item wdt:P17 ?layer . ?layer wdt:P30 wd:Q18 . ?item wdt:P625 ?coor SERVICE wikibase:label { bd:serviceParam wikibase:language "en" } }
Simply defining ?layer in SELECT isn't possible. This is not specific to mapview.
#defaultView:Map SELECT ?item ?itemLabel (?countryLabel as ?layer) ?coor { ?item wdt:P1435 wd:Q9259 . ?item wdt:P17 ?country . ?country wdt:P30 wd:Q18 . ?item wdt:P625 ?coor SERVICE wikibase:label { bd:serviceParam wikibase:language "en" } }
It could work if one wanted QIDs for layers ;)
#defaultView:Map SELECT ?item ?itemLabel (?country as ?layer) ?countryLabel ?coor { ?item wdt:P1435 wd:Q9259 . ?item wdt:P17 ?country . ?country wdt:P30 wd:Q18 . ?item wdt:P625 ?coor SERVICE wikibase:label { bd:serviceParam wikibase:language "en" } }