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

Abbruch

'); } // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. // Manuell an die URL anfügen, wirkt nur temporär und wird nicht in Links weiter gereicht. if ($nodebug === "j") {$debug=0;} $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkishaus.php'"); if (!$con) echo "\n

Fehler beim Verbinden der DB

"; // G e b a e 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("", $sqlg); $resg = pg_execute("", $v); if (!$resg) { echo "\n

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

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

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

";} } // Balken echo "\n

ALKIS Haus ".$gmlid." 

"; echo "\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"]; $nam=trim(trim($rowg["name"], "{}"), '"'); // Gebaeude-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 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 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 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 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("", $sqll); $resl = pg_execute("", $v); if (!$resl) { echo "\n

Fehler bei Lage mit HsNr.

"; if ($debug > 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"]; $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 // Suche Testfall: SELECT gml_id, gebaeudefunktion, weiteregebaeudefunktion FROM ax_gebaeude WHERE (NOT weiteregebaeudefunktion IS NULL) AND cardinality(weiteregebaeudefunktion) > 1 liMIT 10; 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("", $sqle); $rese = pg_execute("", $v); if (!$rese) { echo "\n

Fehler bei Datenerhebung.
".pg_last_error()."

"; if ($debug > 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 "; if ($showkey) {echo "(".$skey.") ";} echo "\n\t\t".$snam." ".$hsnr; if ($ltyp === "p") {echo ", lfd.Nr ".$hlfd;} echo "
"; } // Ende Loop Lagezeilen m.H. if ($zhsnr > 0) {echo "\n\t
 
Gebäudefunktion"; if ($showkey and $kfunk != '') {echo "(".$kfunk.") ";} echo $bfunk."" ."\n\t\t

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

" ."\n\t\t

".$dfunk."

" ."
Bauweise"; if ($showkey and $baw != '') {echo "(".$baw.") ";} echo $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"; if ($showkey and $ofl != '') {echo "(".$ofl.") ";} echo $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"; if ($showkey and $dga != '') {echo "(".$dga.") ";} echo $dgav."" ."\n\t\t

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

Zustand"; if ($showkey and $zus != '') {echo "(".$zus.") ";} echo $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("", $sqlw); $resw = pg_execute("", $v); if (!$resw) { echo "\n

Fehler bei Gebäude - weitere Funktion.

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

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

";} } $zw=0; while($roww = pg_fetch_assoc($resw)) { // LOOP Funktion if ($zw > 0) {echo "
";} if ($showkey and $roww["wert"] != '') {echo "(".$roww["wert"].") ";} echo "".$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"; if ($showkey and $daf != '') {echo "(".$daf.") ";} echo $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"; if ($showkey) {echo "(".$erheb.") ";} echo $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 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("", $sqlf); $resf=pg_execute("", $v); if (!$resf) { echo "\n

Fehler bei FS-Verschneidung.

"; if ($debug > 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äude liegt komplett in Flurstück $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äudes stehen auf dem Flurstück $gstyle="gtl"; $f1=number_format($schni,2,",",".") . " m²"; $f2="teilweise"; } } echo "\n" ."\n\t" ."\n\t"; echo "\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.""; if ($showkey) {echo "(".$rowf["gemarkungsnummer"].") ";} echo $rowf["bezeichnung"]."".$flur."".$fskenn."
".$gfla."Gebäudefläche
"; // Ende Flurstücke ?>

zurück  Drucken