Requête turbo OSM, gares du Gauteng en Afrique du Sud

Bonjour, j’ai un début de requête des gares d’Afrique du sud avec turbo, mais je voudrais la limiter avec ce critère : « network:wikidata »=« Q12061746 »
Comment faire? Merci :slight_smile:

<osm-script output="json" timeout="120">
  <id-query {{nominatimArea:South Africa}} into="area"/>
  <!-- gather results -->
  <union>
    <!-- query part for: “railway=station” -->
    <query type="node">
      <has-kv k="railway" v="station"/>
      <area-query from="area"/>
    </query>
    <query type="way">
      <has-kv k="railway" v="station"/>
      <area-query from="area"/>
    </query>
    <query type="relation">
      <has-kv k="railway" v="station"/>
      <area-query from="area"/>
    </query>
  </union>
  <!-- print results -->
  <print mode="body"/>
  <recurse type="down"/>
  <print mode="skeleton" order="quadtile"/>
</osm-script>

Comme ceci ?

<osm-script output="json" output-config="" timeout="250">
  <query into="searchArea" type="area">
    <id-query type="area" ref="3600087565" into="searchArea"/>
  </query>
  <query into="_" type="nwr">
    <has-kv k="network:wikidata" modv="" v="Q12061746"/>
    <has-kv k="railway" modv="" v="station"/>
    <area-query from="searchArea"/>
  </query>
  <print e="" from="_" geometry="full" ids="yes" limit="" mode="body" n="" order="id" s="" w=""/>
</osm-script>

Mais cette requête ne remonte rien ?

Par contre celle-ci oui (uniquement le critère network:wikidata=Q12061746) :

<osm-script output="json" output-config="" timeout="25">
 <query into="searchArea" type="area">
   <id-query type="area" ref="3600087565" into="searchArea"/>
 </query>
 <query into="_" type="nwr">
   <has-kv k="network:wikidata" modv="" v="Q12061746"/>
   <area-query from="searchArea"/>
 </query>
 <print e="" from="_" geometry="full" ids="yes" limit="" mode="body" n="" order="id" s="" w=""/>
</osm-script>

Et celle-ci aussi (uniquement le critère railway=station) :

<osm-script output="json" output-config="" timeout="250">
  <query into="searchArea" type="area">
    <id-query type="area" ref="3600087565" into="searchArea"/>
  </query>
  <query into="_" type="nwr">
    <has-kv k="railway" modv="" v="station"/>
    <area-query from="searchArea"/>
  </query>
  <print e="" from="_" geometry="full" ids="yes" limit="" mode="body" n="" order="id" s="" w=""/>
</osm-script>

Merci mais la dernière avec le critère railway=station a le format qui m’intéresse ; cependant elle prend tout le pays et ne se limite pas aux relations du service network:wikidata=Q12061746. J’aurais juste besoin d’une liste de gares, leurs coordonnées, leur nom reliés directement (ou indirectement) à network:wikidata=Q12061746, et leurs éventuelles relation (ligne de X à Y, exemple « Randfontein → Johannesburg » (r10671077)

Peut-être ça alors plutôt ?

<osm-script output="json" output-config="" timeout="250">
  <query into="searchArea" type="area">
    <id-query type="area" ref="3600087565" into="searchArea"/>
  </query>
  <query into="Q12061746" type="relation">
    <has-kv k="network:wikidata" modv="" v="Q12061746"/>
    <area-query from="searchArea"/>
  </query>
  <query into="_" type="node">
    <has-kv k="railway" modv="" v="station"/>
    <recurse from="Q12061746" type="relation-node"/>
  </query>
  <print e="" from="_" geometry="full" ids="yes" limit="" mode="body" n="" order="id" s="" w=""/>
</osm-script>

Ça remonte ça :

Ca se rapproche un petit peu du besoin mais le résultat ne semble pas refléter ce qu’on peut voir là dessus par ex https://upload.wikimedia.org/wikipedia/commons/1/16/Metrorail_Gauteng.png

Cette requête remonte qq chose qui ressemble à carte du Gauteng metrorail

<osm-script output="json" output-config="" timeout="250">
  <query into="searchArea" type="area">
    <id-query type="area" ref="3600087565" into="searchArea"/>
  </query>
  <union into="_">
    <query into="_" type="relation">
      <has-kv k="network:wikidata" modv="" v="Q12061746"/>
      <area-query from="searchArea"/>
    </query>
    <query into="_" type="node">
      <has-kv k="railway" modv="" v="stop"/>
      <recurse type="relation-node"/>
    </query>
    <recurse from="_" into="_" type="down"/>
  </union>
  <print e="" from="_" geometry="skeleton" ids="yes" limit="" mode="body" n="" order="id" s="" w=""/>
</osm-script>

Mais du coup ce sont plutôt les railway=stop qu’il fallait chercher ?


overpass-turbo.eu/s/1GTw

Il faudrait chercher un peu à partir de là …
Il doit y avoir d’autres trucs à comprendre d’intéressant :slight_smile:

1 Like

C’est presque exactement ce que je cherchais, j’ai de quoi bosser de mon côté :slight_smile: Thanks a lot