Ignore:
Timestamp:
09/10/14 12:08:18 (10 years ago)
Author:
frank.jaeger
Message:

Umstellung von PostNAS 0.7 auf PostNAS 0.8, ohne Tabelle "alkis_beziehungen".

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mapbender/http/nav/alkisnav_fkt.php

    r315 r330  
    44        2013-05-14  Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar. 
    55        2013-05-15  Function verlegt 
    6     2014-02-06  Korrektur zeile_person 
     6        2014-02-06  Korrektur zeile_person 
     7        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    78*/ 
    89 
    9 // function Typ "zeile_**"  = Ausgabe eines Knotens 
    10 // - Icon,  ggf. mit Link zur Buchauskunft 
    11 // - Zeile, ggf. mit Link zur weiteren Auflösung untergeordneter Knoten 
    12 // Hierin die Encodierung fÃŒr url und HTML. 
    13  
    1410function is_ne_zahl($wert) { 
    15         // Prueft, ob ein Wert ausschließlich aus den Zahlen 0 bis 9 besteht 
     11        // PrÃŒft, ob ein Wert ausschließlich aus den Zahlen 0 bis 9 besteht 
    1612        if (trim($wert, "0..9") == "") {return true;} else {return false;} 
    1713} 
     
    7470} 
    7571 
     72// function Typ "zeile_**"  = Ausgabe eines Knotens 
     73// - Icon,  ggf. mit Link zur Buchauskunft 
     74// - Zeile, ggf. mit Link zur weiteren Auflösung untergeordneter Knoten 
     75// Hierin die Encodierung fÃŒr url und HTML. 
     76 
    7677function zeile_ag ($ag, $anr, $aktuell) {       // Zeile  A m t s g e r i c h t 
    7778        global $gkz, $gemeinde, $epsg, $auskpath; 
     
    235236 
    236237        // SQL-Bausteine vorbereiten 
    237         // SQL vorne gleich 
     238        // vorne gleich 
    238239        $sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
    239240        if($epsg == "25832") { // Transform nicht notwendig 
     
    244245                $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";                      
    245246        } 
    246         $sql1.="g.gemarkung, g.gemarkungsname "; 
    247         $sql1.="FROM alkis_beziehungen vbg "; 
    248         $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id ";  
    249  
    250         // Zwischen-JOIN verschieden 
    251         $sqlz1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 
     247        $sql1.="g.gemarkung, g.gemarkungsname FROM ax_buchungsstelle s1 ";  
     248 
     249        // 2 Varianten zwischen 
     250    $sqlz1="JOIN ax_flurstueck f ON f.istgebucht = s1.gml_id "; 
    252251         
    253         $sqlz2 ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 
    254         $sqlz2.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 
    255         $sqlz2.="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 
    256  
    257         // SQL hinten gleich 
    258         $sql2 ="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; 
     252        $sqlz2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id = ANY(s1.an) "; // nur an oder "an" und "zu" ? 
     253// Test: SELECT * FROM ax_buchungsstelle WHERE NOT zu IS NULL;  // keine Treffer fÃŒr "zu" 
     254//      $sqlz2 ="JOIN ax_buchungsstelle s2 ON (s2.gml_id = ANY(s1.an) OR s2.gml_id = ANY(s1.zu)) ";  
     255    $sqlz2.="JOIN ax_flurstueck f ON f.istgebucht = s2.gml_id "; 
     256 
     257        // hinten gleich 
    259258        $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 
    260         $sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 
     259        $sql2.="WHERE s1.istbestandteilvon = $1 "; 
    261260        switch ($gfilter) { 
    262261                case 1: // Einzelwert 
    263                         $sql2.="AND g.gemeinde=".$gemeinde." "; break; 
     262                        $sql2.="AND g.gemeinde='".$gemeinde."' "; break; 
    264263                case 2: // Liste 
    265                         $sql2.="AND g.gemeinde in (".$gemeinde.") "; break; 
     264                        $sql2.="AND g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 
    266265        } 
    267266        $sql2.="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 
     
    276275        if (!$res) { 
    277276                echo "\n<p class='err'>Fehler bei Buchung und Flurst&uuml;ck.</p>"; 
    278                 #if ($debug >= 3) {echo "\n<p class='err'>".$sql1.$sqlz1.$sql2."</p>";} 
     277                if ($debug >= 3) {echo "\n<p class='err'>".$sql1.$sqlz1.$sql2."</p>";} 
    279278                return; 
    280279        } 
Note: See TracChangeset for help on using the changeset viewer.