source: trunk/info/info/alkisn/alkislage.php @ 425

Revision 425, 19.3 KB checked in by frank.jaeger, 2 years ago (diff)

Web-GIS-Auskunft und Mapbender2-Navigation: neue Konfigurations-Parameter und verbessertes Grundbuch-Modul

Line 
1<?php
2/*      alkislage.php
3
4        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
5        Kann die 3 Arten von Lagebezeichnung anzeigen und verbundene Objekte verlinken
6
7        Version:
8        2016-02-24 Version fÃŒr norGIS-ALKIS-Import
9        ....
10        2020-02-20 Authentifizierung ausgelagert in Function darf_ich()
11        2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF']
12        2020-12-15 Input-Validation und Strict Comparisation (===)
13        2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche)
14               Gemarkung und Flur bei Gruppenwechsel FETT anzeigen
15
16        ToDo:
17        - Balken-Kennzeichen kompatibel machen mit der Eingabe der Navigation fÃŒr Adresse
18        - das Modul "alkisgebaeudenw" (alle Geb. auf einem FS) verschneidet die FlÀchen und findet damit auch
19        Grenz-Uberbauungen und angrenzende GebÀude. Diese fehlen hier, weil nur VerknÃŒpfungen verarbeitet werden.
20        Mit FlÀchen-Verschneidung auch weitere FS anzeigen?
21*/
22ini_set("session.cookie_httponly", 1);
23session_start();
24$showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren
25$cntget = extract($_GET); // Parameter in Variable umwandeln
26
27// strikte Validierung aller Parameter
28if (isset($gmlid)) {
29        if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");}
30} else {
31        die("Fehlender Parameter");
32}
33if (isset($gkz)) {
34        if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");}
35} else {
36        die("Fehlender Parameter");
37}
38if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");}
39if ($showkey === "j") {$showkey=true;} else {$showkey=false;}
40if (!preg_match('#^[m|p|o]{1}$#', $ltyp)) {die ("Eingabefehler ltyp");}
41if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");}
42
43include "alkis_conf_location.php";
44include "alkisfkt.php";
45
46switch ($ltyp) {
47        case "m": // "Mit HsNr" = Hauptgebaeude
48                $tnam = "ax_lagebezeichnungmithausnummer"; break;
49        case "p": // "mit PseudoNr" = Nebengebaeude
50                $tnam = "ax_lagebezeichnungmitpseudonummer";    break;
51        case "o": //"Ohne HsNr" = Gewanne oder Strasse
52                $tnam = "ax_lagebezeichnungohnehausnummer"; break;
53        default:
54                $ltyp = "m";
55                $tnam = "ax_lagebezeichnungmithausnummer"; break;
56}
57echo <<<END
58<!doctype html>
59<html lang="de">
60<head>
61        <meta charset="utf-8">
62        <meta name="viewport" content="width=device-width, initial-scale=1.0">
63        <title>ALKIS Lagebezeichnung</title>
64        <link rel="stylesheet" type="text/css" href="alkisauszug.css">
65        <link rel="shortcut icon" type="image/x-icon" href="ico/Lage_mit_Haus.ico">
66</head>
67<body>
68END;
69
70$erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); }
71$dbg=$debug; // CONF in Arbeits-Variable
72
73// Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten.
74// Wirkt temporÀr und wird nicht in Links weiter gereicht.
75if ($nodebug === "j") {$dbg=0;}
76
77$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkislage.php'");
78if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>";
79
80// L a g e b e z e i c h n u n g
81$sql ="SELECT s.gml_id AS strgml, s.bezeichnung AS snam, b.bezeichnung AS bnam, r.bezeichnung AS rnam, k.bezeichnung AS knam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, ";
82switch ($ltyp) {
83        case "m": // "Mit HsNr"
84                $sql.="l.hausnummer ";
85        break;
86        case "p": // "mit PseudoNr"
87                $sql.="l.pseudonummer, l.laufendenummer ";
88        break;
89        case "o": //"Ohne HsNr"
90                $sql.="l.unverschluesselt ";
91        break;
92}
93// "Left" weil: Bei sub-Typ "Gewanne" von Typ "o" sind keine SchlÃŒsselfelder gefÃŒllt!
94$sql.="FROM ".$tnam." l
95LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde ".UnqKatAmt("l","g")
96."LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis ".UnqKatAmt("l","k")
97."LEFT JOIN ax_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk ".UnqKatAmt("l","r")
98."LEFT JOIN ax_bundesland b ON l.land=b.land ".UnqKatAmt("l","b")
99."LEFT JOIN ax_lagebezeichnungkatalogeintrag s
100ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage
101WHERE l.gml_id= $1 AND l.endet IS NULL AND g.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL AND b.endet IS NULL AND s.endet IS NULL;";
102
103$v = array($gmlid);
104$res = pg_prepare("", $sql);
105$res = pg_execute("", $v);
106if (!$res) {
107        echo "\n<p class='err'>Fehler bei Lagebezeichnung.</p>";
108        if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
109}
110if ($dbg > 0) {
111        $zeianz=pg_num_rows($res);
112        if ($zeianz > 1){
113                echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Lage-Objekt!</p>";
114                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";}
115        }
116}
117if ($row = pg_fetch_assoc($res)) {
118        $strgml=$row["strgml"]; // gml_id des Katalogeintrag Straße
119        $land =$row["land"];
120        $regbez=$row["regierungsbezirk"];
121        $kreis=$row["kreis"];
122        $knam=$row["knam"];
123        $rnam=$row["rnam"];
124        $bnam=$row["bnam"];
125        $gem=$row["gemeinde"];
126        $gnam=$row["gnam"];
127        $lage=$row["lage"]; // Strassenschluessel
128        $snam=$row["snam"]; //Strassennamen
129//      $kennz=$land."-".$regbez."-".$kreis. ..
130        $kennz=$gem."-".$lage."-"; // ToDo: Kompatibel machen als Eingabe in Navigation/Adresse
131
132        switch ($ltyp) {
133                case "m": // "Mit HsNr"
134                        $hsnr=$row["hausnummer"];
135                        $kennz.=$hsnr;
136                        $untertitel="Hauptgeb&auml;ude mit Hausnummer";
137                        echo "\n<p class='balken lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz."&nbsp;</p>"; // Balken
138                        $osub="";
139                break;
140                case "p": // "mit PseudoNr"
141                        $pseu=$row["pseudonummer"];
142                        $lfd=$row["laufendenummer"];
143                        $kennz.=$pseu."-".$lfd;
144                        $untertitel="NebengebÀude mit laufender Nummer (Lagebezeichnung mit Pseudonummer)";
145                        echo "\n<p class='balken lage'>ALKIS Lagebezeichnung NebengebÀude ".$kennz."&nbsp;</p>"; // Balken
146                        $osub="";
147                break;
148                case "o": // "Ohne HsNr"
149                        $unver=$row["unverschluesselt"]; // Gewanne
150                        // 2 Unterarten bzw. Zeilen-Typen in der Tabelle
151                        if ($lage == "") {
152                                $osub="g"; // Sub-Typ Gewanne
153                                $kennz=" - ".$unver;
154                                $untertitel="Gewanne (unverschl&uuml;sselte Lage)";
155                                echo "\n<p class='balken lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>"; // Balken
156                        } else {
157                                $osub="s"; // Sub-Typ Strasse (ohne HsNr)
158                                $kennz.=$unver;
159                                $untertitel="Stra&szlig;e ohne Hausnummer";
160                                echo "\n<p class='balken lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>"; // Balken
161                        }
162                break;
163        }
164} else {
165        echo "\n<p class='err'>Fehler! Kein Treffer fuer Lagebezeichnung mit gml_id='".$gmlid."'</p>";
166        if ($dbg > 2) {
167                echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";
168        }
169        echo "\n</body>\n</html>";
170        exit;
171}
172
173echo "\n<h2>Lagebezeichnung</h2>\n<p>Typ: ".$untertitel."</p>";
174echo "\n<table class='outer'>\n<tr>\n\t<td>";   // Tab. Kennz.
175        // ToDo: kleiner, wenn ltyp=0 und die Schluesselfelder leer sind
176        echo "\n\t\t<table class='kennzla' title='Lage'>"
177                ."\n\t\t<tr>";
178                        if ($osub != "g") { // nicht bei Gewanne
179                                echo "\n\t\t\t<td class='head'>Land</td>"
180                                ."\n\t\t\t<td class='head'>Reg.-Bez.</td>"
181                                ."\n\t\t\t<td class='head'>Kreis</td>"
182                                ."\n\t\t\t<td class='head'>Gemeinde</td>"
183                                ."\n\t\t\t<td class='head'>Stra&szlig;e</td>";
184                        }
185                        switch ($ltyp) {
186                                case "m": // "Mit HsNr"
187                                        echo "\n\t\t\t<td class='head'>Haus-Nr</td>";
188                                break;
189                                case "p": // "mit PseudoNr"
190                                        echo "\n\t\t\t<td class='head'>Haus-Nr</td>"
191                                        ."\n\t\t\t<td class='head'>lfd.-Nr</td>";
192                                break;
193                                case "o": //"Ohne HsNr"
194                                        if ($osub === "g") {
195                                                echo "\n\t\t\t<td class='head'>unverschl&uuml;sselte Lage</td>";
196                                        }
197                                break;
198                        }
199                echo "\n\t\t</tr>\n\t\t<tr>";
200                        if ($osub != "g") { // nicht bei Gewanne
201
202                                echo "\n\t\t\t<td title='Bundesland'>";
203                                if ($showkey) {echo "<span class='key'>".$land."</span><br>";}
204                                echo $bnam."&nbsp;</td>";
205
206                                echo "\n\t\t\t<td title='Regierungsbezirk'>";
207                                if ($showkey) {echo "<span class='key'>".$regbez."</span><br>";}
208                                echo $rnam."&nbsp;</td>";
209
210                                echo "\n\t\t\t<td title='Kreis'>";
211                                if ($showkey and $osub != "g") {echo "<span class='key'>".$kreis."</span><br>";}
212                                echo $knam."&nbsp;</td>";
213
214                                echo "\n\t\t\t<td title='Gemeinde'>";
215                                if ($showkey and $osub != "g") {echo "<span class='key'>".$gem."</span><br>";}
216                                echo $gnam."&nbsp;</td>";
217
218                                echo "\n\t\t\t<td title='Stra&szlig;e'>";
219                                if ($showkey and $osub != "g") {echo "<span class='key'>".$lage."</span><br>";}
220                                if ($ltyp === "o") {
221                                        echo "<span class='wichtig'>".$snam."</span>";
222                                } else {
223                                        echo $snam;
224                                }       
225                                echo "&nbsp;</td>";
226                        }
227
228                        switch ($ltyp) {
229                                case "m":
230                                        echo "\n\t\t\t<td title='Hausnummer und Zusatz'><span class='wichtig'>".$hsnr."</span></td>";
231                                break;
232                                case "p":
233                                        echo "\n\t\t\t<td title='Pseudonummer - Nebengeb&auml;ude zu dieser Hausnummer'>".$pseu."</td>"
234                                        ."\n\t\t\t<td title='Laufende Nummer Nebengeb&auml;ude'><span class='wichtig'>".$lfd."</span></td>";
235                                break;
236                                case "o":
237                                        if ($osub === "g") {
238                                                echo "\n\t\t\t<td title='Gewanne'><span class='wichtig'>".$unver."</span></td>";
239                                        }
240                                break;
241                        }
242                echo "\n\t\t</tr>"
243        ."\n\t\t</table>";
244
245        echo "\n\t</td>\n\t<td>";
246
247        // Kopf Rechts: weitere Daten?
248        if ($osub != "g") { // Link zu Strasse
249                echo "\n\t\t<p class='nwlink noprint'>"
250                        ."\n\t\t\t<a href='alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$strgml;
251                        if ($showkey) {echo "&amp;showkey=j";}
252                        echo "' title='Stra&szlig;e'>Stra&szlig;e <img src='ico/Strassen.png' width='16' height='16' alt=''></a>"
253                ."\n\t\t</p>";
254        }
255
256echo "\n\t</td>\n</tr>\n</table>";
257// Ende Seitenkopf
258
259// F L U R S T U E C K E
260// ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer
261// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
262// ++ auch FlÀchenverschneidung?
263if ($ltyp != "p") { // Pseudonummer linkt nur GebÀude
264        echo "\n\n<a id='fs'></a>\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>"
265        ."\n<p>mit dieser Lagebezeichnung.</p>";
266        switch ($ltyp) {
267                case "m": $bezart="weistauf"; break;
268                case "o": $bezart="zeigtauf"; break;
269        }
270
271        $sql ="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche
272        FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g")
273        ."WHERE $1 = ANY(f.".$bezart.") AND f.endet IS NULL AND g.endet IS NULL
274        ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
275
276        $v = array($gmlid);
277        $resf = pg_prepare("", $sql);
278        $resf = pg_execute("", $v);
279        if (!$resf) {
280                echo "\n<p class='err'>Fehler bei Flurst&uuml;ck.</p>";
281                if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}     
282        }
283        echo "\n<table class='fs'>"
284        ."\n<tr>"
285                ."\n\t<td class='heads'>Gemarkung<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
286                ."\n\t<td class='heads'>Flur<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
287                ."\n\t<td class='heads fsnr' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Flurst.</td>"
288                ."\n\t<td class='head fla'>Fl&auml;che</td>"
289                ."\n\t<td class='head nwlink noprint' title='Verlinkung zu anderen Nachweis-Arten und verbundenen Objekten'>weitere Auskunft</td>"
290        ."\n</tr>";
291        $j=0;
292        $zpaar=false;
293        $gwgmkg=""; // Gruppenwechsel
294        $gwflur="";
295        while($rowf = pg_fetch_assoc($resf)) {
296                $gmkg=$rowf["bezeichnung"];
297                $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
298                $fskenn=$rowf["zaehler"]; // Bruchnummer
299                if ($rowf["nenner"] != "") {$fskenn.="/".$rowf["nenner"];}
300                $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
301
302                if ($zpaar) {$trclass='paa';} else {$trclass='unp';}
303                $zpaar=!$zpaar;
304
305                echo "\n<tr class='".$trclass."'>"
306                        ."\n\t<td>";
307                        if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";}
308                        if ($gwgmkg != $gmkg) {
309                                echo "<b>".$gmkg."</b></td>";
310                                $gwgmkg=$gmkg;
311                                $gwflur="";
312                        } else {
313                                echo $gmkg."</td>";
314                        }
315                        if ($gwflur != $flur) {
316                                echo "\n\t<td><b>".$flur."</b></td>";
317                                $gwflur=$flur;
318                        } else {
319                                echo "\n\t<td>".$flur."</td>";
320                        }
321                        echo "\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span></td>"
322                        ."\n\t<td class='fla'>".$flae."</td>"
323                        ."\n\t<td>\n\t\t<p class='nwlink noprint'>"
324                                ."\n\t\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
325                                if ($showkey) {echo "&amp;showkey=j";}
326                                echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>"
327                        ."\n\t\t</p>\n\t</td>"
328                ."\n</tr>";
329                $j++;
330        }
331        echo "\n</table>";
332        if ($j > 6) {echo "<p class='cnt'>".$j." Flurst&uuml;cke</p>";}
333}
334
335// L A G E
336// andere Lage mit gleicher Hausnummer suchen
337if ($ltyp != "o") { // nicht bei Gewanne (Ohne HsNr)
338        echo "\n\n<a id='lage'></a>\n<h3><img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> Lage</h3>"
339        ."\n<p>Andere Lagebezeichnungen zur gleichen Hausnummer.</p>";
340        $whereclaus="WHERE land= $1 AND regierungsbezirk= $2 AND kreis= $3 AND gemeinde= $4 AND lage= $5 ";
341
342        $url=selbstverlinkung()."?gkz=".$gkz; // Basis
343        if ($showkey) {$url.="&amp;showkey=j";}
344        $url.="&amp;gmlid=";
345
346        switch ($ltyp) {
347                case "m": // aktuell: Hausnummer gefunden (HauptgebÀude)
348                        // dazu alle NebengebÀude suchen
349                        echo "\n<p>Nebengeb&auml;ude:&nbsp;";
350                        $sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l "
351                        .$whereclaus."AND lage= $6 AND pseudonummer= $7 AND l.endet IS NULL ORDER BY laufendenummer;";
352
353                        $v = array($land,$regbez,$kreis,$gem,$lage,$lage,$hsnr);
354                        $res = pg_prepare("", $sql);
355                        $res = pg_execute("", $v);
356                        if (!$res) {
357                                echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.</p>";
358                                if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter
359                        }
360                        $neb=0;
361                        while($row = pg_fetch_assoc($res)) {
362                                echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
363                                $neb++;
364                        }
365                        if ($neb === 0) {echo "keine";}
366                        echo "</p>";
367                break;
368
369                case "p": // aktuell NebengebÀude: Haupt- und (andere) NebengebÀude suchen
370                        echo "\n<p>Hauptgeb&auml;ude: ";
371                        $sql ="SELECT l.gml_id FROM ax_lagebezeichnungmithausnummer l ".$whereclaus."AND hausnummer= $6 AND l.endet IS NULL ;";
372
373                        $v = array($land,$regbez,$kreis,$gem,$lage,$pseu);
374                        $res = pg_prepare("", $sql);
375                        $res = pg_execute("", $v);
376
377                        if (!$res) {echo "\n<p class='err'>Fehler bei Hauptgeb&auml;ude.<br>".$sql."</p>";}
378                        $hg=0;
379                        while($row = pg_fetch_assoc($res)) {
380                                echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=m'>Haus-Nr ".$pseu."</a>&nbsp;&nbsp;";
381                                $hg++;
382                        }
383                        if ($hg === 0) {echo "&nbsp;Kein Hauptgeb&auml;ude gefunden.";}
384                        echo "</p>";
385
386                        echo "\n<p>Weitere Nebengeb&auml;ude:&nbsp;";
387                        $sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l "
388                        .$whereclaus."AND pseudonummer= $6 AND laufendenummer <> $7 AND l.endet IS NULL ORDER BY laufendenummer;";
389                        $v=array($land,$regbez,$kreis,$gem,$lage,$pseu,$lfd);
390                        $res = pg_prepare("", $sql);
391                        $res = pg_execute("", $v);
392                        if (!$res) {
393                                echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.</p>";
394                                if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter               
395                        }
396                        $neb=0;
397                        while($row = pg_fetch_assoc($res)) {
398                                echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
399                                $neb++;
400                        }
401                        if ($neb === 0) {echo "keine";}
402                        echo "</p>";
403                break;
404        }
405}
406
407// G E B A E U D E
408if ($ltyp != "o") { // OhneHsNr linkt nur Flurst.
409        echo "\n\n<a id='geb'></a>\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Geb&auml;ude</h3>"
410        ."\n<p>mit dieser Lagebezeichnung.</p>";
411        switch ($ltyp) {
412                case "p": $bezart="g.hat"; break;
413                case "m": $bezart="ANY(g.zeigtauf)"; break; // array
414        }
415
416        $sql ="SELECT g.gml_id, g.gebaeudefunktion, array_to_string(g.name, ',') AS name, g.bauweise, g.grundflaeche, g.zustand, round(st_area(g.wkb_geometry)::numeric,2) AS flaeche,
417        h.beschreibung AS hv, h.dokumentation AS hd, u.beschreibung AS uv, u.dokumentation AS ud, z.beschreibung AS zv, z.dokumentation AS zd FROM ax_gebaeude g
418        LEFT JOIN ax_bauweise_gebaeude h ON g.bauweise = h.wert
419        LEFT JOIN ax_gebaeudefunktion u ON g.gebaeudefunktion = u.wert
420        LEFT JOIN ax_zustand_gebaeude z ON g.zustand = z.wert
421        WHERE $1 = ".$bezart." AND g.endet IS NULL;";
422        // Keine Sortierung (ORDER BY) notwendig weil i.d.R. nur ein (Haupt-)GebÀude diese Hausnummer hat.
423        // FÃŒr weiter Eigenschaften dem Link "Haus" folgen.
424
425        $v = array($gmlid);
426        $res = pg_prepare("", $sql);
427        $res = pg_execute("", $v);
428        if (!$res) {
429                echo "\n<p class='err'>Fehler bei Geb&auml;ude.</p>";
430                if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";}
431        }
432        echo "\n<table class='geb'>"
433        ."\n<tr>"
434                ."\n\t<td class='head' title='Name ist der Eigenname oder die Bezeichnung des Geb&auml;udes.'>Name</td>"
435                ."\n\t<td class='head fla' title='Fl&auml;che'>Fl&auml;che</td>"
436                ."\n\t<td class='head' title='Geb&auml;udefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Geb&auml;udes'>Funktion</td>"
437                ."\n\t<td class='head' title='Bauweise ist die Beschreibung der Art der Bauweise'>Bauweise</td>"
438                ."\n\t<td class='head' title='Zustand beschreibt die Beschaffenheit oder die Betriebsbereitschaft von Geb&auml;ude. Diese Attributart wird nur dann optional gef&uuml;hrt, wenn der Zustand des Geb&auml;udes vom nutzungsf&auml;higen Zustand abweicht.'>Zustand</td>"
439                ."\n\t<td class='head nwlink' title='Komplette Hausdaten'>Hausdaten</td>"
440        ."\n</tr>";
441        $i=0;
442        while($row = pg_fetch_assoc($res)) {
443                $ggml=$row["gml_id"];
444                $gfla=$row["flaeche"];
445                echo "\n<tr>"
446                        ."\n\t<td>".$row["name"]."</td>"
447                        ."\n\t<td class='fla'>".$gfla." m&#178;</td>";
448
449                        echo "\n\t<td title='".htmlentities($row["ud"], ENT_QUOTES, "UTF-8")."'>";
450                        if ($showkey) {echo "<span class='key'>".htmlentities($row["gebaeudefunktion"], ENT_QUOTES, "UTF-8")."</span> ";}
451                        echo $row["uv"]."</td>";
452
453                        echo "\n\t<td title='".htmlentities($row["hd"], ENT_QUOTES, "UTF-8")."'>";
454                        if ($showkey) {echo "<span class='key'>".htmlentities($row["bauweise"], ENT_QUOTES, "UTF-8")."</span> ";}
455                        echo $row["hv"]."</td>";
456                               
457                        echo "\n\t<td title='".htmlentities($row["zd"] , ENT_QUOTES, "UTF-8")."'>";
458                        if ($showkey) {echo "<span class='key'>".htmlentities($row["zustand"], ENT_QUOTES, "UTF-8")."</span> ";}
459                        echo $row["zv"]."</td>";
460
461                        echo "\n\t<td class='nwlink noprint'>"
462                                ."\n\t\t<a title='komplette Hausdaten' href='alkishaus.php?gkz=".$gkz."&amp;gmlid=".$ggml;
463                                if ($showkey) {echo "&amp;showkey=j";}
464                                echo "'>Haus <img src='ico/Haus.png' width='16' height='16' alt=''></a>"
465                        ."\n\t</td>"
466                ."\n</tr>";
467        }
468        echo "\n</table>";
469}
470
471echo "<div class='buttonbereich noprint'>\n<hr>"
472        ."\n\t<a title='zur&uuml;ck' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zur&uuml;ck'></a>&nbsp;";
473if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a>&nbsp;";}
474echo "\n</div>";
475
476footer($gmlid, selbstverlinkung()."?", "&amp;ltyp=".$ltyp);
477?>
478
479</body>
480</html>
Note: See TracBrowser for help on using the repository browser.