x

Namen der Autobahnen raufiltern, sofern vorhanden


  1. Namen der Autobahnen raufiltern, sofern vorhanden · joergi2012 (Gast) · 20.01.2013 16:14 · [flux]

    Hi,

    ich suche eine Möglichkeit, mittels PHP die Namen von Autobahnen, soweit vorhanden auszulesen. Diese befinden sich im array "->elements->tags->ref". Aber irgendwie funktioniert das nicht. Wo der Fehler liegt ist mir klar ($z3=......). Aber ich weiß nicht, wie ich das Problem lösen kann. Habt Ihr eine Idee? Danke im voraus für Eure Hilfe 🙂

    <?php
    $url='http://www.overpass-api.de/api/interpreter?data=[out:json];way[highway="motorway_link"]('.$x1.','.$x2.','.$x3.','.$x4.');out;';
    $ja7␣=␣file_get_contents($url);
    $jb7␣=␣json_decode($ja7);
    $z1=0;
    $z2=count($jb7->elements);␣//␣gibt␣die␣richtige␣Anzahl␣der␣Elemente␣zurück
    while␣($z1<$z2)
    {
    $z3=$jb7[$z1]->tags->ref;␣//␣hier␣ist␣der␣Fehler␣:-(
    echo␣"<br>*".$z3;
    $z1++;
    }
    ?>
    

    • Re: Namen der Autobahnen raufiltern, sofern vorhanden · mmd (Gast) · 20.01.2013 16:36 · [flux]

      Hallo,

      vorab: geht hier noch um das gleiche Problem wie in diesem Thread? http://forum.openstreetmap.org/viewtopic.php?id=19775

      Wenn ja, schau doch bitte nochmal im Post unten nach, Roland hat dort die Funktionsweise der Abfrage im Detail erklärt. Dort sollten dann auch die Autobahnen samt ref=* herauskommen, sofern sie an einer Auf- oder Abfahrt liegt.

      http://forum.openstreetmap.org/viewtopi … 80#p305380

      Gruß,


    • Re: Namen der Autobahnen raufiltern, sofern vorhanden · joergi2012 (Gast) · 20.01.2013 19:01 · [flux]

      Hi mmd,

      ja, es ist dasselbe Problem. Leider blicke ich bei der foreach Schleife nicht durch. Bin noch PHP Anfänger. Wie gesagt suche ich einen einfachen Weg, das Element "ref" anzuzeigen 🤔


    • Re: Namen der Autobahnen raufiltern, sofern vorhanden · mmd (Gast) · 20.01.2013 19:11 · [flux]

      .


    • Re: Namen der Autobahnen raufiltern, sofern vorhanden · Netzwolf (Gast) · 20.01.2013 21:20 · [flux]

      Nahmd,

      joergi2012 wrote:

      Leider blicke ich bei der foreach Schleife nicht durch. Bin noch PHP Anfänger. Wie gesagt suche ich einen einfachen Weg, das Element "ref" anzuzeigen.

      <?php
      $url='http://www.overpass-api.de/api/interpreter?data=[out:json];way[highway="motorway_link"]('.$x1.','.$x2.','.$x3.','.$x4.');out;';
      $ja7␣=␣file_get_contents($url);
      $jb7␣=␣json_decode($ja7);
      $z1=0;
      $z2=count($jb7->elements);␣//␣gibt␣die␣richtige␣Anzahl␣der␣Elemente␣zurück
      while␣($z1<$z2)
      {
      $z3=$jb7[$z1]->tags->ref;␣//␣hier␣ist␣der␣Fehler␣:-(
      echo␣"<br>*".$z3;
      $z1++;
      }
      ?>
      

      Probiere es mal so:

      [...]
      $text␣=␣file_get_contents($url);
      $tree␣=␣json_decode($text);
      $elements␣=␣$tree->elements;
      $refs=array();
      foreach␣($elements␣as␣$element)␣{
      $tags␣=␣$element->tags;
      $ref␣=␣$tags->ref;
      if␣($ref)␣$refs[]␣=␣$ref;
      }
      sort($refs);
      echo␣join␣(",␣",␣array_unique($refs));
      ?>
      

      Gruß Wolf


    • Re: Namen der Autobahnen raufiltern, sofern vorhanden · joergi2012 (Gast) · 20.01.2013 22:00 · [flux]

      Hi Netzwolf,

      Suuuppäärr, klappt einwandfrei. Du hast mir sehr geholfen. Vielen Dank 🙂