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" }
}