END; $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('

Abbruch

'); } $dbg=$debug; if ($nodebug === "j") {$dbg=0;} $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkishaus.php'"); if (!$con) echo "\n

Fehler beim Verbinden der DB

"; // G e b ä u d e // ... g.qualitaetsangaben, $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, g.anzahlderunterirdischengeschosse AS aug, g.lagezurerdoberflaeche, g.dachgeschossausbau, g.zustand, array_to_string(g.weiteregebaeudefunktion, ',') AS wgf, g.dachform, g.hochhaus, g.objekthoehe, g.geschossflaeche, g.grundflaeche, g.umbauterraum, g.baujahr, g.dachart, h.beschreibung AS bbauw, h.dokumentation AS dbauw, u.beschreibung AS bfunk, u.dokumentation AS dfunk, z.beschreibung AS zustandv, z.dokumentation AS zustandd, d.beschreibung AS bdach, a.beschreibung AS dgaus, o.beschreibung AS oflv, o.dokumentation AS ofld, round(st_area(g.wkb_geometry)::numeric,2) AS gebflae FROM ax_gebaeude g LEFT JOIN ax_bauweise_gebaeude h ON g.bauweise = h.wert LEFT JOIN ax_gebaeudefunktion u ON g.gebaeudefunktion = u.wert LEFT JOIN ax_zustand_gebaeude z ON g.zustand = z.wert LEFT JOIN ax_dachform d ON g.dachform = d.wert LEFT JOIN ax_dachgeschossausbau_gebaeude a ON g.dachgeschossausbau = a.wert LEFT JOIN ax_lagezurerdoberflaeche_gebaeude o ON g.lagezurerdoberflaeche = o.wert WHERE g.gml_id= $1 AND g.endet IS NULL;"; $v = array($gmlid); $resg = pg_prepare($con, "", $sqlg); $resg = pg_execute($con, "", $v); if (!$resg) { echo "\n

Fehler bei Gebäude.
".pg_last_error()."

"; if ($dbg > 2) {echo "\n

SQL=
".$sqlg."
$1 = gml_id = '".$gmlid."'

";} } if ($dbg > 0) { $zeianz=pg_num_rows($resg); if ($zeianz > 1){ echo "\n

Die Abfrage liefert mehr als ein (".$zeianz.") Gebäude-Objekt!

"; if ($dbg > 2) {echo "\n

SQL=
".htmlentities(str_replace("$1","'".$gmlid."'",$sqlg), ENT_QUOTES, "UTF-8")."

";} } } // Balken echo "\n

ALKIS Haus ".$gmlid." 

" ."\n

Haus (Gebäude)

\n
"; echo ""; if (!($rowg = pg_fetch_assoc($resg))) { echo "\n


Kein Gebäude gefunden

"; die ("Abbruch"); } echo "\n" ."\n\n" ."\n\t" ."\n\t" ."\n\t" ."\n"; $aog=$rowg["aog"]; $aug=$rowg["aug"]; $hoh=$rowg["hochhaus"]; if (is_null($rowg["name"])) { $nam=""; } else { $nam=trim(trim($rowg["name"], "{}"), '"'); // Gebäude-Name ist ein Array. } // Mehrfachbelegung theoretisch. Entklammern reicht. Mal mit und mal ohne "" drum. $kfunk=$rowg["gebaeudefunktion"]; $bfunk=$rowg["bfunk"]; $dfunk=$rowg["dfunk"]; $baw=$rowg["bauweise"]; $bbauw=$rowg["bbauw"]; $dbauw=$rowg["dbauw"]; $ofl=$rowg["lagezurerdoberflaeche"]; $oflv=$rowg["oflv"]; $ofld=$rowg["ofld"]; $dga=$rowg["dachgeschossausbau"]; // Key $dgav=$rowg["dgaus"]; // Value $zus=$rowg["zustand"]; // Key $zusv=$rowg["zustandv"]; // Value $zusd=$rowg["zustandd"]; // Description $wgf=$rowg["wgf"]; // Array-> kommagetr. Liste $daf=$rowg["dachform"]; // Key $dach=$rowg["bdach"]; // Value $hho=$rowg["objekthoehe"]; $gfl=$rowg["geschossflaeche"]; $grf=$rowg["grundflaeche"]; $ura=$rowg["umbauterraum"]; $bja=$rowg["baujahr"]; $daa=$rowg["dachart"]; if (($nam != "") OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t" ."\n"; } // 0 bis N L a g e bezeichnungen mit Haus- oder Pseudo-Nummer // HAUPTgebäude $sqll ="SELECT 'm' AS ltyp, lh.gml_id AS gmllag, sh.lage, sh.bezeichnung, lh.hausnummer, '' AS laufendenummer, ph.bezeichnung AS gemeinde FROM ax_gebaeude gh JOIN ax_lagebezeichnungmithausnummer lh ON lh.gml_id=ANY(gh.zeigtauf) JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage LEFT JOIN ax_gemeinde ph ON lh.land=ph.land AND lh.regierungsbezirk=ph.regierungsbezirk AND lh.kreis=ph.kreis AND lh.gemeinde=ph.gemeinde ".UnqKatAmt("lh","ph") ."WHERE gh.gml_id= $1 AND gh.endet IS NULL AND lh.endet IS NULL AND sh.endet IS NULL"; // oder NEBENgebäude $sqll.=" UNION SELECT 'p' AS ltyp, ln.gml_id AS gmllag, sn.lage, sn.bezeichnung, ln.pseudonummer AS hausnummer, ln.laufendenummer, pn.bezeichnung AS gemeinde FROM ax_gebaeude gn JOIN ax_lagebezeichnungmitpseudonummer ln ON ln.gml_id=gn.hat JOIN ax_lagebezeichnungkatalogeintrag sn ON ln.kreis=sn.kreis AND ln.gemeinde=sn.gemeinde AND ln.lage=sn.lage LEFT JOIN ax_gemeinde pn ON ln.land=pn.land AND ln.regierungsbezirk=pn.regierungsbezirk AND ln.kreis=pn.kreis AND ln.gemeinde=pn.gemeinde ".UnqKatAmt("ln","pn") ."WHERE gn.gml_id= $1 AND gn.endet IS NULL AND ln.endet IS NULL AND sn.endet IS NULL "; $sqll.="ORDER BY bezeichnung, hausnummer ;"; $v = array($gmlid); $resl = pg_prepare($con, "", $sqll); $resl = pg_execute($con, "", $v); if (!$resl) { echo "\n

Fehler bei Lage mit HsNr.

"; if ($dbg > 2) {echo "\n

SQL=
".$sqll."
$1 = gml_id = '".$gmlid."'

";} } $zhsnr=0; while($rowl = pg_fetch_assoc($resl)) { // LOOP: Lagezeilen $zhsnr++; $ltyp=$rowl["ltyp"]; // Lagezeilen-Typ $skey=$rowl["lage"]; // Str.-Schluessel $snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); // -Name $hsnr=$rowl["hausnummer"]; $hlfd=$rowl["laufendenummer"]; $gemeinde=$rowl["gemeinde"]; $gmllag=$rowl["gmllag"]; if ($zhsnr === 1) { echo "\n" ."\n\t" ."\n\t\n\t\n";} pg_free_result($resl); // Gebäudefunktion echo "\n" ."\n\t" ."\n\t" ."\n\t" ."\n"; // Bauweise if ($baw != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Geschosse if ($aog != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // U-Geschosse if ($aug != "" OR $allefelder) { echo "\n" ."\n\t" . "\n\t" ."\n\t\n"; } // Hochhaus if ($hoh != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Lage zur Erdoberfläche if ($ofl != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Dachgeschossausbau, Spalte dokumentation ist immer leer if ($dga != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Zustand if ($zus != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Weitere Gebäudefunktionen if ($wgf != "" OR $allefelder) { // ... ist ein Array echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Dachform, Spalte dokumentation ist immer leer if ($daf != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Objekthöhe if ($hho != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Geschossfläche if ($gfl != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Grundfläche if ($grf != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t\n"; } // Umbauter Raum if ($ura != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Baujahr if ($bja != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // Dachart if ($daa != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } // D a t e n e r h e b u n g (Qualität der Einmessung) $sqle ="SELECT g.gml_id, e.wert, e.beschreibung, e.dokumentation FROM ax_gebaeude g LEFT JOIN ax_datenerhebung e ON cast(e.wert AS varchar) = any(g.herkunft_source_source_ax_datenerhebung) WHERE g.gml_id= $1 AND g.endet IS NULL;"; $v = array($gmlid); $rese = pg_prepare($con, "", $sqle); $rese = pg_execute($con, "", $v); if (!$rese) { echo "\n

Fehler bei Datenerhebung.
".pg_last_error()."

"; if ($dbg > 2) {echo "\n

SQL=
".$sqle."
$1 = gml_id = '".$gmlid."'

";} } while($rowe = pg_fetch_assoc($rese)) { // Schleife weil array-Feld, meist aber leer $erheb =$rowe["wert"]; $berheb=$rowe["beschreibung"]; $derheb=$rowe["dokumentation"]; // immer leer, oder if ($derheb == '' AND $erheb != '') { // Wert ohne Doku if ( $erheb >= 2000) { // selbst was dazu sagen $derheb = 'nicht eingemessenes Gebäude'; // so hieß das in der ALK } } if ($erheb != "" OR $allefelder) { echo "\n" ."\n\t" ."\n\t" ."\n\t\n"; } } echo "\n
AttributWert" ."\n\t\t

Erklärung Kategorie

" ."\n\t\t

Erklärung Inhalt

" ."\n\t
Name".$nam."" ."\n\t\t

'Name' ist der Eigenname oder die Bezeichnung des Gebäudes." ."\n\t

Adresse"; } echo "\n\t\t ".DsKy($skey, 'Straßen-*'); echo "\n\t\t".$snam." ".$hsnr; if ($ltyp === "p") {echo ", lfd.Nr ".$hlfd;} echo ", ".$gemeinde."
"; } // Ende Loop Lagezeilen m.H. if ($zhsnr > 0) {echo "\n\t
 
Gebäudefunktion".DsKy($kfunk, 'Gebäudefunktion-*').$bfunk."" ."\n\t\t

'Gebäudefunktion' ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Gebäudes'

" ."\n\t\t

".$dfunk."

" ."
Bauweise".DsKy($baw, 'Bauweise-*').$bbauw."" ."\n\t\t

'Bauweise' ist die Beschreibung der Art der Bauweise.

" ."\n\t\t

".$dbauw."

" ."\n\t
Geschosse".$aog."" ."\n\t\t

Anzahl oberirdischer Geschosse.

" ."\n\t
U-Geschosse".$aug."" ."\n\t\t

Anzahl unterirdischer Geschosse.

" ."\n\t
Hochhaus".$hoh."" ."\n\t\t

'Hochhaus' ist ein Gebäude, das nach Gebäudehöhe und Ausprägung als Hochhaus zu bezeichnen ist. Für Gebäude im Geschossbau gilt dieses i.d.R. ab 8 oberirdischen Geschossen, für andere Gebäude ab einer Gebäudehöhe von 22 m." ."\n\t

Lage zur Erdoberfläche".DsKy($ofl, '* für Lage zur Erdoberfläche').$oflv."" ."\n\t\t

'Lage zur Erdoberfläche' ist die Angabe der relativen Lage des Gebäudes zur Erdoberfläche. Diese Attributart wird nur bei nicht ebenerdigen Gebäuden geführt.
" ."\n\t\t

".$ofld."

" ."\n\t
Dachgeschossausbau".DsKy($dga, '* Dachgeschossausbau').$dgav."" ."\n\t\t

'Dachgeschossausbau' ist ein Hinweis auf den Ausbau bzw. die Ausbaufähigkeit des Dachgeschosses." ."\n\t

Zustand"; echo DsKy($zus, 'Zustand-*').$zusv."" ."\n\t\t

'Zustand' beschreibt die Beschaffenheit oder die Betriebsbereitschaft von 'Gebäude'. Diese Attributart wird nur dann optional geführt, wenn der Zustand des Gebäudes vom nutzungsfähigen Zustand abweicht.

" ."\n\t\t

".$zusd."

" ."\n\t
Weitere Gebäudefunktionen"; if ($wgf != "") { // Kommagetrennte Liste aus Array $sqlw="SELECT wert, beschreibung, dokumentation FROM ax_gebaeudefunktion WHERE wert IN ( $1 ) ORDER BY wert;"; $v = array($wgf); $resw = pg_prepare($con, "", $sqlw); $resw = pg_execute($con, "", $v); if (!$resw) { echo "\n

Fehler bei Gebäude - weitere Funktion.

"; if ($dbg > 2) {echo "\n

SQL=
".$sqlw."
$1 = Werteliste = '".$wgf."'

";} } $zw=0; while($roww = pg_fetch_assoc($resw)) { // LOOP Funktion if ($zw > 0) {echo "
";} echo DsKy($roww["wert"], 'Gebäudefunktionen-*')."".$roww["beschreibung"].""; $zw++; } pg_free_result($resw); } echo "
" ."\n\t\t

'Weitere Gebäudefunktion' ist die Funktion, die ein Gebäude neben der dominierenden Gebäudefunktion hat." ."\n\t

Dachform".DsKy($daf, 'Dachform-*').$dach."" ."\n\t\t

'Dachform' beschreibt die charakteristische Form des Daches." ."\n\t

Objekthöhe".$hho."" ."\n\t\t

'Objekthöhe' ist die Höhendifferenz in [m] zwischen dem höchsten Punkt der Dachkonstruktion und der festgelegten Geländeoberfläche des Gebäudes." ."\n\t

Geschossfläche"; if ($gfl != "") {echo $gfl." m²";} echo "" ."\n\t\t

'Geschossfläche' ist die Gebäudegeschossfläche in [qm]." ."\n\t

Grundfläche"; if ($grf != "") {echo $grf." m²";} echo "\n\t" ."\n\t\t

'Grundfläche' ist die Gebäudegrundfläche in [qm]." ."\n\t

Umbauter Raum".$ura."" ."\n\t\t

'Umbauter Raum' ist der umbaute Raum [Kubikmeter] des Gebäudes." ."\n\t

Baujahr".$bja."" ."\n\t\t

'Baujahr' ist das Jahr der Fertigstellung oder der baulichen Veränderung des Gebäudes." ."\n\t

Dachart".$daa."" ."\n\t\t

'Dachart' gibt die Art der Dacheindeckung (z.B. Reetdach) an." ."\n\t

Datenerhebung".DsKy($erheb, 'Datenerhebung-*').$berheb."" ."\n\t\t

'Datenerhebung' beschreibt Qualitätsangaben, Herkunft.

" ."\n\t\t

".$derheb."

" ."
"; pg_free_result($rese); $gfla=$rowg["gebflae"]; // bei Flurstck. gebraucht pg_free_result($resg); echo "\n\n

Flurstücke

" ."\n

.. auf dem das Gebäude steht. Ermittelt durch Verschneidung der Geometrie.

"; // F l u r s t ü c k $sqlf ="SELECT f.gml_id, round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, st_within(g.wkb_geometry,f.wkb_geometry) as drin, o.gemarkungsnummer, o.bezeichnung, f.flurnummer, f.zaehler, f.nenner FROM ax_gebaeude g, ax_flurstueck f LEFT JOIN ax_gemarkung o ON f.land=o.land AND f.gemarkungsnummer=o.gemarkungsnummer ".UnqKatAmt("f","o") ."WHERE g.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true ORDER BY schnittflae DESC;"; $v=array($gmlid); $resf=pg_prepare($con, "", $sqlf); $resf=pg_execute($con, "", $v); if (!$resf) { echo "\n

Fehler bei FS-Verschneidung.

"; if ($dbg > 2) {echo "\n

SQL=
".$sqlf."
$1 = gml_id = '".$gmlid."'

";} } echo "\n
\n" ."\n" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n"; while($rowf = pg_fetch_assoc($resf)) { $fgml=$rowf["gml_id"]; $drin=$rowf["drin"]; $schni=$rowf["schnittflae"]; $flur= $rowf["flurnummer"]; $fskenn=$rowf["zaehler"]; if ($rowf["nenner"] != "") { $fskenn.="/".$rowf["nenner"];} // 3 Fälle: if ($drin === "t") { // Geb. komplett in FS $gstyle="gin"; // siehe .css $f1=number_format($schni,2,",",".") . " m²"; $f2="vollständig"; } else { if ($schni === "0.00") { // Gebäude angrenzend (Grenzbebauung) $gstyle="gan"; $f1=" "; $f2="angrenzend"; } else { // Teile des Geb. auf dem FS $gstyle="gtl"; $f1=number_format($schni,2,",",".") . " m²"; $f2="teilweise"; } } echo "\n" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n\t"; echo "\n\t" ."\n"; } $gfla=number_format($gfla,2,",",".") . " m²"; echo "\n\n\t\n\t\n\t\n"; echo "\n
FlächeVerhältnisGemarkungFlurFlurstück
".$f1."".$f2."".DsKy($rowf["gemarkungsnummer"], 'Gemarkungsnummer').$rowf["bezeichnung"]."".$flur."".$fskenn."
".$gfla."Gebäudefläche
"; echo "
\n
" ."\n\tzurück "; if ($PrntBtn==true){echo "\n\tDrucken ";} echo "\n
"; footer($gmlid, selbstverlinkung()."?", ""); ?>