[362] | 1 | <?php |
---|
[427] | 2 | /* alkisgebaeudenw.php |
---|
[362] | 3 | |
---|
[427] | 4 | ALKIS-Buchauskunft |
---|
| 5 | Author: Frank JÀger, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo) |
---|
| 6 | |
---|
| 7 | GebÀude- und Bauwerks-Nachweis fÌr ein FlurstÌck |
---|
| 8 | |
---|
[362] | 9 | Version: |
---|
[425] | 10 | 2016-02-24 Version fÃŒr norGIS-ALKIS-Import |
---|
[427] | 11 | ... |
---|
[422] | 12 | 2020-02-20 Authentifizierung ausgelegert in Function darf_ich() |
---|
| 13 | 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] |
---|
| 14 | 2020-12-15 Verschneidung mit "sonstige Bauwerke", Input-Validation und Strict Comparisation |
---|
| 15 | 2021-03-09 Verschneidung mit weiteren Bauwerks-Tabellen. |
---|
| 16 | 2021-03-11 Adresse(n) des gehörtZu-Haus zum Bauwerk nicht mehr hier anzeigen sondern im neuen Bauwerk-Modul. |
---|
[425] | 17 | 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) |
---|
[427] | 18 | 2022-01-13 Neue Functions LnkStf(), DsKy() |
---|
| 19 | 2022-02-17 Neue Bauwerks-Typen |
---|
[430] | 20 | 2022-07-05 PHP 8.1: Connection verwenden bei "pg_prepare" und "pg_execute", keine NULL-Werte in String-Functions verwenden |
---|
[362] | 21 | */ |
---|
[422] | 22 | |
---|
| 23 | // Kopf fÌr die Anzeige der GebÀude. Nur wenn tatsÀchlich GebÀude vorkommen. |
---|
| 24 | function geb_tab_head() { |
---|
| 25 | // Ãberschrift |
---|
| 26 | echo "\n\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Gebäude</h3>" |
---|
| 27 | ."\n<p>.. auf oder an dem Flurstück. Ermittelt durch Verschneidung der Geometrie.</p>"; |
---|
| 28 | |
---|
| 29 | // Tabellen-Kopf |
---|
| 30 | echo "\n<hr>\n<table class='geb'>"; |
---|
| 31 | echo "\n<tr>" |
---|
| 32 | ."\n\t<td class='head' title='ggf. Gebäudename'>Name</td>" |
---|
| 33 | ."\n\t<td class='heads fla' title='Schnittfläche zwischen Flurstück und Gebäude'><img src='ico/sortd.png' width='10' height='10' alt='' title='Sortierung (absteigend)'>Fläche</td>" |
---|
| 34 | ."\n\t<td class='head' title='gesamte Gebäudefläche, liegt teilweise auf Nachbar-Flurstück'> </td>" |
---|
| 35 | ."\n\t<td class='head' title='Gebäudefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Gebäudes'>Funktion</td>" |
---|
| 36 | ."\n\t<td class='head' title='Bauweise ist die Beschreibung der Art der Bauweise'>Bauweise</td>" |
---|
| 37 | ."\n\t<td class='head' title='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.'>Zustand</td>" |
---|
| 38 | ."\n\t<td class='head nwlink' title='Lagebezeichnung mit Straße und Hausnummer'>Lage</td>" |
---|
| 39 | ."\n\t<td class='head nwlink' title='Link zu den kompletten Hausdaten'>Haus</td>" |
---|
| 40 | ."\n</tr>"; |
---|
| 41 | } |
---|
| 42 | |
---|
| 43 | function bauw_tab_head() { |
---|
[427] | 44 | // Kopf fÌr die Anzeige der Bauwerke. Nur wenn tatsÀchlich Bauwerke vorkommen. |
---|
| 45 | |
---|
[422] | 46 | // Ãberschrift |
---|
| 47 | echo "\n\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Bauwerke</h3>" |
---|
| 48 | ."\n<p>.. auf oder an dem Flurstück. Ermittelt durch Verschneidung der Geometrie.</p>"; |
---|
| 49 | |
---|
| 50 | // Tabellen-Kopf |
---|
| 51 | echo "\n<hr>\n<table class='geb'>"; |
---|
| 52 | echo "<tr><td colspan=3></td><td colspan=3 class='heads gw'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Bauwerks-Typ</td></tr>"; |
---|
| 53 | echo "\n<tr>"; |
---|
| 54 | echo "\n\t<td class='head' title='Bezeichnung und/oder Bauwerksname'>Name</td>" |
---|
| 55 | ."\n\t<td class='heads fla' title='Schnittfläche zwischen Flurstück und Bauwerk'><img src='ico/sortd.png' width='10' height='10' alt='' title='Sortierung (absteigend)'>Fläche</td>" |
---|
| 56 | ."\n\t<td class='head' title='gesamte Bauwerksfläche, liegt teilweise auf Nachbar-Flurstück'> </td>" |
---|
| 57 | ."\n\t<td class='head' title='Bauwerksfunktion'>Funktion</td>" |
---|
| 58 | ."\n\t<td class='head nwlink' title='Daten des zugehörigen Gebäudes'>zum Haus</td>" |
---|
| 59 | ."\n\t<td class='head nwlink' title='Detaillierte Daten zu diesem Bauwerk'>Bauwerk</td>" |
---|
| 60 | ."\n</tr>"; |
---|
| 61 | } |
---|
| 62 | |
---|
| 63 | // S T A R T |
---|
| 64 | ini_set("session.cookie_httponly", 1); |
---|
[362] | 65 | session_start(); |
---|
[422] | 66 | $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren |
---|
| 67 | $cntget = extract($_GET); // Parameter in Variable umwandeln |
---|
[387] | 68 | |
---|
| 69 | // strikte Validierung aller Parameter |
---|
[422] | 70 | if (isset($gmlid)) { |
---|
| 71 | if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} |
---|
| 72 | } else { |
---|
| 73 | die("Fehlender Parameter"); |
---|
| 74 | } |
---|
| 75 | if (isset($gkz)) { |
---|
| 76 | if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} |
---|
| 77 | } else { |
---|
| 78 | die("Fehlender Parameter"); |
---|
| 79 | } |
---|
[387] | 80 | if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} |
---|
[422] | 81 | if ($showkey === "j") {$showkey=true;} else {$showkey=false;} |
---|
[402] | 82 | if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} |
---|
[387] | 83 | |
---|
[422] | 84 | include "alkis_conf_location.php"; |
---|
| 85 | include "alkisfkt.php"; |
---|
| 86 | |
---|
[402] | 87 | echo <<<END |
---|
[377] | 88 | <!doctype html> |
---|
| 89 | <html lang="de"> |
---|
[362] | 90 | <head> |
---|
[377] | 91 | <meta charset="utf-8"> |
---|
[387] | 92 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
---|
[362] | 93 | <title>ALKIS Gebäudenachweis</title> |
---|
| 94 | <link rel="stylesheet" type="text/css" href="alkisauszug.css"> |
---|
| 95 | <link rel="shortcut icon" type="image/x-icon" href="ico/Haus.ico"> |
---|
| 96 | </head> |
---|
| 97 | <body> |
---|
[402] | 98 | END; |
---|
[422] | 99 | |
---|
| 100 | $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } |
---|
[427] | 101 | $dbg=$debug; |
---|
[425] | 102 | if ($nodebug === "j") {$dbg=0;} |
---|
[377] | 103 | $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisgebaeudenw.php'"); |
---|
[387] | 104 | if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>"; |
---|
[362] | 105 | |
---|
[427] | 106 | // FlurstÃŒck |
---|
[425] | 107 | $sqlf ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung |
---|
| 108 | FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") |
---|
| 109 | ."WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL;"; |
---|
[362] | 110 | $v=array($gmlid); |
---|
[430] | 111 | $resf=pg_prepare($con, "", $sqlf); |
---|
| 112 | $resf=pg_execute($con, "", $v); |
---|
[362] | 113 | if (!$resf) { |
---|
[387] | 114 | echo "\n<p class='err'>Fehler bei Flurstücksdaten.</p>"; |
---|
[425] | 115 | if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlf)."'</p>";} |
---|
| 116 | if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resf)."</p>";} |
---|
[362] | 117 | } |
---|
[425] | 118 | |
---|
| 119 | if ($dbg > 0) { |
---|
| 120 | $zeianz=pg_num_rows($resf); |
---|
| 121 | if ($zeianz > 1){ |
---|
| 122 | echo "\n<p class='err'>Die Abfrage liefert mehr als ein Flurstücks-Objekt!</p>"; |
---|
| 123 | if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlf), ENT_QUOTES, "UTF-8")."</p>";} |
---|
| 124 | } |
---|
| 125 | } |
---|
[402] | 126 | if ($rowf = pg_fetch_assoc($resf)) { |
---|
[362] | 127 | $gemkname=htmlentities($rowf["bezeichnung"], ENT_QUOTES, "UTF-8"); |
---|
| 128 | $gmkgnr=$rowf["gemarkungsnummer"]; |
---|
| 129 | $flurnummer=$rowf["flurnummer"]; |
---|
| 130 | $flstnummer=$rowf["zaehler"]; |
---|
| 131 | $nenner=$rowf["nenner"]; |
---|
| 132 | if ($nenner > 0) { // BruchNr |
---|
| 133 | $flstnummer.="/".$nenner; |
---|
| 134 | } |
---|
| 135 | $flstflaeche = $rowf["amtlicheflaeche"] ; |
---|
| 136 | } else { |
---|
[387] | 137 | echo "\n<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>"; |
---|
[362] | 138 | } |
---|
[425] | 139 | |
---|
[422] | 140 | echo "<p class='balken geb'>ALKIS Flurstück (Gebäude und Bauwerke) ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>"; // Balken |
---|
| 141 | echo "\n<h2>Flurstück (Gebäude und Bauwerke)</h2>"; |
---|
[402] | 142 | echo "\n<table class='outer'>" // Kopf |
---|
| 143 | ."\n<tr>" |
---|
| 144 | ."\n\t<td>" |
---|
| 145 | ."\n\t<td class='ll'><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Kennzeichen:</td>" |
---|
| 146 | ."\n\t<td>" |
---|
| 147 | ."\n\t\t<table class='kennzfs' title='Flurstückskennzeichen'>" // Kennzeichen in Rahmen |
---|
| 148 | ."\n\t\t<tr>" |
---|
| 149 | ."\n\t\t\t<td class='head'>Gemarkung</td>" |
---|
| 150 | ."\n\t\t\t<td class='head'>Flur</td>" |
---|
| 151 | ."\n\t\t\t<td class='head'>Flurst-Nr.</td>" |
---|
| 152 | ."\n\t\t</tr>\n\t\t<tr>" |
---|
[427] | 153 | ."\n\t\t\t<td title='Gemarkung'>".DsKy($gmkgnr, 'Gemarkungsnummer').$gemkname." </td>" |
---|
[402] | 154 | ."\n\t\t\t<td title='Flurnummer'>".$flurnummer."</td>" |
---|
| 155 | ."\n\t\t\t<td title='Flurstücksnummer (Zähler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>" |
---|
| 156 | ."\n\t\t</tr>" |
---|
| 157 | ."\n\t\t</table>" |
---|
| 158 | ."\n\t</td>" |
---|
| 159 | ."\n\t<td>" |
---|
| 160 | ."\n\t\t<p class='nwlink noprint'>" // Links zu anderem Nachweis |
---|
[427] | 161 | ."\n\t\t\t<a href='alkisfsnw.php?gkz=".$gkz."&gmlid=".$gmlid.LnkStf() |
---|
| 162 | ."&eig=n' title='Flurstücksnachweis'>Flurstück <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>" |
---|
[402] | 163 | ."\n\t\t</p>" |
---|
| 164 | ."\n\t</td>" |
---|
| 165 | ."\n</tr>" |
---|
| 166 | ."\n</table>"; |
---|
[362] | 167 | |
---|
| 168 | echo "\n<p class='fsd'>Flurstücksfläche: <b>".number_format($flstflaeche,0,",",".") . " m²</b></p>"; |
---|
| 169 | pg_free_result($resf); |
---|
| 170 | |
---|
[427] | 171 | // GebÀude |
---|
[430] | 172 | $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, coalesce(h.beschreibung, '') AS bauweise_beschreibung, u.beschreibung AS bezeichner, u.dokumentation AS gfktd, g.zustand, coalesce(z.beschreibung, '') AS bzustand, |
---|
[427] | 173 | round(st_area(g.wkb_geometry)::numeric,2) AS gebflae, "; // GEB-FlÀche, auch ausserhalb des FS |
---|
[362] | 174 | $sqlg.="round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, "; // wie viel vom GEB liegt im FS? |
---|
[422] | 175 | $sqlg.="st_within(g.wkb_geometry,f.wkb_geometry) as drin |
---|
| 176 | FROM ax_flurstueck f, ax_gebaeude g |
---|
| 177 | LEFT JOIN ax_bauweise_gebaeude h ON g.bauweise = h.wert |
---|
| 178 | LEFT JOIN ax_gebaeudefunktion u ON g.gebaeudefunktion = u.wert |
---|
| 179 | LEFT JOIN ax_zustand_gebaeude z ON g.zustand = z.wert |
---|
| 180 | WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; |
---|
[362] | 181 | |
---|
[427] | 182 | // "within" -> nur Geb., die komplett im FS liegen. "intersects" -> auch teil-ÃŒberlappende Flst. |
---|
[362] | 183 | $sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true "; |
---|
| 184 | // RLP: keine Relationen zu NebengebÀuden. Auf Qualifizierung verzichten, sonst werden NebengebÀude nicht angezeigt |
---|
| 185 | //$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') "; |
---|
| 186 | $sqlg.="ORDER BY schnittflae DESC;"; |
---|
| 187 | |
---|
| 188 | $v=array($gmlid); |
---|
[430] | 189 | $resg=pg_prepare($con, "", $sqlg); |
---|
| 190 | $resg=pg_execute($con, "", $v); |
---|
[362] | 191 | if (!$resg) { |
---|
[387] | 192 | echo "\n<p class='err'>Fehler bei Gebäude-Verschneidung.</p>"; |
---|
[425] | 193 | if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlg)."'</p>";} |
---|
| 194 | if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resg)."</p>";} |
---|
[362] | 195 | } |
---|
| 196 | $gebnr=0; |
---|
| 197 | $gebflsum=0; |
---|
[422] | 198 | while($rowg = pg_fetch_assoc($resg)) { |
---|
| 199 | $gebnr++; |
---|
| 200 | if ($gebnr === 1) {geb_tab_head();} // Tab.-Kopf |
---|
| 201 | $ggml=$rowg["gml_id"]; |
---|
| 202 | $gebflsum=$gebflsum + $rowg["schnittflae"]; |
---|
[430] | 203 | if (is_null($rowg["name"])) { |
---|
| 204 | $gnam=""; |
---|
| 205 | } else { |
---|
| 206 | $gnam=trim(trim($rowg["name"], "{}"), '"'); // GebÀude-Name ist ein Array in der DB: '{"A","B"}' |
---|
| 207 | } |
---|
[422] | 208 | // Mehrfachbelegung nur theoretisch. Entklammern reicht. Mal mit und mal ohne "" drum!? |
---|
| 209 | $gfktk=htmlentities($rowg["gebaeudefunktion"], ENT_QUOTES, "UTF-8"); // Geb.-Funktion Key |
---|
[427] | 210 | $gfktv=htmlentities($rowg["bezeichner"], ENT_QUOTES, "UTF-8"); // -Value |
---|
| 211 | $gfktd=htmlentities($rowg["gfktd"], ENT_QUOTES, "UTF-8"); // -Description |
---|
[362] | 212 | |
---|
[422] | 213 | $gbauw=$rowg["bauweise"]; |
---|
| 214 | $gbauwb=htmlentities($rowg["bauweise_beschreibung"], ENT_QUOTES, "UTF-8"); |
---|
| 215 | |
---|
| 216 | $gzus=$rowg["zustand"]; |
---|
| 217 | $gzustand=htmlentities($rowg["bzustand"], ENT_QUOTES, "UTF-8"); |
---|
| 218 | |
---|
| 219 | // 3 FÀlle unterscheiden: |
---|
| 220 | if ($rowg["drin"] === "t") { // GebÀude liegt komplett in FlurstÌck |
---|
| 221 | $f1=$rowg["schnittflae"]." m²"; |
---|
| 222 | $f2=" "; |
---|
| 223 | $gstyle="gin"; // siehe .css |
---|
| 224 | } else { |
---|
| 225 | if ($rowg["schnittflae"] === "0.00") { // GebÀude angrenzend (Grenzbebauung) |
---|
| 226 | $gstyle="gan"; |
---|
| 227 | $f1=" "; |
---|
| 228 | $f2="angrenzend"; |
---|
| 229 | } else { // Teile des GebÀudes stehen auf dem FlurstÌck |
---|
| 230 | $gstyle="gtl"; |
---|
[362] | 231 | $f1=$rowg["schnittflae"]." m²"; |
---|
[422] | 232 | $f2="(von ".$rowg["gebflae"]." m²)"; |
---|
[362] | 233 | } |
---|
[422] | 234 | } |
---|
[362] | 235 | |
---|
[422] | 236 | echo "\n<tr>" |
---|
| 237 | ."\n\t<td>"; |
---|
| 238 | if ($gnam != "") {echo "<span title='Gebäudename'>".$gnam."</span><br>";} |
---|
[427] | 239 | echo "</td>" |
---|
| 240 | ."\n\t<td class='fla'>".$f1."</td>\n\t<td class='".$gstyle."'>".$f2."</td>" // FlÀchenangaben |
---|
| 241 | ."\n\t<td title='".$gfktd."'>".DsKy($gfktk, 'Funktion-*').$gfktv."</td>" |
---|
| 242 | ."\n\t<td>"; |
---|
[422] | 243 | if ($gbauw != "") { |
---|
[427] | 244 | echo DsKy($gbauw, 'Bauweise-*').$gbauwb; |
---|
[422] | 245 | } |
---|
[427] | 246 | echo "</td>\n\t<td>"; |
---|
[422] | 247 | if ($gzus != "") { |
---|
[427] | 248 | echo DsKy(gzus, 'Zustand-*').$gzustand; |
---|
[422] | 249 | } |
---|
| 250 | echo "</td>"; |
---|
[362] | 251 | |
---|
[422] | 252 | // 2 Spalten mit Links zu anderen Nachweisen: 1. Lage, 2. GebÀude |
---|
| 253 | echo "\n\t<td class='nwlink noprint'>"; // Link Lage |
---|
[362] | 254 | |
---|
[422] | 255 | // Zu EINEM GebÀude mehrere Lagebezeichnungen mit Haus- oder Pseudo-Nummer möglich, alle in ein TD |
---|
| 256 | // HAUPTgebÀude Geb >zeigtAuf> lage (mehrere) |
---|
| 257 | $sqll="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer " |
---|
| 258 | ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) " |
---|
| 259 | ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " |
---|
| 260 | ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; |
---|
[362] | 261 | |
---|
[422] | 262 | // UNION - oder NEBENgebÀude Geb >hat> Pseudo |
---|
| 263 | $sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer " |
---|
| 264 | ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat " |
---|
| 265 | ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " |
---|
| 266 | ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses" |
---|
| 267 | |
---|
| 268 | $sqll.="ORDER BY bezeichnung, hausnummer, laufendenummer;"; |
---|
| 269 | $v = array($ggml); |
---|
[430] | 270 | $resl = pg_prepare($con, "", $sqll); |
---|
| 271 | $resl = pg_execute($con, "", $v); |
---|
[422] | 272 | if (!$resl) { |
---|
| 273 | echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>"; |
---|
[425] | 274 | if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqll)."'</p>";} |
---|
| 275 | if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resl)."</p>";} |
---|
[422] | 276 | } |
---|
| 277 | while($rowl = pg_fetch_assoc($resl)) { // LOOP: Lagezeilen |
---|
| 278 | $ltyp=$rowl["ltyp"]; // Lagezeilen-Typ |
---|
| 279 | $skey=$rowl["lage"]; // Str.-Schluessel |
---|
| 280 | $snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); //-Name |
---|
| 281 | $hsnr=$rowl["hausnummer"]; |
---|
| 282 | $hlfd=$rowl["laufendenummer"]; |
---|
| 283 | $gmllag=$rowl["lgml"]; |
---|
| 284 | if ($ltyp === "p") { |
---|
| 285 | $lagetitl="Nebengebäude - Pseudonummer"; |
---|
| 286 | $lagetxt="Nebengeb. ".$hlfd; // + HausNr?? |
---|
| 287 | } else { |
---|
| 288 | $lagetitl="HauptgebÀude - Hausnummer"; |
---|
| 289 | $lagetxt=$snam." ".$hsnr; |
---|
[362] | 290 | } |
---|
[427] | 291 | echo "\n\t\t<a title='".$lagetitl."' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag."&ltyp=".$ltyp.LnkStf()."'>" |
---|
| 292 | .DsKy($skey, 'Straßen-*').$lagetxt." <img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a><br>"; |
---|
[422] | 293 | } // Ende Loop Lage m.H. |
---|
| 294 | pg_free_result($resl); |
---|
| 295 | echo "\n\t</td>"; |
---|
[402] | 296 | |
---|
[422] | 297 | echo "\n\t<td class='nwlink noprint'>" // Link Haus |
---|
[427] | 298 | ."\n\t\t<a title='Daten zum Gebäude-Objekt' href='alkishaus.php?gkz=".$gkz."&gmlid=".$ggml.LnkStf() |
---|
| 299 | ."'>Haus <img src='ico/Haus.png' width='16' height='16' alt=''></a>" |
---|
[422] | 300 | ."\n\t</td>" |
---|
| 301 | ."\n</tr>"; |
---|
| 302 | } |
---|
| 303 | // Footer GebÀude |
---|
| 304 | if ($gebnr === 0) { |
---|
| 305 | echo "<p><br>Kein Gebäude auf diesem Flurstück.<br> </p>"; |
---|
| 306 | } else { |
---|
| 307 | echo "\n<tr>" |
---|
| 308 | ."\n\t<td>Summe:</td>" |
---|
| 309 | ."\n\t<td class='fla sum' title='von Gebäuden überbaute Fläche des Flurstücks'>".number_format($gebflsum,0,",",".")." m²</td>" |
---|
| 310 | ."\n\t<td colspan='6'> </td>" |
---|
| 311 | ."\n</tr>" |
---|
[362] | 312 | ."\n</table>"; |
---|
| 313 | $unbebaut = number_format(($flstflaeche - $gebflsum),0,",",".") . " m²"; |
---|
[402] | 314 | echo "\n<p>\n<br>Flurstücksfläche abzüglich Gebäudefläche: <b>".$unbebaut."</b></p>\n<br>"; |
---|
[362] | 315 | } |
---|
| 316 | pg_free_result($resg); |
---|
[422] | 317 | |
---|
| 318 | // B a u w e r k e |
---|
| 319 | // Konstanten fÃŒr Sortierung und Gruppierung |
---|
| 320 | $btyp_verkehr=1; $btyp_gewaesser=2; $btyp_sonst=3; $btyp_indu=4; $btyp_sport=5; |
---|
| 321 | $btyp_leitg=6; $btyp_trans=7; $btyp_turm=8; $btyp_vorrat=9; |
---|
[427] | 322 | $btyp_hist=10; $btyp_heil=11; $btyp_oeff=12; $btyp_bpkt=13; |
---|
[422] | 323 | |
---|
[427] | 324 | // Tabllen-Alias, 2-3 stellig. 1. Stelle: f_=FlurstÃŒck, b_=Bauwerk, k_=Key = SchlÃŒsseltabelle. // 2.-3. Stelle: wie Konstante |
---|
[422] | 325 | |
---|
[427] | 326 | // 1 - V e r k e h r |
---|
[422] | 327 | $sqlb="SELECT ".$btyp_verkehr." AS bwtyp, b1.gml_id, |
---|
[427] | 328 | b1.bauwerksfunktion, k1.beschreibung, k1.dokumentation, b1.bezeichnung, b1.name, NULL AS gehoertzu, |
---|
[422] | 329 | round(st_area(b1.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b1.wkb_geometry,f1.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 330 | st_within(b1.wkb_geometry,f1.wkb_geometry) as drin, GeometryType(b1.wkb_geometry) as bgeotyp |
---|
| 331 | FROM ax_flurstueck f1 |
---|
| 332 | JOIN ax_bauwerkimverkehrsbereich b1 ON st_intersects(b1.wkb_geometry,f1.wkb_geometry) = true |
---|
| 333 | LEFT JOIN ax_bauwerksfunktion_bauwerkimverkehrsbereich k1 ON b1.bauwerksfunktion = k1.wert |
---|
| 334 | WHERE f1.gml_id = $1 AND f1.endet IS NULL AND b1.endet IS NULL "; |
---|
| 335 | // 2 - G e w À s s e r |
---|
| 336 | $sqlb.="UNION |
---|
[427] | 337 | SELECT ".$btyp_gewaesser." AS bwtyp, b2.gml_id, b2.bauwerksfunktion, k2.beschreibung, k2.dokumentation, b2.bezeichnung, b2.name, NULL AS gehoertzu, |
---|
[422] | 338 | round(st_area(b2.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b2.wkb_geometry,f2.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 339 | st_within(b2.wkb_geometry,f2.wkb_geometry) as drin, GeometryType(b2.wkb_geometry) as bgeotyp |
---|
| 340 | FROM ax_flurstueck f2 |
---|
| 341 | JOIN ax_bauwerkimgewaesserbereich b2 ON st_intersects(b2.wkb_geometry,f2.wkb_geometry) = true |
---|
[427] | 342 | LEFT JOIN ax_bauwerksfunktion_bauwerkimgewaesserbereich k2 ON b2.bauwerksfunktion = k2.wert |
---|
[422] | 343 | WHERE f2.gml_id = $1 AND f2.endet IS NULL AND b2.endet IS NULL "; |
---|
| 344 | // 3 - S o n s t i g e Bauwerke |
---|
| 345 | $sqlb.="UNION |
---|
[427] | 346 | SELECT ".$btyp_sonst." AS bwtyp, b3.gml_id, b3.bauwerksfunktion, k3.beschreibung, k3.dokumentation, b3.bezeichnung, b3.name, b3.gehoertzu, |
---|
[422] | 347 | round(st_area(b3.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b3.wkb_geometry,f3.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 348 | st_within(b3.wkb_geometry,f3.wkb_geometry) as drin, GeometryType(b3.wkb_geometry) as bgeotyp |
---|
| 349 | FROM ax_flurstueck f3 |
---|
| 350 | JOIN ax_sonstigesbauwerkodersonstigeeinrichtung b3 ON st_intersects(b3.wkb_geometry,f3.wkb_geometry) = true |
---|
| 351 | LEFT JOIN ax_bauwerksfunktion_sonstigesbauwerkodersonstigeeinrichtun k3 ON b3.bauwerksfunktion = k3.wert |
---|
| 352 | WHERE f3.gml_id = $1 AND f3.endet IS NULL AND b3.endet IS NULL "; |
---|
| 353 | // 4 - Bauwerk oder Anlage fÃŒr I n d u s t r i e und Gewerbe |
---|
| 354 | $sqlb.="UNION |
---|
[427] | 355 | SELECT ".$btyp_indu." AS bwtyp, b4.gml_id, b4.bauwerksfunktion, k4.beschreibung, k4.dokumentation, b4.bezeichnung, b4.name, NULL AS gehoertzu, |
---|
[422] | 356 | round(st_area(b4.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b4.wkb_geometry,f4.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 357 | st_within(b4.wkb_geometry,f4.wkb_geometry) as drin, GeometryType(b4.wkb_geometry) as bgeotyp |
---|
| 358 | FROM ax_flurstueck f4 |
---|
| 359 | JOIN ax_bauwerkoderanlagefuerindustrieundgewerbe b4 ON st_intersects(b4.wkb_geometry,f4.wkb_geometry) = true |
---|
| 360 | LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuerindustrieundgewer k4 ON b4.bauwerksfunktion = k4.wert |
---|
| 361 | WHERE f4.gml_id = $1 AND f4.endet IS NULL AND b4.endet IS NULL "; |
---|
| 362 | // 5 - Bauwerk oder Anlage fÃŒr S p o r t , Freizeit und Erholung |
---|
| 363 | $sqlb.="UNION |
---|
[427] | 364 | SELECT ".$btyp_sport." AS bwtyp, b5.gml_id, b5.bauwerksfunktion, k5.beschreibung, k5.dokumentation, NULL AS bezeichnung, b5.name, NULL AS gehoertzu, |
---|
[422] | 365 | round(st_area(b5.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b5.wkb_geometry,f5.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 366 | st_within(b5.wkb_geometry,f5.wkb_geometry) as drin, GeometryType(b5.wkb_geometry) as bgeotyp |
---|
| 367 | FROM ax_flurstueck f5 |
---|
| 368 | JOIN ax_bauwerkoderanlagefuersportfreizeitunderholung b5 ON st_intersects(b5.wkb_geometry,f5.wkb_geometry) = true |
---|
| 369 | LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuersportfreizeitunde k5 ON b5.bauwerksfunktion = k5.wert |
---|
| 370 | WHERE f5.gml_id = $1 AND f5.endet IS NULL AND b5.endet IS NULL "; |
---|
| 371 | // 6 - L e i t u n g |
---|
| 372 | $sqlb.="UNION |
---|
[427] | 373 | SELECT ".$btyp_leitg." AS bwtyp, b6.gml_id, b6.bauwerksfunktion, k6.beschreibung, k6.dokumentation, NULL AS bezeichnung, b6.name, NULL AS gehoertzu, |
---|
[422] | 374 | round(st_area(b6.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b6.wkb_geometry,f6.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 375 | st_within(b6.wkb_geometry,f6.wkb_geometry) as drin, GeometryType(b6.wkb_geometry) as bgeotyp |
---|
| 376 | FROM ax_flurstueck f6 |
---|
| 377 | JOIN ax_leitung b6 ON st_intersects(b6.wkb_geometry,f6.wkb_geometry) = true |
---|
| 378 | LEFT JOIN ax_bauwerksfunktion_leitung k6 ON b6.bauwerksfunktion = k6.wert |
---|
| 379 | WHERE f6.gml_id = $1 AND f6.endet IS NULL AND b6.endet IS NULL "; |
---|
| 380 | // 7 - T r a n s p o r t a n l a g e |
---|
| 381 | $sqlb.="UNION |
---|
[427] | 382 | SELECT ".$btyp_trans." AS bwtyp, b7.gml_id, b7.bauwerksfunktion, k7.beschreibung, k7.dokumentation, NULL AS bezeichnung, NULL AS name, NULL AS gehoertzu, |
---|
[422] | 383 | round(st_area(b7.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b7.wkb_geometry,f7.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 384 | st_within(b7.wkb_geometry,f7.wkb_geometry) as drin, GeometryType(b7.wkb_geometry) as bgeotyp |
---|
| 385 | FROM ax_flurstueck f7 |
---|
| 386 | JOIN ax_transportanlage b7 ON st_intersects(b7.wkb_geometry,f7.wkb_geometry) = true |
---|
| 387 | LEFT JOIN ax_bauwerksfunktion_transportanlage k7 ON b7.bauwerksfunktion = k7.wert |
---|
| 388 | WHERE f7.gml_id = $1 AND f7.endet IS NULL AND b7.endet IS NULL "; |
---|
| 389 | // 8 - T u r m (Sonderfall Array) |
---|
| 390 | $sqlb.="UNION |
---|
[427] | 391 | SELECT ".$btyp_turm." AS bwtyp, b8.gml_id, k8.wert AS bauwerksfunktion, k8.beschreibung, k8.dokumentation, NULL AS bezeichnung, b8.name, NULL AS gehoertzu, |
---|
[422] | 392 | round(st_area(b8.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b8.wkb_geometry,f8.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 393 | st_within(b8.wkb_geometry,f8.wkb_geometry) as drin, GeometryType(b8.wkb_geometry) as bgeotyp |
---|
| 394 | FROM ax_flurstueck f8 |
---|
| 395 | JOIN ax_turm b8 ON st_intersects(b8.wkb_geometry,f8.wkb_geometry) = true |
---|
| 396 | LEFT JOIN ax_bauwerksfunktion_turm k8 ON k8.wert =ANY(b8.bauwerksfunktion) |
---|
| 397 | WHERE f8.gml_id = $1 AND f8.endet IS NULL AND b8.endet IS NULL "; |
---|
| 398 | // 9 - V o r r a t s b e h À l t e r , S p e i c h e r b a u w e r k |
---|
| 399 | $sqlb.="UNION |
---|
[427] | 400 | SELECT ".$btyp_vorrat." AS bwtyp, b9.gml_id, b9.bauwerksfunktion, k9.beschreibung, k9.dokumentation, NULL AS bezeichnung, b9.name, NULL AS gehoertzu, |
---|
[422] | 401 | round(st_area(b9.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b9.wkb_geometry,f9.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 402 | st_within(b9.wkb_geometry,f9.wkb_geometry) as drin, GeometryType(b9.wkb_geometry) as bgeotyp |
---|
| 403 | FROM ax_flurstueck f9 |
---|
| 404 | JOIN ax_vorratsbehaelterspeicherbauwerk b9 ON st_intersects(b9.wkb_geometry,f9.wkb_geometry) = true |
---|
| 405 | LEFT JOIN ax_bauwerksfunktion_vorratsbehaelterspeicherbauwerk k9 ON b9.bauwerksfunktion = k9.wert |
---|
| 406 | WHERE f9.gml_id = $1 AND f9.endet IS NULL AND b9.endet IS NULL "; |
---|
[427] | 407 | // 10 - H i s t o r i s c h e s Bauwerk oder historische Einrichtung |
---|
| 408 | $sqlb.="UNION |
---|
| 409 | SELECT ".$btyp_hist." AS bwtyp, b10.gml_id, NULL AS bauwerksfunktion, k10.beschreibung, k10.dokumentation, NULL AS bezeichnung, b10.name, NULL AS gehoertzu, |
---|
| 410 | round(st_area(b10.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b10.wkb_geometry,f10.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 411 | st_within(b10.wkb_geometry,f10.wkb_geometry) as drin, GeometryType(b10.wkb_geometry) as bgeotyp |
---|
| 412 | FROM ax_flurstueck f10 |
---|
| 413 | JOIN ax_historischesbauwerkoderhistorischeeinrichtung b10 ON st_intersects(b10.wkb_geometry,f10.wkb_geometry) = true |
---|
| 414 | LEFT JOIN ax_archaeologischertyp_historischesbauwerkoderhistorischee k10 ON b10.archaeologischertyp = k10.wert |
---|
| 415 | WHERE f10.gml_id = $1 AND f10.endet IS NULL AND b10.endet IS NULL "; |
---|
| 416 | // 11 - H e i l q u e l l e , G a s q u e l l e |
---|
| 417 | $sqlb.="UNION |
---|
| 418 | SELECT ".$btyp_heil." AS bwtyp, b11.gml_id, NULL AS bauwerksfunktion, k11.beschreibung, k11.dokumentation, NULL AS bezeichnung, b11.name, NULL AS gehoertzu, |
---|
| 419 | round(st_area(b11.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b11.wkb_geometry,f11.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 420 | st_within(b11.wkb_geometry,f11.wkb_geometry) as drin, GeometryType(b11.wkb_geometry) as bgeotyp |
---|
| 421 | FROM ax_flurstueck f11 |
---|
| 422 | JOIN ax_heilquellegasquelle b11 ON st_intersects(b11.wkb_geometry,f11.wkb_geometry) = true |
---|
| 423 | LEFT JOIN ax_art_heilquellegasquelle k11 ON b11.art = k11.wert |
---|
| 424 | WHERE f11.gml_id = $1 AND f11.endet IS NULL AND b11.endet IS NULL "; |
---|
| 425 | // 12 - Einrichtung in öffentlichen Bereichen |
---|
| 426 | $sqlb.="UNION |
---|
| 427 | SELECT ".$btyp_oeff." AS bwtyp, b12.gml_id, NULL AS bauwerksfunktion, k12.beschreibung, k12.dokumentation, NULL AS bezeichnung, NULL AS name, NULL AS gehoertzu, |
---|
| 428 | round(st_area(b12.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b12.wkb_geometry,f12.wkb_geometry))::numeric,2) AS schnittflae, |
---|
| 429 | st_within(b12.wkb_geometry,f12.wkb_geometry) as drin, GeometryType(b12.wkb_geometry) as bgeotyp |
---|
| 430 | FROM ax_flurstueck f12 |
---|
| 431 | JOIN ax_einrichtunginoeffentlichenbereichen b12 ON st_intersects(b12.wkb_geometry,f12.wkb_geometry) = true |
---|
| 432 | LEFT JOIN ax_art_einrichtunginoeffentlichenbereichen k12 ON b12.art = k12.wert |
---|
| 433 | WHERE f12.gml_id = $1 AND f12.endet IS NULL AND b12.endet IS NULL "; |
---|
| 434 | /* TestfÀlle FS: SELECT f.gml_id FROM ax_flurstueck f JOIN ax_einrichtunginoeffentlichenbereichen b ON st_intersects(b.wkb_geometry,f.wkb_geometry) = true; |
---|
| 435 | 140: DENW17AL34g000F6 */ |
---|
[422] | 436 | |
---|
[427] | 437 | /* // 13 - Besonderer Bauwerkspunkt (ohne Geometrie !) |
---|
| 438 | $sqlb.="UNION |
---|
| 439 | SELECT ".$btyp_bpkt. |
---|
| 440 | // Tab: ax_besondererbauwerkspunkt */ |
---|
| 441 | |
---|
[422] | 442 | // Generell ... |
---|
| 443 | $sqlb.="ORDER BY bwtyp, schnittflae DESC;"; |
---|
| 444 | |
---|
| 445 | $v=array($gmlid); |
---|
[430] | 446 | $resb=pg_prepare($con, "", $sqlb); |
---|
| 447 | $resb=pg_execute($con, "", $v); |
---|
| 448 | |
---|
| 449 | $baunr=0; // ZÀhler |
---|
| 450 | $bauflsum=0; // FlÀchensumme |
---|
| 451 | $gwbwtyp=0; // Gruppen-Wechsel Bauwerks-Typ |
---|
| 452 | |
---|
[422] | 453 | if (!$resb) { |
---|
| 454 | echo "\n<p class='err'>Fehler bei Bauwerke-Verschneidung.</p>"; |
---|
[425] | 455 | if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlb)."</p>";} |
---|
| 456 | if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resb)."</p>";} |
---|
[430] | 457 | } else { |
---|
| 458 | while($rowb = pg_fetch_assoc($resb)) { |
---|
| 459 | $baunr++; |
---|
| 460 | $btyp=$rowb["bwtyp"]; // Tabelle |
---|
| 461 | $bgml=$rowb["gml_id"]; |
---|
| 462 | $bauflsum=$bauflsum + $rowb["schnittflae"]; |
---|
| 463 | if (is_null($rowb["bezeichnung"])) { |
---|
| 464 | $bbez=""; |
---|
[422] | 465 | } else { |
---|
[430] | 466 | $bbez=htmlentities($rowb["bezeichnung"], ENT_QUOTES, "UTF-8"); |
---|
[422] | 467 | } |
---|
[430] | 468 | $bfktk=htmlentities($rowb["bauwerksfunktion"], ENT_QUOTES, "UTF-8"); |
---|
| 469 | $bfktv=htmlentities($rowb["beschreibung"], ENT_QUOTES, "UTF-8"); |
---|
| 470 | $bfktd=htmlentities($rowb["dokumentation"], ENT_QUOTES, "UTF-8"); |
---|
| 471 | if (is_null($rowb["name"])) { |
---|
| 472 | $bnam=""; |
---|
[422] | 473 | } else { |
---|
[430] | 474 | $bnam=htmlentities($rowb["name"], ENT_QUOTES, "UTF-8"); |
---|
[422] | 475 | } |
---|
[430] | 476 | $bgeb=$rowb["gehoertzu"]; |
---|
| 477 | $drin=$rowb["drin"]; |
---|
| 478 | $bgeotyp=$rowb["bgeotyp"]; |
---|
| 479 | |
---|
| 480 | // Lage des Bauwerks zum FlurstÃŒck |
---|
| 481 | if ($bgeotyp === "LINESTRING") { |
---|
| 482 | if ($drin === "t") { |
---|
| 483 | $bstyle="gin"; |
---|
| 484 | } else { |
---|
[422] | 485 | $bstyle="gtl"; |
---|
[430] | 486 | } |
---|
| 487 | $f1=" "; |
---|
| 488 | $f2="Linie"; |
---|
| 489 | } elseif ($bgeotyp === "POINT") { |
---|
| 490 | if ($drin === "t") { |
---|
| 491 | $bstyle="gin"; |
---|
| 492 | } else { |
---|
| 493 | $bstyle="gtl"; |
---|
| 494 | } |
---|
| 495 | $f1=" "; |
---|
| 496 | $f2="Punkt"; |
---|
| 497 | } else { // FlÀche / Multi- |
---|
| 498 | if ($drin === "t") { // komplett IM FlurstÃŒck |
---|
[422] | 499 | $f1=$rowb["schnittflae"]." m²"; |
---|
[430] | 500 | $f2=" "; |
---|
| 501 | $bstyle="gin"; // siehe .css |
---|
| 502 | } else { |
---|
| 503 | if ($rowb["schnittflae"] === "0.00") { // nur angrenzend |
---|
| 504 | $bstyle="gan"; |
---|
| 505 | $f1=" "; |
---|
| 506 | $f2="angrenzend"; |
---|
| 507 | } else { // Teile auf FlurstÃŒck |
---|
| 508 | $bstyle="gtl"; |
---|
| 509 | $f1=$rowb["schnittflae"]." m²"; |
---|
| 510 | $f2="(von ".$rowb["gebflae"]." m²)"; |
---|
| 511 | } |
---|
| 512 | } |
---|
| 513 | } |
---|
| 514 | |
---|
| 515 | // Gruppenwechsel Bauwerks-Typ (Quell-Tabelle) - Zwischen-Ãberschrift |
---|
| 516 | If ($btyp != $gwbwtyp) { |
---|
| 517 | $gwbwtyp = $btyp; |
---|
| 518 | if ($baunr === 1) {bauw_tab_head();} // Tab.-Kopf |
---|
| 519 | switch ($btyp) { |
---|
| 520 | case $btyp_verkehr: |
---|
| 521 | $btyptitle='Bauwerk im Verkehrsbereich'; break; |
---|
| 522 | case $btyp_gewaesser: |
---|
| 523 | $btyptitle='Bauwerk im Gewässerbereich'; break; |
---|
| 524 | case $btyp_sonst: |
---|
| 525 | $btyptitle='Sonstiges Bauwerk oder sonstige Einrichtung'; break; |
---|
| 526 | case $btyp_indu: |
---|
| 527 | $btyptitle="Bauwerk oder Anlage für Industrie und Gewerbe"; break; |
---|
| 528 | case $btyp_sport: |
---|
| 529 | $btyptitle="Bauwerk oder Anlage für Sport, Freizeit und Erholung"; break; |
---|
| 530 | case $btyp_leitg: |
---|
| 531 | $btyptitle="Leitung"; break; |
---|
| 532 | case $btyp_trans: |
---|
| 533 | $btyptitle="Transportanlage"; break; |
---|
| 534 | case $btyp_turm: |
---|
| 535 | $btyptitle="Turm"; break; |
---|
| 536 | case $btyp_vorrat: |
---|
| 537 | $btyptitle="Vorratsbehälter, Speicherbauwerk"; break; |
---|
| 538 | case $btyp_hist: |
---|
| 539 | $btyptitle="Historisches Bauwerk oder historische Einrichtung"; break; |
---|
| 540 | case $btyp_heil: |
---|
| 541 | $btyptitle="Heilquelle, Gasquelle"; break; |
---|
| 542 | case $btyp_oeff: |
---|
| 543 | $btyptitle="Einrichtung in öffentlichen Bereichen"; break; |
---|
| 544 | case $btyp_bpkt: |
---|
| 545 | $btyptitle="Besonderer Bauwerkspunkt"; break; |
---|
| 546 | default: |
---|
| 547 | $btyptitle='Fehler!'; break; |
---|
[422] | 548 | } |
---|
[430] | 549 | echo "<tr><td colspan=3></td><td colspan=2 class='gw'>".$btyptitle."</td></tr>"; // ++ Symbol? |
---|
[422] | 550 | } |
---|
| 551 | |
---|
[430] | 552 | echo "\n<tr>"; |
---|
| 553 | echo "\n\t<td>"; |
---|
| 554 | if ($bbez != "") {echo "<span title='Bezeichnung'>".$bbez."</span> ";} |
---|
| 555 | if ($bnam != "") {echo "<span title='Name'>".$bnam."</span> ";} |
---|
| 556 | echo "</td>"; |
---|
| 557 | echo "\n\t<td class='fla'>".$f1."</td>" |
---|
| 558 | ."\n\t<td class='".$bstyle."'>".$f2."</td>"; // FlÀchenangaben |
---|
| 559 | echo "\n\t<td>".DsKy($bfktk, 'Bauwerksfunktion-*')."<span title='".$bfktd ."'>".$bfktv."</span></td>"; |
---|
[422] | 560 | |
---|
[430] | 561 | // Lage / Haus (nur bei Typ 3 sonstige) |
---|
| 562 | echo "\n\t<td class='nwlink noprint'>"; // Link |
---|
| 563 | if ($bgeb != "") { // gehört zu GebÀude |
---|
| 564 | // bw_gz_lage($bgeb); // Function: Lage (Adresse) ausgeben |
---|
| 565 | echo "\n\t\t<a title='gehört zu' href='alkishaus.php?gkz=".$gkz."&gmlid=".$bgeb.LnkStf() |
---|
| 566 | ."'>Haus <img src='ico/Haus.png' width='16' height='16' alt=''></a>"; |
---|
| 567 | } |
---|
| 568 | echo "\n\t</td>"; |
---|
[422] | 569 | |
---|
[430] | 570 | // Bauwerk Details |
---|
| 571 | echo "\n\t<td class='nwlink noprint'>" // Link |
---|
| 572 | ."\n\t\t<a title='Bauwerksdaten' href='alkisbauwerk.php?gkz=".$gkz."&btyp=".$btyp."&gmlid=".$bgml.LnkStf() |
---|
| 573 | ."'>Bauwerk <img src='ico/Haus.png' width='16' height='16' alt=''></a>" // Icon fÃŒr Bauwerk schaffen |
---|
| 574 | ."\n\t</td>" |
---|
| 575 | ."\n</tr>"; |
---|
| 576 | } |
---|
[422] | 577 | |
---|
[430] | 578 | // Footer Bauwerke |
---|
| 579 | if ($baunr === 0) { |
---|
| 580 | echo "\n<p>Kein Bauwerk auf diesem Flurstück.</p><br>"; |
---|
| 581 | // if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".$sqlb."<br>$1 = gml_id = '".$gmlid."'</p>";} |
---|
| 582 | } else { |
---|
| 583 | echo "\n<tr>" |
---|
| 584 | ."\n\t<td>Summe:</td>" |
---|
| 585 | ."\n\t<td class='fla sum' title='von Bauwerken überbaute Fläche des Flurstücks'>".number_format($bauflsum,0,",",".")." m²</td>" |
---|
| 586 | ."\n\t<td colspan='6'> </td>" |
---|
| 587 | ."\n</tr>" |
---|
| 588 | ."\n</table>\n"; |
---|
| 589 | } |
---|
| 590 | pg_free_result($resb); |
---|
[422] | 591 | } |
---|
[362] | 592 | |
---|
[425] | 593 | echo "<div class='buttonbereich noprint'>\n<hr>" |
---|
| 594 | ."\n\t<a title='zurück' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zurück'></a> "; |
---|
| 595 | if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a> ";} |
---|
| 596 | echo "\n</div>"; |
---|
[362] | 597 | |
---|
[425] | 598 | footer($gmlid, selbstverlinkung()."?", ""); |
---|
| 599 | ?> |
---|
[362] | 600 | </body> |
---|
| 601 | </html> |
---|