Changeset 377 for trunk/info/info/alkis/alkisgebaeudenw.php
- Timestamp:
- 12/05/16 10:57:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkis/alkisgebaeudenw.php
r376 r377 4 4 5 5 Version: 6 2016-02-24 Version fuer norGIS-ALKIS-Import 7 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 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 8 15 */ 9 16 session_start(); … … 13 20 if ($auth == "mapbender") {require_once($mapbender);} 14 21 include("alkisfkt.php"); 22 if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;} 15 23 $keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 16 24 if ($keys == "j") {$showkey=true;} else {$showkey=false;} 17 25 ?> 18 <! doctype html>19 <html lang="de">26 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 27 <html> 20 28 <head> 21 <meta charset="utf-8"> 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"> 22 34 <title>ALKIS Gebäudenachweis</title> 23 35 <link rel="stylesheet" type="text/css" href="alkisauszug.css"> … … 29 41 <body> 30 42 <?php 31 $con = pg_connect( $dbconn." options='--application_name=ALKIS-Auskunft_alkisgebaeudenw.php'");43 $con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass); 32 44 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n"; 33 45 … … 64 76 65 77 // Kennzeichen in Rahmen 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'>";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'>"; 74 86 if ($showkey) {echo "<span class='key'>".$gmkgnr."</span><br>";} 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>"; 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>"; 89 103 // Ende Seitenkopf 90 104 … … 92 106 pg_free_result($resf); 93 107 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>";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>"; 96 110 97 111 // G e b a e u d e 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' 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 106 130 WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; // ID des akt. FS 107 131 108 // "within" -> nur Geb., die komplett im FS liegen. "intersects" -> auch teil-ueberlappende Flst. 132 // "within" -> nur Geb., die komplett im FS liegen 133 // "intersects" -> auch teil-ueberlappende Flst. 109 134 $sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true "; 110 135 // RLP: keine Relationen zu NebengebÀuden. Auf Qualifizierung verzichten, sonst werden NebengebÀude nicht angezeigt … … 116 141 $resg=pg_execute("", $v); 117 142 if (!$resg) { 118 echo "\n<p class='err'> Fehler bei Gebäude-Verschneidung.</p>\n";143 echo "\n<p class='err'>Keine Gebäude ermittelt.</p>\n"; 119 144 if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";} 120 145 } … … 123 148 echo "\n<hr>\n<table class='geb'>"; 124 149 // T-Header 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>";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>"; 135 160 // T-Body 136 161 while($rowg = pg_fetch_array($resg)) { 137 162 $gebnr = $gebnr + 1; 163 // ++ ToDo: Die Zeilen abwechselnd verschieden einfÀrben, Angrenzend anders einfÀrben 138 164 $ggml=$rowg["gml_id"]; 139 $gebflsum=$gebflsum + $rowg["schnittflae"]; 165 $gebflsum = $gebflsum + $rowg["schnittflae"]; 166 # $skey=$rowg["lage"]; // Strassenschluessel 140 167 $gnam=$rowg["name"]; 141 168 $gzus=$rowg["zustand"]; 142 169 $gzustand=$rowg["bzustand"]; 143 170 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²)"; 171 echo "\n<tr>"; 172 echo "\n\t<td>"; 173 if ($gnam != "") {echo "<span title='Gebäudename'>".$gnam."</span><br>";} 174 echo "\n\t</td>"; 175 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 } 158 187 } 159 } 160 161 echo "\n<tr>" 162 ."\n\t<td class='".$gstyle."'>"; 163 if ($gnam != "") {echo "<span title='Gebäudename'>".$gnam."</span><br>";} 164 echo "\n\t</td>"; 165 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."'>"; 188 echo "\n\t<td>"; 170 189 if ($showkey) {echo "<span class='key'>".$rowg["gebaeudefunktion"]."</span> ";} 171 190 echo $rowg["bezeichner"]."</td>"; 172 191 173 echo "\n\t<td class='".$gstyle."'>";192 echo "\n\t<td>"; 174 193 if ($showkey) {echo "<span class='key'>".$rowg["bauweise"]."</span> ";} 175 194 echo $rowg["bauweise_beschreibung"]." </td>"; 176 195 177 echo "\n\t<td class='".$gstyle."'>";196 echo "\n\t<td>"; 178 197 if ($showkey) {echo "<span class='key'>".$gzus."</span> ";} 179 198 echo $gzustand." </td>"; … … 183 202 184 203 // HAUPTgebÀude Geb >zeigtAuf> lage (mehrere) 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 ";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 "; 189 208 190 209 // oder NEBENgebÀude Geb >hat> Pseudo 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"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" 195 214 196 215 $sqll.="ORDER BY bezeichnung, hausnummer;"; … … 220 239 if ($showkey) {echo "<span class='key'>(".$skey.")</span> ";} 221 240 echo "\n\t\t<a title='".$lagetitl."' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag."&ltyp=".$ltyp; 241 if ($idanzeige) {echo "&id=j";} 222 242 if ($showkey) {echo "&showkey=j";} 223 243 echo "'>".$lagetxt."</a>"; 244 if ($idanzeige) {linkgml($gkz, $gmllag, "Lage", ""); } 224 245 echo "<br>"; 225 246 } // Ende Loop Lage m.H. … … 227 248 echo "\n\t</td>"; 228 249 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>"; 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>"; 235 258 } 236 259 // Footer 237 260 if ($gebnr == 0) { 238 echo "\n</table>" 239 ."<p class='err'><br>Keine Gebäude auf diesem Flurstück.<br> </p>";261 echo "\n</table>"; 262 echo "<p class='err'><br>Keine Gebäude auf diesem Flurstück.<br> </p>"; 240 263 } else { 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>"; 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>"; 247 274 $unbebaut = number_format(($flstflaeche - $gebflsum),0,",",".") . " m²"; 248 echo "\n<p> <br>Flurstücksfläche abzüglich Gebäudefläche: <b>".$unbebaut."</b></p><br>";275 echo "\n<p>Flurstücksfläche abzüglich Gebäudefläche: <b>".$unbebaut."</b></p><br>"; 249 276 } 250 277 pg_free_result($resg); 251 278 ?> 252 279 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> 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> 258 287 259 288 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
Note: See TracChangeset
for help on using the changeset viewer.