query-38af234ee096a5b04dbe768aa94d7649
Duplicate lines in map / make lines separatedHello, basically that query functions well.
Use at
- https://query.wikidata.org/sparql
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX psv: <http://www.wikidata.org/prop/statement/value/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX bd: <http://www.bigdata.com/rdf#>
#defaultView:Map{"hide":["?coordinates", "?line", "?rgb"]}
SELECT DISTINCT ?coordinates ?line ?item ?itemLabel ?connectLabel ?image ?opening ?rgb
WHERE {
{ {
SELECT ?item (SAMPLE(?coordinates) AS ?coordinates) (sample(?lat1) as ?lat1) (sample(?lon1) as ?lon1)
WHERE {
?item wdt:P31 wd:Q2175765 ;
wdt:P361 wd:Q2060490 ;
wdt:P625 ?coordinates ;
p:P625 / psv:P625 / wikibase:geoLatitude ?lat1 ;
p:P625 / psv:P625 / wikibase:geoLongitude ?lon1 .
} GROUP BY ?item
}} UNION { {
SELECT ?line ?connect ?rgb WHERE {
{
SELECT ?item (SAMPLE(?coordinates) AS ?coordinates) (sample(?lat1) as ?lat1) (sample(?lon1) as ?lon1)
WHERE {
?item wdt:P31 wd:Q2175765 ;
wdt:P361 wd:Q2060490 ;
wdt:P625 ?coordinates ;
p:P625 / psv:P625 / wikibase:geoLatitude ?lat1 ;
p:P625 / psv:P625 / wikibase:geoLongitude ?lon1 .
} GROUP BY ?item
}.
{
SELECT ?nextstation (sample(?lat2) as ?lat2) (sample(?lon2) as ?lon2) WHERE {
?nextstation wdt:P31 wd:Q2175765 ;
wdt:P361 wd:Q2060490 ;
p:P625 / psv:P625 / wikibase:geoLatitude ?lat2 ;
p:P625 / psv:P625 / wikibase:geoLongitude ?lon2 .
} GROUP BY ?nextstation
}.
?item p:P197 ?nextstationstatement .
?nextstationstatement ps:P197 ?nextstation ;
pq:P81 ?connect .
?connect wdt:P465 ?rgb.
FILTER(STR(?item) < STR(?nextstation)) .
BIND(CONCAT('LINESTRING (', STR(?lon1), ' ', STR(?lat1), ',', STR(?lon2), ' ', STR(?lat2), ')') AS ?str) .
BIND(STRDT(?str, geo:wktLiteral) AS ?line)
}
} } .
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
Query found at
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v9("?connect")
v6("?coordinates"):::projected
v1("?item"):::projected
v6("?lat1")
v8("?lat2")
v12("?line"):::projected
v6("?lon1")
v8("?lon2")
v5("?nextstation")
v8("?nextstationstatement")
v10("?rgb"):::projected
v11("?str")
a1((" "))
a2((" "))
a3((" "))
a4((" "))
a5((" "))
a6((" "))
a7((" "))
a8((" "))
a9((" "))
a10((" "))
a11((" "))
a12((" "))
c2(["wd:Q2175765"]):::iri
c17(["fr"]):::literal
c4(["wd:Q2060490"]):::iri
c15(["bd:serviceParam"]):::iri
subgraph union0[" Union "]
subgraph union0l[" "]
style union0l fill:#abf,stroke-dasharray: 3 3;
f0[["str(?item) < str(?nextstation)"]]
f0 --> v1
f0 --> v5
v1 --"p:direct/P31"--> c2
v1 --"p:direct/P361"--> c4
v1 --"p:direct/P625"--> v6
v1 --"p:P625"--> a5
a5 --"p:statement/value/P625"--> a6
a6 --"wikibase:geoLatitude"--> v6
v1 --"p:P625"--> a7
a7 --"p:statement/value/P625"--> a8
a8 --"wikibase:geoLongitude"--> v6
bind4[/"sample(?coordinates)"/]
v6 --o bind4
bind4 --as--o v6
bind5[/"sample(?lat1)"/]
v6 --o bind5
bind5 --as--o v6
bind6[/"sample(?lon1)"/]
v6 --o bind6
bind6 --as--o v6
v5 --"p:direct/P31"--> c2
v5 --"p:direct/P361"--> c4
v5 --"p:P625"--> a9
a9 --"p:statement/value/P625"--> a10
a10 --"wikibase:geoLatitude"--> v8
v5 --"p:P625"--> a11
a11 --"p:statement/value/P625"--> a12
a12 --"wikibase:geoLongitude"--> v8
bind9[/"sample(?lat2)"/]
v8 --o bind9
bind9 --as--o v8
bind10[/"sample(?lon2)"/]
v8 --o bind10
bind10 --as--o v8
v1 --"p:P197"--> v8
v8 --"p:statement/P197"--> v5
v8 --"p:qualifier/P81"--> v9
v9 --"p:direct/P465"--> v10
bind11[/"concat('LINESTRING (',str(?lon1),' ',str(?lat1),',',str(?lon2),' ',str(?lat2),')')"/]
v6 --o bind11
v6 --o bind11
v8 --o bind11
v8 --o bind11
bind11 --as--o v11
bind12[/"STRDT(?str,'geo:wktLiteral')"/]
v11 --o bind12
bind12 --as--o v12
end
subgraph union0r[" "]
style union0r fill:#abf,stroke-dasharray: 3 3;
v1 --"p:direct/P31"--> c2
v1 --"p:direct/P361"--> c4
v1 --"p:direct/P625"--> v6
v1 --"p:P625"--> a1
a1 --"p:statement/value/P625"--> a2
a2 --"wikibase:geoLatitude"--> v6
v1 --"p:P625"--> a3
a3 --"p:statement/value/P625"--> a4
a4 --"wikibase:geoLongitude"--> v6
bind16[/"sample(?coordinates)"/]
v6 --o bind16
bind16 --as--o v6
bind17[/"sample(?lat1)"/]
v6 --o bind17
bind17 --as--o v6
bind18[/"sample(?lon1)"/]
v6 --o bind18
bind18 --as--o v6
end
union0r <== or ==> union0l
end
subgraph s1["http://wikiba.se/ontology#label"]
style s1 stroke-width:4px;
c15 --"wikibase:language"--> c17
end