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_adr.php

    r309 r330  
    88        2013-05-15  Gruppierung nach Gemeinde, mehrfache HsNr (ap_pto.advstandardmodell) unterdrÃŒcken, Icon f. Straße 
    99        2014-01-23      Link zum Auskunft-Modul fÃŒr Straße 
     10        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     11 
    1012        ToDo: 
    1113        -       Gruppierung (mit Zeile) der Straßenliste nach Gemeinde 
     
    6264        } 
    6365        $sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage "; 
    64         $sql.="FROM ax_lagebezeichnungkatalogeintrag as k "; 
     66        $sql.="FROM ax_lagebezeichnungkatalogeintrag k "; 
    6567        $sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 
    66         $sql.="WHERE k.bezeichnung ILIKE $1 "; 
     68        $sql.="WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 
    6769        switch ($gfilter) { 
    6870                case 1: // Einzelwert 
    69                         $sql.="AND k.gemeinde=".$gemeinde." "; 
     71                        $sql.="AND k.gemeinde='".$gemeinde."' "; 
    7072                        break; 
    7173                case 2: // Liste 
    72                         $sql.="AND k.gemeinde in (".$gemeinde.") "; 
     74                        $sql.="AND k.gemeinde in (".str_replace(",", "','", $gemeinde).") "; 
    7375                        break; 
    7476                default: // kein Filter 
     
    7981        $res=pg_prepare("", $sql); 
    8082        $res=pg_execute("", $v); 
    81         if (!$res) {return "\n<p class='err'>Fehler bei Name</p>";} 
     83 
     84        if (!$res) { 
     85                echo "\n<p class='err'>Fehler bei Name</p>"; 
     86                if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<p>";} 
     87                return; 
     88        } 
     89 
    8290        $cnt = 0; 
    8391        $gwgem=""; 
     
    134142        switch ($gfilter) { 
    135143                case 1: // Einzelwert 
    136                         $sql.="AND k.gemeinde=".$gemeinde." "; 
     144                        $sql.="AND k.gemeinde='".$gemeinde."' "; 
    137145                        break; 
    138146                case 2: // Liste 
    139                         $sql.="AND k.gemeinde in (".$gemeinde.") "; 
     147                        $sql.="AND k.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; 
    140148                        break; 
    141149        } 
    142150        $sql.="ORDER BY k.lage, k.bezeichnung LIMIT $2 ;"; 
     151 
    143152        $v=array($match,$linelimit); 
    144153        $res=pg_prepare("", $sql); 
    145154        $res=pg_execute("", $v); 
    146         if (!$res) {return "\n<p class='err'>Fehler bei Schl&uuml;ssel</p>";} 
     155        if (!$res) { 
     156                echo "\n<p class='err'>Fehler bei Schl&uuml;ssel</p>"; 
     157                return; 
     158        } 
    147159        $cnt = 0; 
    148160        while($row = pg_fetch_array($res)) { 
     
    173185                echo "</div>"; 
    174186// function ende 
     187 
    175188                $cnt++; 
    176189        } 
     
    196209        $sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 
    197210        $sql.="WHERE k.schluesselgesamt = $1 LIMIT 1";  
     211 
    198212        $v=array($str_schl);    // Schluessel-Gesamt .. 
    199213        $res=pg_prepare("", $sql); 
    200214        $res=pg_execute("", $v); 
     215        if (!$res) { 
     216                echo "\n<p class='err'>Fehler bei Name zum Stra&szlig;enschl&uuml;ssel</p>"; 
     217                if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<p>";} 
     218                return; 
     219        } 
     220 
    201221        if($row = pg_fetch_array($res)) { // .. gefunden 
    202222                $kgml=$row["kgml"]; // ID aus Katalog 
     
    220240                        } 
    221241                        $sqlko.="FROM ax_lagebezeichnungohnehausnummer o "; 
    222                         $sqlko.="JOIN alkis_beziehungen v ON o.gml_id=v.beziehung_zu ";  
    223                         $sqlko.="JOIN ax_flurstueck f ON v.beziehung_von=f.gml_id "; 
     242                        $sqlko.="JOIN ax_flurstueck f ON o.gml_id = ANY(f.zeigtauf) "; 
    224243                        $sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 ";        
    225                         $sqlko.="AND v.beziehungsart='zeigtAuf' LIMIT 1;"; // die erstbeste Koordinate 
     244                        $sqlko.="LIMIT 1;"; // die erstbeste Koordinate 
    226245                        $v=array($land,$regb,$kreis,$gemnd,$nr); 
    227246                        $resko=pg_prepare("", $sqlko); 
     
    277296                        $sql.="avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y ";                
    278297                } 
    279                 $sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von "; 
    280                 $sql.="JOIN ax_lagebezeichnungmithausnummer h ON v.beziehung_zu = h.gml_id "; 
    281                 $sql.="WHERE v.beziehungsart='dientZurDarstellungVon' AND p.art = 'HNR' "; 
    282                 $sql.="AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 
     298                $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON h.gml_id = ANY(p.dientzurdarstellungvon) "; 
     299                $sql.="WHERE p.art = 'HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 
    283300                $sql.="GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2) "; 
    284301                $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; 
     
    293310                $resh=pg_prepare("", $sql); 
    294311                $resh=pg_execute("", $v); 
    295                 #echo "<p class='dbg'>SQL='".$sql."'<br>Array=".$v[]."</p>"; // TEST 
     312                if (!$resh) { 
     313                        echo "\n<p class='err'>Fehler bei H&auml;user zum Stra&szlig;enschl&uuml;ssel</p>"; 
     314                        if ($debug > 2) {echo "<p class='dbg'>SQL='".$sql."'<br>Array=".$v."</p>";} 
     315                        return; 
     316                } 
    296317 
    297318                $cnt=0; 
     
    347368 
    348369// +++  Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage": 
    349 //                      Numerisch: Gem-Str-Haus-lfd 
     370//              Numerisch: Gem-Str-Haus-lfd 
    350371 
    351372if ($str_schl != "") { // aus Link 
Note: See TracChangeset for help on using the changeset viewer.