Ignore:
Timestamp:
11/30/11 14:10:13 (9 years ago)
Author:
frank.jaeger
Message:

ALKIS-Buchauskunft: Gebäudedaten

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/var/www/info/alkis/alkislage.php

    r131 r132  
    66 
    77        Version: 
    8         11.07.2011  Ersetzen $self durch $_SERVER['PHP_SELF']."?" 
    9         25.07.2011  PostNAS 0.5/0.6 Versionen unterscheiden 
    10         26.07.2011  debug, SQL nur im Testmodeus ausgeben 
    11         22.11.2011  Felder ax_gebaeude.description und .individualname sind entfallen 
    12  
    13         ToDo: Entschluesseln Kreis usw. 
     8        22.11.2011 
     9                Felder ax_gebaeude.description und .individualname sind entfallen 
     10                GebÀude als Tabelle 
     11                Link auf neues Modul "alkishaus".  
     12                Sonderfall PostNAS-Vers. 05 entfernt. 
     13                Kennzeichen im Balken verkÃŒrzt. 
     14        30.11.2011  import_request_variables 
     15 
     16        ToDo: 
     17        - Entschluesseln Kreis usw. 
     18        - Das Balken-Kennzeichen noch kompatibel machen mit der Eingabe der Navigation fÃŒr Adresse  
    1419*/ 
    15 //ini_set('error_reporting', 'E_ALL & ~ E_NOTICE'); 
    1620session_start(); 
    17 $gkz=urldecode($_REQUEST["gkz"]); 
     21import_request_variables("G"); 
    1822require_once("alkis_conf_location.php"); 
    19 if ($auth == "mapbender") { // Bindung an Mapbender-Authentifizierung 
    20         require_once($mapbender); 
    21 } 
     23if ($auth == "mapbender") {require_once($mapbender);} 
    2224include("alkisfkt.php"); 
     25switch ($ltyp) { 
     26        case "m": // "Mit HsNr"     = Hauptgebaeude 
     27                $tnam = "ax_lagebezeichnungmithausnummer"; break; 
     28        case "p": // "mit PseudoNr" = Nebengebaeude 
     29                $tnam = "ax_lagebezeichnungmitpseudonummer";    break; 
     30        case "o": //"Ohne HsNr"    = Gewanne oder Strasse 
     31                $tnam = "ax_lagebezeichnungohnehausnummer"; break; 
     32        default: 
     33                $ltyp = "m"; 
     34                $tnam = "ax_lagebezeichnungmithausnummer"; break; 
     35} 
     36if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;} 
     37$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 
     38if ($keys == "j") {$showkey=true;} else {$showkey=false;} 
    2339?> 
    2440<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
     
    3955<body> 
    4056<?php 
    41 $gmlid=urldecode($_REQUEST["gmlid"]); 
    42 $ltyp=urldecode($_REQUEST["ltyp"]); // 3 Arten Lage-Typ 
    43 switch ($ltyp) { 
    44         case "m": // "Mit HsNr"     = Hauptgebaeude 
    45                 $tnam = "ax_lagebezeichnungmithausnummer"; 
    46         break; 
    47         case "p": // "mit PseudoNr" = Nebengebaeude 
    48                 $tnam = "ax_lagebezeichnungmitpseudonummer"; 
    49         break; 
    50         case "o": //"Ohne HsNr"    = Gewanne oder Strasse 
    51                 $tnam = "ax_lagebezeichnungohnehausnummer"; 
    52         break; 
    53         default: 
    54                 $ltyp = "m"; 
    55                 $tnam = "ax_lagebezeichnungmithausnummer"; 
    56         break; 
    57 } 
    58 $id = isset($_GET["id"]) ? $_GET["id"] : "n"; 
    59 if ($id == "j") { 
    60         $idanzeige=true; 
    61 } else { 
    62         $idanzeige=false; 
    63 } 
    64 $keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 
    65 if ($keys == "j") { 
    66         $showkey=true; 
    67 } else { 
    68         $showkey=false; 
    69 } 
    7057$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass); 
    7158if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n"; 
    7259 
    73 // Lagebezeichnung 
     60// L a g e b e z e i c h n u n g 
    7461$sql ="SELECT s.bezeichnung AS snam, k.bezeichnung AS knam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, "; 
    7562switch ($ltyp) { 
     
    8976$sql.="LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis "; 
    9077$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s "; 
    91  
    92 if ($dbvers == "05") { // bis PostNAS 0.5 
    93         // Besonderheit: unterschiedliche Feldformate und Fuellungen!!! 
    94         // +++ Nach vollstaendiger Umstellung diesen Programmteil entfernen  
    95         switch ($ltyp) { 
    96                 case "o": //"Ohne HsNr" 
    97                         // hier beide .lage als Char(5) 
    98                         //  in ax_lagebezeichnungKatalogeintrag mit fÃŒhrenden Nullen 
    99                         //  in ax_lagebezeichnungOhneHausnummer jedoch ohne fÃŒhrende Nullen 
    100                         $sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=trim(leading '0' from s.lage) "; 
    101                 break; 
    102                 default: // "Mit HsNr" + "mit PseudoNr" 
    103                         // ax_LagebezeichnungKatalogeintrag.lage   ist char, 
    104                         // ax_LagebezeichnungMitHausnummer.lage    ist integer, 
    105                         // ax_lagebezeichnungMitPseudonummer.lage  ist integer, 
    106                         $sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage "; 
    107                 break; 
    108         } 
    109 } else { // ab PostNAS 0.6 char(5) mit fuehr.Nullen 
    110         $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 "; 
    111 } 
     78// ab PostNAS 0.6: Feld "lage" char(5) mit fuehr.Nullen 
     79$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 "; 
    11280$sql.="WHERE l.gml_id= $1;"; 
    11381 
     
    13098        $snam =$row["snam"]; //Strassennamen 
    13199        $unver=$row["unverschluesselt"]; // Gewanne 
    132         $kennz=$land."-".$regbez."-".$kreis."-".$gem."-".$lage."-"; 
     100//      $kennz=$land."-".$regbez."-".$kreis."-".$gem."-".$lage."-"; 
     101        $kennz=$gem."-".$lage."-"; // ToDo: Kompatibel machen als Eingabe in in Navigation/Adresse  
     102         
    133103        switch ($ltyp) { 
    134104                case "m": // "Mit HsNr" 
     
    235205        // ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer 
    236206        switch ($ltyp) { 
    237                 case "m": 
    238                         $bezart="weistAuf"; 
    239                 break; 
    240                 case "o": 
    241                         $bezart="zeigtAuf"; 
    242                 break; 
     207                case "m": $bezart="weistAuf"; break; 
     208                case "o": $bezart="zeigtAuf"; break; 
    243209        } 
    244210        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, "; 
     
    270236        while($rowf = pg_fetch_array($resf)) { 
    271237                $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT); 
    272  
    273                 //$fskenn=str_pad($rowf["zaehler"], 5, "0", STR_PAD_LEFT); 
    274                 //if ($rowf["nenner"] != "") {$fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT);} 
    275  
    276                 $fskenn=$rowf["zaehler"]; // Bruchnummer (ohne fuehrende Nullen) 
    277                 if ($rowf["nenner"] != "") { 
    278                         $fskenn.="/".$rowf["nenner"]; 
    279                 } 
    280  
     238                $fskenn=$rowf["zaehler"]; // Bruchnummer 
     239                if ($rowf["nenner"] != "") {$fskenn.="/".$rowf["nenner"];} 
    281240                $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;"; 
    282241                echo "\n<tr>"; 
    283242                        echo "\n\t<td>"; 
    284                         if ($showkey) { 
    285                                 echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> "; 
    286                         } 
     243                        if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";} 
    287244                        echo $rowf["bezeichnung"]."</td>"; 
    288245                        echo "\n\t<td>".$flur."</td>"; 
     
    293250                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
    294251                                echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n"; 
    295                                 if ($idanzeige) {echo "&amp;id=j";} 
    296                                 if ($showkey)   {echo "&amp;showkey=j";} 
     252                                        if ($idanzeige) {echo "&amp;id=j";} 
     253                                        if ($showkey)   {echo "&amp;showkey=j";} 
    297254                                echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''></a>"; 
    298255                        echo "\n\t\t</p>\n\t</td>"; 
     
    310267        $whereclaus="WHERE land= $1 AND regierungsbezirk= $2 AND kreis= $3 AND gemeinde= $4 AND lage= $5 "; 
    311268        $url=$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;id=".$id."&amp;gmlid="; // Basis 
     269        if ($idanzeige) {$url.="&amp;id=j";} 
     270        if ($showkey)   {$url.="&amp;showkey=j";} 
    312271 
    313272        switch ($ltyp) { 
     
    366325 
    367326// G E B A E U D E 
    368  
    369 // Mittelfristig ist zu ueberlegen, ob hier weitere Einzelheiten dargestellt werden, 
    370 // oder ob nicht besser ein eigenes Modul alkisgebaeude.php dies uebernehmen sollte. 
    371 // Dort sollten auch diese Relationen abgebildet werden: 
    372 //  ax_gebaeude >gehoertZu> ax_gebaeude  (ringförmige Verbindung GebÀudekomplex) 
    373 //  ax_gebaeude (umschliesst) ax_bauteil 
    374 //  ax_gebaeude >gehoert> ax_person  (Ausnahme) 
    375  
    376327if ($ltyp <> "o") { // OhneHsNr linkt nur Flurst. 
    377328        echo "\n\n<a name='geb'></a><h3><img src='ico/Haus.ico' width='16' height='16' alt=''> Geb&auml;ude</h3>"; 
    378329        echo "\n<p>mit dieser Lagebezeichnung.</p>"; 
    379330        switch ($ltyp) { 
    380                 case "p": 
    381                         $bezart="hat"; 
    382                         break; 
    383                 case "m": 
    384                         $bezart="zeigtAuf"; 
    385                         break; 
    386         } 
    387 //      $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.description, g.name, g.lagezurerdoberflaeche, g.bauweise, g.anzahlderoberirdischengeschosse AS aog, g.grundflaeche, g.individualname, g.zustand, "; 
    388         $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.lagezurerdoberflaeche, g.bauweise, g.anzahlderoberirdischengeschosse AS aog, g.grundflaeche, g.zustand, "; 
     331                case "p": $bezart="hat"; break; 
     332                case "m": $bezart="zeigtAuf"; break; 
     333        } 
     334        $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, "; 
    389335        $sql.="round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner "; 
    390336        $sql.="FROM ax_gebaeude g "; 
     
    392338        $sql.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id "; 
    393339        $sql.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert "; 
     340// +++ JOIN Zustand 
    394341        $sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart= $2 ;"; 
    395342        $v = array($gmlid,$bezart); 
     
    400347                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    401348        } 
     349        echo "\n<table class='geb'>"; 
     350        echo "\n<tr>"; // T-Header 
     351                echo "\n\t<td class='head' title='Geb&auml;udename'>Name</td>"; 
     352                echo "\n\t<td class='head fla' title='Fl&auml;che'>Fl&auml;che</td>"; 
     353                echo "\n\t<td class='head' title='Geb&auml;udefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Geb&auml;udes'>Funktion</td>"; 
     354                echo "\n\t<td class='head' title='Bauweise (Schl&uuml;ssel und Beschreibung)'>Bauweise</td>"; 
     355                echo "\n\t<td class='head' title='Zustand (Schl&uuml;ssel und Beschreibung)'>Zustand</td>"; 
     356                echo "\n\t<td class='head nwlink' title='Link zu kompletten Hausdaten'>Haus</td>"; 
     357        echo "\n</tr>"; 
     358        // T-Body 
    402359        $i=0; 
    403         while($row = pg_fetch_array($res)) { // Only You! 
    404                 echo "<p>"; 
    405                         if ($idanzeige) {linkgml($gkz, $row["gml_id"], "Geb&auml;ude");} 
    406                 echo "</p>"; 
    407                 echo "\n<table>"; 
    408  
    409                         echo "\n\t<tr><td>Funktion:</td><td>"; 
    410                         if ($showkey) { 
    411                                 echo "<span class='key'>".$row["gebaeudefunktion"]."</span> "; 
    412                         } 
    413                         echo $row["bezeichner"]."</td></tr>"; // integer 
    414  
    415         //              if (!$row["description"] == "") { 
    416         //                      echo "\n\t<tr><td>Beschreibung:</td><td>".$row["description"]."</td></tr>"; // integer - EntschlÃŒsseln! 
    417         //              } 
    418  
    419                         if (!$row["name"] == "") { 
    420                                 echo "\n\t<tr><td>Name:</td><td>".$row["name"]."</td></tr>"; // char(25) 
    421                         } 
    422  
    423                         if (!$row["lagezurerdoberflaeche"] == "") { 
    424                                 echo "\n\t<tr><td>Lage zur Erdoberfl&auml;che:</td><td>".$row["lagezurerdoberflaeche"]."</td></tr>"; 
    425                         } // integer - EntschlÃŒsseln! 
    426  
    427                         if (!$row["bauweise"] == "") { 
    428                                 echo "\n\t<tr><td>Bauweise:</td><td>"; 
    429                                 if ($showkey) { 
    430                                         echo "<span class='key'>".$row["bauweise"]."</span> "; 
    431                                 } 
    432                                 echo $row["bauweise_beschreibung"]."</td></tr>"; // integer 
    433                         } 
    434  
    435                         if (!$row["aog"] == "") { 
    436                                 echo "\n\t<tr><td>Anz. der oberird. Geschosse:</td><td>".$row["aog"]."</td></tr>"; // 
    437                         } 
    438  
    439                         if (!$row["grundflaeche"] == "") { 
    440                                 echo "\n\t<tr><td>Grundfl&auml;che:</td><td title='Buchfl&auml;che'>".$row["grundflaeche"]."</td></tr>"; // integer 
    441                         } 
    442  
    443                         echo "\n\t<tr><td>Geometrische Fl&auml;che:</td><td title='berechnete Fl&auml;che'>".$row["flaeche"]." m&#178;</td></tr>"; 
    444  
    445         //              if (!$row["individualname"] == "") { 
    446         //                      echo "\n\t<tr><td>Individualname:</td><td>".$row["individualname"]."</td></tr>"; // char(7) 
    447         //              } 
    448  
    449                         if (!$row["zustand"] == "") { 
    450                                 echo "\n\t<tr><td>Zustand:</td><td>".$row["zustand"]."</td></tr>"; // integer 
    451                         } 
    452  
    453                 echo "\n</table>"; 
    454         } 
     360        while($row = pg_fetch_array($res)) { 
     361                $ggml=$row["gml_id"]; 
     362                $gfla=$row["flaeche"]; 
     363                echo "\n\t<tr>"; 
     364 
     365                        echo "<td>"; 
     366                                if ($idanzeige) {linkgml($gkz, $ggml, "Geb&auml;ude");} 
     367                                // +++ Hausnummer / Adresse ??? 
     368                        echo $row["name"]."</td>"; 
     369 
     370                //      echo "<td class='fla'>".$row["grundflaeche"]."</td>"; 
     371                        echo "<td class='fla'>".$gfla." m&#178;</td>"; 
     372 
     373                        echo "<td>"; 
     374                                if ($showkey) {echo "<span class='key'>".$row["gebaeudefunktion"]."</span> ";} 
     375                        echo $row["bezeichner"]."</td>"; 
     376 
     377                        echo "<td>"; 
     378                                if ($showkey) {echo "<span class='key'>".$row["bauweise"]."</span> ";} 
     379                        echo $row["bauweise_beschreibung"]."</td>"; 
     380 
     381                        echo "<td>".$row["zustand"]."</td>"; // +++ EntschlÃŒsseln 
     382 
     383                        echo "\n\t<td class='nwlink noprint'>"; 
     384                                echo "<a title='Hausdaten' href='alkishaus.php?gkz=".$gkz."&amp;gmlid=".$ggml; 
     385                                if ($idanzeige) {echo "&amp;id=j";} 
     386                                echo "'><img src='ico/Haus.ico' width='16' height='16' alt=''></a>"; 
     387                        echo "</td>"; 
     388 
     389                echo "</tr>"; 
     390        } 
     391        echo "\n</table>"; 
    455392} 
    456393 
Note: See TracChangeset for help on using the changeset viewer.