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/info/info/alkis/alkislage.php

    r306 r330  
    66 
    77        Version: 
    8         2013-03-06  Korrektur URL des Link im Abs. Lage bei eingeschalteten Test-Optionen 
    9         2013-04-08  deprecated "import_request_variables" ersetzt 
    10         2014-01-23      gml des Katalogs, Link auf Modul "strasse" 
     8        2013-03-06 Korrektur URL des Link im Abs. Lage bei eingeschalteten Test-Optionen 
     9        2013-04-08 deprecated "import_request_variables" ersetzt 
     10        2014-01-23 gml des Katalogs, Link auf Modul "strasse" 
     11        2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     12        2014-09-10 Bei Relationen den Timestamp abschneiden 
    1113 
    1214        ToDo: 
     
    1820if ($auth == "mapbender") {require_once($mapbender);} 
    1921include("alkisfkt.php"); 
     22 
    2023switch ($ltyp) { 
    2124        case "m": // "Mit HsNr"     = Hauptgebaeude 
     
    2932                $tnam = "ax_lagebezeichnungmithausnummer"; break; 
    3033} 
     34 
    3135if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;} 
    3236$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 
     
    6670        break; 
    6771} 
    68 $sql.="FROM ".$tnam." l "; // Left: Bei sub-Typ "Gewanne" von Typ "o" sind keine SchlÃŒsselfelder gefÃŒllt! 
    69 $sql.="LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde "; 
    70 $sql.="LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis "; 
    71 $sql.="LEFT JOIN ax_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk "; 
    72 $sql.="LEFT JOIN ax_bundesland b ON l.land=b.land "; 
    73 $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s "; 
    74 $sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    75 $sql.="WHERE l.gml_id= $1;"; 
     72// "Left" weil: Bei sub-Typ "Gewanne" von Typ "o" sind keine SchlÃŒsselfelder gefÃŒllt! 
     73$sql.="FROM ".$tnam." l  
     74LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde  
     75LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis  
     76LEFT JOIN ax_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk  
     77LEFT JOIN ax_bundesland b ON l.land=b.land  
     78LEFT JOIN ax_lagebezeichnungkatalogeintrag s  
     79ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
     80WHERE l.gml_id= $1;"; 
    7681 
    7782$v = array($gmlid); 
     
    214219 
    215220        // Kopf Rechts: weitere Daten? 
    216         if ($idanzeige) {linkgml($gkz, $gmlid, "Lage"); } 
     221        if ($idanzeige) {linkgml($gkz, $gmlid, "Lage", ""); } 
    217222 
    218223        if ($osub != "g") { // Link zu Strasse 
     
    235240        echo "\n<p>mit dieser Lagebezeichnung.</p>"; 
    236241        switch ($ltyp) { 
    237                 case "m": $bezart="weistAuf"; break; 
    238                 case "o": $bezart="zeigtAuf"; break; 
    239         } 
    240         $sql="SELECT g.gemarkungsnummer, g.bezeichnung, "; 
    241         $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche "; 
     242                case "m": $bezart="weistauf"; break; 
     243                case "o": $bezart="zeigtauf"; break; 
     244        } 
     245 
     246        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche "; 
    242247        $sql.="FROM ax_flurstueck f "; 
    243         $sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von ";  
    244248        $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    245         $sql.="WHERE v.beziehung_zu= $1 "; // id Lage 
    246         $sql.="AND v.beziehungsart= $2 "; 
     249        $sql.="WHERE $1 = ANY(f.".$bezart.")"; 
    247250        $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
    248251 
    249         $v = array($gmlid,$bezart); 
     252        $v = array($gmlid); 
    250253        $resf = pg_prepare("", $sql); 
    251254        $resf = pg_execute("", $v); 
     
    275278                        echo "\n\t<td>".$flur."</td>"; 
    276279                        echo "\n\t<td><span class='wichtig'>".$fskenn."</span>"; 
    277                                 if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");} 
     280                                if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");} 
    278281                        echo "</td>"; 
    279282                        echo "\n\t<td class='fla'>".$flae."</td>"; 
     
    361364        echo "\n<p>mit dieser Lagebezeichnung.</p>"; 
    362365        switch ($ltyp) { 
    363                 case "p": $bezart="hat"; break; 
    364                 case "m": $bezart="zeigtAuf"; break; 
    365         } 
    366         $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, "; 
    367         $sql.="round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner "; 
    368         $sql.="FROM ax_gebaeude g "; 
    369         $sql.="JOIN alkis_beziehungen v ON g.gml_id=v.beziehung_von ";  
    370         $sql.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id "; 
    371         $sql.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert "; 
    372 // +++ JOIN Zustand 
    373         $sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart= $2 ;"; 
    374         $v = array($gmlid,$bezart); 
     366                case "p": $bezart="g.hat"; break; 
     367                case "m": $bezart="ANY(g.zeigtauf)"; break; // array 
     368        } 
     369        $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner  
     370        FROM ax_gebaeude g LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id  
     371        LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert "; 
     372        // +++ JOIN Zustand 
     373        $sql.="WHERE $1 = ".$bezart.";"; 
     374 
     375        $v = array($gmlid); 
    375376        $res = pg_prepare("", $sql); 
    376377        $res = pg_execute("", $v); 
    377378        if (!$res) { 
    378                 echo "<p class='err'>Fehler bei Gebaeude.</p>\n"; 
     379                echo "<p class='err'>Fehler bei Geb&auml;ude.</p>\n"; 
    379380                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    380381        } 
     
    396397 
    397398                        echo "<td>"; 
    398                                 if ($idanzeige) {linkgml($gkz, $ggml, "Geb&auml;ude");} 
     399                                if ($idanzeige) {linkgml($gkz, $ggml, "Geb&auml;ude", "ax_gebaeude");} 
    399400                                // +++ Hausnummer / Adresse ??? 
    400401                        echo $row["name"]."</td>"; 
Note: See TracChangeset for help on using the changeset viewer.