Changeset 376 for trunk/info/info/alkis/alkisgebaeudenw.php
- Timestamp:
- 12/01/16 12:43:03 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkis/alkisgebaeudenw.php
r357 r376 4 4 5 5 Version: 6 2011-11-22 Feld ax_gebaeude.description ist entfallen, neue Spalte Zustand 7 2011-11-30 Fehlerkorrektur Gebaeude mit mehreren Adressen nicht mehrfach 8 2013-04-08 deprecated "import_request_variables" ersetzt 9 2014-01-30 pg_free_result 10 2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 11 2014-09-10 Bei Relationen den Timestamp abschneiden 12 2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id) 13 2015-12-09 Austausch .ico durch .png 14 2015-12-16 area -> st_area 6 2016-02-24 Version fuer norGIS-ALKIS-Import 7 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 15 8 */ 16 9 session_start(); … … 20 13 if ($auth == "mapbender") {require_once($mapbender);} 21 14 include("alkisfkt.php"); 22 if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;}23 15 $keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 24 16 if ($keys == "j") {$showkey=true;} else {$showkey=false;} 25 17 ?> 26 <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">27 <html >18 <!doctype html> 19 <html lang="de"> 28 20 <head> 29 <meta name="author" content="b600352" > 30 <meta http-equiv="cache-control" content="no-cache"> 31 <meta http-equiv="pragma" content="no-cache"> 32 <meta http-equiv="expires" content="0"> 33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 21 <meta charset="utf-8"> 34 22 <title>ALKIS Gebäudenachweis</title> 35 23 <link rel="stylesheet" type="text/css" href="alkisauszug.css"> … … 41 29 <body> 42 30 <?php 43 $con = pg_connect( "host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);31 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisgebaeudenw.php'"); 44 32 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n"; 45 33 … … 76 64 77 65 // Kennzeichen in Rahmen 78 echo "\n<table class='outer'>\n<tr>\n<td>" ;79 echo "\n\t<table class='kennzfs' title='Flurstückskennzeichen'>";80 echo "\n\t<tr>";81 echo "\n\t\t<td class='head'>Gmkg</td>";82 echo "\n\t\t<td class='head'>Flur</td>";83 echo "\n\t\t<td class='head'>Flurst-Nr.</td>";84 echo "\n\t</tr>\n\t<tr>";85 echo"\n\t\t<td title='Gemarkung'>";66 echo "\n<table class='outer'>\n<tr>\n<td>" 67 ."\n\t<table class='kennzfs' title='Flurstückskennzeichen'>" 68 ."\n\t<tr>" 69 ."\n\t\t<td class='head'>Gmkg</td>" 70 ."\n\t\t<td class='head'>Flur</td>" 71 ."\n\t\t<td class='head'>Flurst-Nr.</td>" 72 ."\n\t</tr>\n\t<tr>" 73 ."\n\t\t<td title='Gemarkung'>"; 86 74 if ($showkey) {echo "<span class='key'>".$gmkgnr."</span><br>";} 87 echo $gemkname." </td>"; 88 echo "\n\t\t<td title='Flurnummer'>".$flurnummer."</td>"; 89 echo "\n\t\t<td title='Flurstücksnummer (Zähler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>"; 90 echo "\n\t</tr>"; 91 echo "\n\t</table>"; 92 echo "\n</td>\n<td>"; 93 94 // Links zu anderen Nachweisen 95 echo "\n\t<p class='nwlink noprint'>"; 96 echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&gmlid=".$gmlid; 97 if ($idanzeige) {echo "&id=j";} 98 if ($showkey) {echo "&showkey=j";} 99 echo "&eig=n' title='Flurstücksnachweis'>Flurstück <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>"; 100 echo "\n\t</p>"; 101 if ($idanzeige) {linkgml($gkz, $gmlid, "Flurstück", "ax_flurstueck"); } 102 echo "\n\t</td>\n</tr>\n</table>"; 75 echo $gemkname." </td>" 76 ."\n\t\t<td title='Flurnummer'>".$flurnummer."</td>" 77 ."\n\t\t<td title='Flurstücksnummer (Zähler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>" 78 ."\n\t</tr>" 79 ."\n\t</table>" 80 ."\n</td>\n<td>"; 81 82 // Links zu anderem Nachweis 83 echo "\n\t<p class='nwlink noprint'>" 84 ."\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&gmlid=".$gmlid; 85 if ($showkey) {echo "&showkey=j";} 86 echo "&eig=n' title='Flurstücksnachweis'>Flurstück <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>" 87 ."\n\t</p>" 88 ."\n\t</td>\n</tr>\n</table>"; 103 89 // Ende Seitenkopf 104 90 … … 106 92 pg_free_result($resf); 107 93 108 echo "\n\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Gebäude</h3>" ;109 echo"\n<p>.. auf oder an dem Flurstück. Ermittelt durch Verschneidung der Geometrie.</p>";94 echo "\n\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Gebäude</h3>" 95 ."\n<p>.. auf oder an dem Flurstück. Ermittelt durch Verschneidung der Geometrie.</p>"; 110 96 111 97 // G e b a e u d e 112 $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, h.bauweise_beschreibung, u.bezeichner, g.zustand, z.bezeichner AS bzustand, "; 113 114 // GEB-Flaeche komplett auch die Fl. ausserhalb des FS 115 $sqlg.="round(st_area(g.wkb_geometry)::numeric,2) AS gebflae, "; 116 117 // wie viel vom GEB liegt im FS? 118 $sqlg.="round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, "; 119 120 // liegt das GEB komplett im FS? 121 $sqlg.="st_within(g.wkb_geometry,f.wkb_geometry) as drin "; 122 123 // FS und GEB geometrisch verschneiden 124 $sqlg.="FROM ax_flurstueck f, ax_gebaeude g "; 125 126 // Entschluesseln 127 $sqlg.="LEFT JOIN v_geb_bauweise h ON g.bauweise=h.bauweise_id 128 LEFT JOIN v_geb_funktion u ON g.gebaeudefunktion=u.wert 129 LEFT JOIN v_geb_zustand z ON g.zustand=z.wert 98 $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, h.v AS bauweise_beschreibung, u.v AS bezeichner, g.zustand, z.v AS bzustand, 99 round(st_area(g.wkb_geometry)::numeric,2) AS gebflae, "; // GEB-Flaeche komplett auch die Fl. ausserhalb des FS 100 $sqlg.="round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, "; // wie viel vom GEB liegt im FS? 101 $sqlg.="st_within(g.wkb_geometry,f.wkb_geometry) as drin "; // liegt das GEB komplett im FS? 102 $sqlg.="FROM ax_flurstueck f, ax_gebaeude g 103 LEFT JOIN alkis_wertearten h ON cast(g.bauweise AS character varying) = h.k AND h.element='ax_gebaeude' and h.bezeichnung='bauweise' 104 LEFT JOIN alkis_wertearten u ON cast(g.gebaeudefunktion AS character varying) = u.k AND u.element='ax_gebaeude' and u.bezeichnung='gebaeudefunktion' 105 LEFT JOIN alkis_wertearten z ON cast(g.zustand AS character varying) = z.k AND z.element='ax_gebaeude' and z.bezeichnung='zustand' 130 106 WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; // ID des akt. FS 131 107 132 // "within" -> nur Geb., die komplett im FS liegen 133 // "intersects" -> auch teil-ueberlappende Flst. 108 // "within" -> nur Geb., die komplett im FS liegen. "intersects" -> auch teil-ueberlappende Flst. 134 109 $sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true "; 135 110 // RLP: keine Relationen zu NebengebÀuden. Auf Qualifizierung verzichten, sonst werden NebengebÀude nicht angezeigt … … 141 116 $resg=pg_execute("", $v); 142 117 if (!$resg) { 143 echo "\n<p class='err'> Keine Gebäude ermittelt.</p>\n";118 echo "\n<p class='err'>Fehler bei Gebäude-Verschneidung.</p>\n"; 144 119 if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";} 145 120 } … … 148 123 echo "\n<hr>\n<table class='geb'>"; 149 124 // T-Header 150 echo "\n<tr>\n" ;151 echo "\n\t<td class='head' title='ggf. Gebäudename'>Name</td>";152 echo "\n\t<td class='head fla' title='Schnittsfläche'>Fläche</td>";153 echo "\n\t<td class='head' title='Gebäudefläche'> </td>";154 echo "\n\t<td class='head' title='Gebäudefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Gebäudes'>Funktion</td>";155 echo "\n\t<td class='head' title='Bauweise (Schlüssel und Beschreibung)'>Bauweise</td>";156 echo "\n\t<td class='head' title='Zustand (Schlüssel und Beschreibung)'>Zustand</td>";157 echo "\n\t<td class='head nwlink' title='Lagebezeichnung mit Straße und Hausnummer'>Lage</td>";158 echo "\n\t<td class='head nwlink' title='Link zu den kompletten Hausdaten'>Haus</td>";159 echo"\n</tr>";125 echo "\n<tr>\n" 126 ."\n\t<td class='head' title='ggf. Gebäudename'>Name</td>" 127 ."\n\t<td class='heads fla' title='Schnittsfläche'><img src='ico/sortd.png' width='10' height='10' alt='' title='Sortierung (absteigend)'>Fläche</td>" 128 ."\n\t<td class='head' title='Gebäudefläche'> </td>" 129 ."\n\t<td class='head' title='Gebäudefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Gebäudes'>Funktion</td>" 130 ."\n\t<td class='head' title='Bauweise ist die Beschreibung der Art der Bauweise'>Bauweise</td>" 131 ."\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>" 132 ."\n\t<td class='head nwlink' title='Lagebezeichnung mit Straße und Hausnummer'>Lage</td>" 133 ."\n\t<td class='head nwlink' title='Link zu den kompletten Hausdaten'>Haus</td>" 134 ."\n</tr>"; 160 135 // T-Body 161 136 while($rowg = pg_fetch_array($resg)) { 162 137 $gebnr = $gebnr + 1; 163 // ++ ToDo: Die Zeilen abwechselnd verschieden einfÀrben, Angrenzend anders einfÀrben164 138 $ggml=$rowg["gml_id"]; 165 $gebflsum = $gebflsum + $rowg["schnittflae"]; 166 # $skey=$rowg["lage"]; // Strassenschluessel 139 $gebflsum=$gebflsum + $rowg["schnittflae"]; 167 140 $gnam=$rowg["name"]; 168 141 $gzus=$rowg["zustand"]; 169 142 $gzustand=$rowg["bzustand"]; 170 143 171 echo "\n<tr>"; 172 echo "\n\t<td>"; 173 if ($gnam != "") {echo "<span title='Gebäudename'>".$gnam."</span><br>";} 144 // 3 FÀlle unterscheiden: 145 if ($rowg["drin"] == "t") { // GebÀude liegt komplett in FlurstÃŒck 146 $f1=$rowg["schnittflae"]." m²"; 147 $f2=" "; 148 $gstyle="gin"; // siehe .css 149 } else { 150 if ($rowg["schnittflae"] == "0.00") { // GebÀude angrenzend (Grenzbebauung) 151 $gstyle="gan"; 152 $f1=" "; 153 $f2="angrenzend"; 154 } else { // Teile des GebÀudes stehen auf dem FlurstÃŒck 155 $gstyle="gtl"; 156 $f1=$rowg["schnittflae"]." m²"; 157 $f2="(von ".$rowg["gebflae"]." m²)"; 158 } 159 } 160 161 echo "\n<tr>" 162 ."\n\t<td class='".$gstyle."'>"; 163 if ($gnam != "") {echo "<span title='Gebäudename'>".$gnam."</span><br>";} 174 164 echo "\n\t</td>"; 175 165 176 if ($rowg["drin"] == "t") { // 3 komplett enthalten 177 echo "\n\t<td class='fla'>".$rowg["schnittflae"]." m²</td>"; 178 echo "\n\t<td> </td>"; 179 } else { 180 if ($rowg["schnittflae"] == "0.00") { // angrenzend 181 echo "\n\t<td class='fla'> </td>"; 182 echo "\n\t<td>angrenzend</td>"; 183 } else { // Teile enthalten 184 echo "\n\t<td class='fla'>".$rowg["schnittflae"]." m²</td>"; 185 echo "\n\t<td>(von ".$rowg["gebflae"]." m²)</td>"; 186 } 187 } 188 echo "\n\t<td>"; 166 echo "\n\t<td class='fla'>".$f1."</td>" 167 ."\n\t<td class='".$gstyle."'>".$f2."</td>"; // FlÀchenangaben 168 169 echo "\n\t<td class='".$gstyle."'>"; 189 170 if ($showkey) {echo "<span class='key'>".$rowg["gebaeudefunktion"]."</span> ";} 190 171 echo $rowg["bezeichner"]."</td>"; 191 172 192 echo "\n\t<td >";173 echo "\n\t<td class='".$gstyle."'>"; 193 174 if ($showkey) {echo "<span class='key'>".$rowg["bauweise"]."</span> ";} 194 175 echo $rowg["bauweise_beschreibung"]." </td>"; 195 176 196 echo "\n\t<td >";177 echo "\n\t<td class='".$gstyle."'>"; 197 178 if ($showkey) {echo "<span class='key'>".$gzus."</span> ";} 198 179 echo $gzustand." </td>"; … … 202 183 203 184 // HAUPTgebÀude Geb >zeigtAuf> lage (mehrere) 204 $sqll ="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer ";205 $sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) ";206 $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";207 $sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ";185 $sqll="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer " 186 ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) " 187 ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 188 ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; 208 189 209 190 // oder NEBENgebÀude Geb >hat> Pseudo 210 $sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer " ;211 $sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat ";212 $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";213 $sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses"191 $sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer " 192 ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat " 193 ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 194 ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses" 214 195 215 196 $sqll.="ORDER BY bezeichnung, hausnummer;"; … … 239 220 if ($showkey) {echo "<span class='key'>(".$skey.")</span> ";} 240 221 echo "\n\t\t<a title='".$lagetitl."' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag."&ltyp=".$ltyp; 241 if ($idanzeige) {echo "&id=j";}242 222 if ($showkey) {echo "&showkey=j";} 243 223 echo "'>".$lagetxt."</a>"; 244 if ($idanzeige) {linkgml($gkz, $gmllag, "Lage", ""); }245 224 echo "<br>"; 246 225 } // Ende Loop Lage m.H. … … 248 227 echo "\n\t</td>"; 249 228 250 echo "\n\t<td class='nwlink noprint'>"; 251 echo "\n\t\t<a title='Daten zum Gebäude-Objekt' href='alkishaus.php?gkz=".$gkz."&gmlid=".$ggml; 252 if ($idanzeige) {echo "&id=j";} 253 if ($showkey) {echo "&showkey=j";} 254 echo "'><img src='ico/Haus.png' width='16' height='16' alt=''></a>"; 255 echo "\n\t</td>"; 256 257 echo "\n</tr>"; 229 echo "\n\t<td class='nwlink noprint'>" 230 ."\n\t\t<a title='Daten zum Gebäude-Objekt' href='alkishaus.php?gkz=".$gkz."&gmlid=".$ggml; 231 if ($showkey) {echo "&showkey=j";} 232 echo "'><img src='ico/Haus.png' width='16' height='16' alt=''></a>" 233 ."\n\t</td>" 234 ."\n</tr>"; 258 235 } 259 236 // Footer 260 237 if ($gebnr == 0) { 261 echo "\n</table>" ;262 echo"<p class='err'><br>Keine Gebäude auf diesem Flurstück.<br> </p>";238 echo "\n</table>" 239 ."<p class='err'><br>Keine Gebäude auf diesem Flurstück.<br> </p>"; 263 240 } else { 264 echo "\n<tr>"; 265 echo "\n\t<td>Summe:</td>"; // 1 266 echo "\n\t<td class='fla sum'>".number_format($gebflsum,0,",",".")." m²</td>"; 267 echo "\n\t<td> </td>"; // 3 268 echo "\n\t<td> </td>"; // 4 269 echo "\n\t<td> </td>"; // 5 270 echo "\n\t<td> </td>"; // 6 271 echo "\n\t<td> </td>"; // 7 272 echo "\n</tr>"; 273 echo "\n</table>"; 241 echo "\n<tr>" 242 ."\n\t<td>Summe:</td>" 243 ."\n\t<td class='fla sum' title='von Gebäuden überbaute Fläche des Flurstücks'>".number_format($gebflsum,0,",",".")." m²</td>" 244 ."\n\t<td colspan='6'> </td>" 245 ."\n</tr>" 246 ."\n</table>"; 274 247 $unbebaut = number_format(($flstflaeche - $gebflsum),0,",",".") . " m²"; 275 echo "\n<p> Flurstücksfläche abzüglich Gebäudefläche: <b>".$unbebaut."</b></p><br>";248 echo "\n<p><br>Flurstücksfläche abzüglich Gebäudefläche: <b>".$unbebaut."</b></p><br>"; 276 249 } 277 250 pg_free_result($resg); 278 251 ?> 279 252 280 <form action=''> 281 <div class='buttonbereich noprint'> 282 <hr> 283 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 284 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 285 </div> 286 </form> 253 <div class='buttonbereich noprint'> 254 <hr> 255 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 256 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 257 </div> 287 258 288 259 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
Note: See TracChangeset
for help on using the changeset viewer.