Changeset 132 for trunk/var/www/info/alkis/alkisgebaeudenw.php
- Timestamp:
- 11/30/11 14:10:13 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/var/www/info/alkis/alkisgebaeudenw.php
r131 r132 4 4 5 5 Version: 6 07.02.2011 *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen 7 25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden 8 26.07.2011 debug, SQL nur im Testmodus anzeigen 9 22.11.2011 Feld ax_gebaeude.description ist entfallen 10 11 ToDo: lfd.Nr. der NebengebÀude alternativ zur Hausnummer anzeigen. 12 Dazu aber Join auf ax_lagebezeichnungmitpseudonummer notwendig. 6 22.11.2011 Feld ax_gebaeude.description ist entfallen, neue Spalte Zustand 7 30.11.2011 8 Fehlerkorrektur Gebaeude mit mehreren Adressen nicht mehrfach 9 Sonderfall lage aus PostNAS 05 entfernt, import_request_variables 13 10 */ 14 ini_set('error_reporting', 'E_ALL & ~ E_NOTICE');15 11 session_start(); 16 $gkz=urldecode($_REQUEST["gkz"]);12 import_request_variables("G"); 17 13 require_once("alkis_conf_location.php"); 18 if ($auth == "mapbender") { 19 // Bindung an Mapbender-Authentifizierung 20 require_once($mapbender); 21 } 14 if ($auth == "mapbender") {require_once($mapbender);} 22 15 include("alkisfkt.php"); 16 if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;} 17 $keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 18 if ($keys == "j") {$showkey=true;} else {$showkey=false;} 23 19 ?> 24 20 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> … … 39 35 <body> 40 36 <?php 41 $gmlid=urldecode($_REQUEST["gmlid"]);42 $id = isset($_GET["id"]) ? $_GET["id"] : "n";43 if ($id == "j") {44 $idanzeige=true;45 } else {46 $idanzeige=false;47 }48 $keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";49 if ($keys == "j") {50 $showkey=true;51 } else {52 $showkey=false;53 }54 37 $con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass); 55 38 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n"; … … 98 81 echo "\n\t<tr>"; 99 82 echo "\n\t\t<td title='Gemarkung'>"; 100 if ($showkey) { 101 echo "<span class='key'>".$gmkgnr."</span><br>"; 102 } 83 if ($showkey) {echo "<span class='key'>".$gmkgnr."</span><br>";} 103 84 echo $gemkname." </td>"; 104 85 echo "\n\t\t<td title='Flurnummer'>".$flurnummer."</td>"; … … 115 96 echo "&eig=n' title='Flurstücksnachweis'>Flurstück <img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''></a>"; 116 97 echo "\n\t</p>"; 117 118 98 if ($idanzeige) {linkgml($gkz, $gmlid, "Flurstück"); } 119 99 echo "\n\t</td>\n</tr>\n</table>"; … … 126 106 127 107 // G e b a e u d e 128 // $sqlg ="SELECT g.gml_id, g.name, g.description, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, "; 129 $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, "; 130 $sqlg.="h.bauweise_beschreibung, u.bezeichner, v.beziehungsart, v.beziehung_zu, s.lage, s.bezeichnung, l.hausnummer, "; 108 $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, "; 109 $sqlg.="h.bauweise_beschreibung, u.bezeichner, g.zustand, z.bezeichner AS bzustand, "; 131 110 132 111 // Gebaeudeflaeche komplett auch ausserhalb des FS … … 145 124 $sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id "; 146 125 $sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert "; 147 148 // Weitere SchlÃŒsseltabellen (ab 11.2011) 149 // ++ ax_gebaeude_zustand 150 // ++ ax_gebaeude_weiterefunktion 151 // ++ ax_gebaeude_dachform 152 153 // Beziehungen verfolgen (holt die Hausnummer Hauptgeb.) 154 $sqlg.="LEFT JOIN alkis_beziehungen v ON g.gml_id=v.beziehung_von "; 155 $sqlg.="LEFT JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; 156 // StraÃen-Name 157 $sqlg.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde "; 158 if ($dbvers=="05") { 159 $sqlg.="AND to_char(l.lage, 'FM00000') = lpad(s.lage,5,'0') "; 160 } else { // ab PostNAS 06. 161 $sqlg.="AND l.lage=s.lage "; 162 } 163 // Alternativ zur Hauptgebaeude-Hausnummer auch die Nebengebaeude-Pseudo-Nummern suchen? 164 // $sqlg.="LEFT JOIN ax_lagebezeichnungmitpseudonummer p ON ... "; 165 // oder in Loop: Wenn HsNr leer ist, eine kurze Abfrage auf NebengebÀude-Nr. 166 126 $sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand = z.wert "; 167 127 $sqlg.="WHERE f.gml_id= $1 "; // ID des akt. FS 168 128 … … 185 145 $gebnr=0; 186 146 echo "\n<hr>\n<table class='geb'>"; 187 // Header147 // T-Header 188 148 echo "\n<tr>\n"; 189 //echo "\n\t<td class='head' title='laufende Nummer'>Lfd. Nr.</td>"; 190 echo "\n\t<td class='head' title='ggf. Hausnummer und/oder Gebäudename'>Nr/Name</td>"; 149 echo "\n\t<td class='head' title='ggf. Gebäudename'>Name</td>"; 191 150 echo "\n\t<td class='head fla' title='Schnittsfläche'>Fläche</td>"; 192 151 echo "\n\t<td class='head' title='Gebäudefläche'> </td>"; 193 echo "\n\t<td class='head' title='Anzahl oberirdischer Geschosse'>Gesch.</td>";194 152 echo "\n\t<td class='head' title='Gebäudefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Gebäudes'>Funktion</td>"; 195 153 echo "\n\t<td class='head' title='Bauweise (Schlüssel und Beschreibung)'>Bauweise</td>"; 196 echo "\n\t<td class='head nwlink' title='Typ von .. und Link zur Lagebezeichnung'>Lage</td>"; 154 echo "\n\t<td class='head' title='Zustand (Schlüssel und Beschreibung)'>Zustand</td>"; 155 echo "\n\t<td class='head nwlink' title='Lagebezeichnung mit Straße und Hausnummer'>Lage</td>"; 156 echo "\n\t<td class='head nwlink' title='Link zu den kompletten Hausdaten'>Haus</td>"; 197 157 echo "\n</tr>"; 198 // Body158 // T-Body 199 159 while($rowg = pg_fetch_array($resg)) { 200 160 $gebnr = $gebnr + 1; 161 // ++ ToDo: 162 // Die Zeilen abwechselnd verschieden einfÀrben 163 // Angrenzend anders einfÀrben 164 165 $ggml=$rowg["gml_id"]; 201 166 $gebflsum = $gebflsum + $rowg["schnittflae"]; 202 167 $skey=$rowg["lage"]; // Strassenschluessel 203 168 $gnam=$rowg["name"]; 169 $gzus=$rowg["zustand"]; 170 $gzustand=$rowg["bzustand"]; 171 204 172 echo "\n<tr>"; 205 if ($skey.$gnam != "") { // Hausnummer und Strassenname oder Gebaeudename 206 echo "\n\t<td title='Hauptgebäude'>"; 207 if ($showkey) { 208 echo "<span class='key'>(".$skey.")</span> "; 209 } 210 echo htmlentities($rowg["bezeichnung"], ENT_QUOTES, "UTF-8")." "; // Str.-Name 211 echo $rowg["hausnummer"]." ".$gnam; 212 if ($idanzeige) { 213 linkgml($gkz, $rowg["gml_id"], "Gebäude"); 214 } 215 echo "</td>"; 216 } else { 217 echo "\n\t<td title='Nebengebäude'>"; 218 echo "(Nebengebäude)"; // +++ nur vorlaeufiger Platzhalter! Hier kommt lfd-Nr hin. 219 // +++ SQL-Abfrage auf ax_LagebezeichnungMitPseudonummer 220 echo "</td>"; 221 } 173 echo "\n\t<td>"; 174 if ($gnam != "") {echo "<span title='Gebäudename'>".$gnam."</span><br>";} 175 echo "\n\t</td>"; 222 176 223 177 if ($rowg["drin"] == "t") { // 3 komplett enthalten … … 233 187 } 234 188 } 235 236 echo "\n\t<td>".$rowg["aog"]." </td>"; 237 238 echo "\n\t<td>"; 239 if ($showkey) { 240 echo "<span class='key'>".$rowg["gebaeudefunktion"]."</span> "; 189 echo "\n\t<td>"; 190 if ($showkey) {echo "<span class='key'>".$rowg["gebaeudefunktion"]."</span> ";} 191 echo $rowg["bezeichner"]."</td>"; 192 193 echo "\n\t<td>"; 194 if ($showkey) {echo "<span class='key'>".$rowg["bauweise"]."</span> ";} 195 echo $rowg["bauweise_beschreibung"]." </td>"; 196 197 echo "\n\t<td>"; 198 if ($showkey) {echo "<span class='key'>".$gzus."</span> ";} 199 echo $gzustand." </td>"; 200 201 echo "\n\t<td class='nwlink noprint'>"; 202 203 // 0 bis N Lagebezeichnungen mit Haus- oder Pseudo-Nummer, alle in ein TD zu EINEM GebÀude 204 // HAUPTgebÀude 205 $sqll ="SELECT 'm' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer "; 206 $sqll.="FROM alkis_beziehungen v "; 207 $sqll.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; 208 $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 209 $sqll.="WHERE v.beziehungsart = 'zeigtAuf' AND v.beziehung_von = $1 "; 210 $sqll.="UNION "; 211 // oder NEBENgebÀude 212 $sqll.="SELECT 'p' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer "; 213 $sqll.="FROM alkis_beziehungen v "; 214 $sqll.="JOIN ax_lagebezeichnungmitpseudonummer l ON v.beziehung_zu=l.gml_id "; 215 $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 216 $sqll.="WHERE v.beziehungsart = 'hat' AND v.beziehung_von = $1 "; // ID des Hauses" 217 218 $sqll.="ORDER BY bezeichnung, hausnummer "; 219 220 $v = array($ggml); 221 $resl = pg_prepare("", $sqll); 222 $resl = pg_execute("", $v); 223 if (!$resl) { 224 echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>\n"; 225 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqll."<br>$1 = gml_id = '".$gmlid."'</p>";} 241 226 } 242 echo $rowg["bezeichner"]."</td>"; 243 244 echo "\n\t<td>"; 245 if ($showkey) { 246 echo "<span class='key'>".$rowg["bauweise"]."</span> "; 247 } 248 echo $rowg["bauweise_beschreibung"]." </td>"; 227 while($rowl = pg_fetch_array($resl)) { // LOOP: Lagezeilen 228 $ltyp=$rowl["ltyp"]; // Lagezeilen-Typ 229 $skey=$rowl["lage"]; // Str.-Schluessel 230 $snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); // -Name 231 $hsnr=$rowl["hausnummer"]; 232 $hlfd=$rowl["laufendenummer"]; 233 $gmllag=$rowl["beziehung_zu"]; 234 if ($ltyp == "p") { 235 $lagetitl="NebengebÀude - Pseudonummer"; 236 $lagetxt="Nebengebäude Nr. ".$hlfd; 237 } else { 238 $lagetitl="HauptgabÀude - Hausnummer"; 239 $lagetxt=$snam." ".$hsnr; 240 } 241 echo "\n\t\t<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> "; 242 if ($showkey) {echo "<span class='key'>(".$skey.")</span> ";} 243 echo "\n\t\t<a title='".$lagetitl."' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag."&ltyp=".$ltyp; 244 if ($idanzeige) {echo "&id=j";} 245 if ($showkey) {echo "&showkey=j";} 246 echo "'>".$lagetxt."</a>"; 247 if ($idanzeige) {linkgml($gkz, $gmllag, "Lage"); } 248 echo "<br>"; 249 } // Ende Loop Lagezeilen m.H. 250 251 echo "\n\t</td>"; 249 252 250 253 echo "\n\t<td class='nwlink noprint'>"; 251 $bezieh=$rowg["beziehungsart"]; 252 if (!$bezieh == "" ) { 253 $gmllag=$rowg["beziehung_zu"]; 254 switch ($bezieh) { 255 case "hat": // *P*seudonummer 256 echo "\n\t\t<a title='Lagebezeichnung' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag; 257 if ($idanzeige) {echo "&id=j";} 258 echo "&ltyp=p'>lfd-Nr <img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>"; 259 break; 260 case "zeigtAuf": // *M*it HausNr 261 echo "\n\t\t<a title='Lagebezeichnung' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag; 262 if ($idanzeige) {echo "&id=j";} 263 echo "&ltyp=m'>Haus-Nr <img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>"; 264 break; 265 default: 266 echo "<p>unbekannte Beziehungsart ".$bezieh."</p>"; 267 break; 268 } 269 } 254 echo "\n\t\t<a title='Daten zum Gebäude-Objekt' href='alkishaus.php?gkz=".$gkz."&gmlid=".$ggml; 255 if ($idanzeige) {echo "&id=j";} 256 if ($showkey) {echo "&showkey=j";} 257 echo "'><img src='ico/Haus.ico' width='16' height='16' alt=''></a>"; 270 258 echo "\n\t</td>"; 259 271 260 echo "\n</tr>"; 272 261 }
Note: See TracChangeset
for help on using the changeset viewer.