source: trunk/var/www/info/alkis/alkislage.php @ 132

Revision 132, 15.8 KB checked in by frank.jaeger, 12 years ago (diff)

ALKIS-Buchauskunft: Gebäudedaten

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:         22.11.2011
8                Felder ax_gebaeude.description und .individualname sind entfallen
9                GebÀude als Tabelle
10                Link auf neues Modul "alkishaus".
11                Sonderfall PostNAS-Vers. 05 entfernt.
12                Kennzeichen im Balken verkÃŒrzt.
13        30.11.2011  import_request_variables
14
15        ToDo:
16        - Entschluesseln Kreis usw.
17        - Das Balken-Kennzeichen noch kompatibel machen mit der Eingabe der Navigation fÃŒr Adresse
18*/
19session_start();
20import_request_variables("G");
21require_once("alkis_conf_location.php");
22if ($auth == "mapbender") {require_once($mapbender);}
23include("alkisfkt.php");
24switch ($ltyp) {
25        case "m": // "Mit HsNr"     = Hauptgebaeude
26                $tnam = "ax_lagebezeichnungmithausnummer"; break;
27        case "p": // "mit PseudoNr" = Nebengebaeude
28                $tnam = "ax_lagebezeichnungmitpseudonummer";    break;
29        case "o": //"Ohne HsNr"    = Gewanne oder Strasse
30                $tnam = "ax_lagebezeichnungohnehausnummer"; break;
31        default:
32                $ltyp = "m";
33                $tnam = "ax_lagebezeichnungmithausnummer"; break;
34}
35if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;}
36$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";
37if ($keys == "j") {$showkey=true;} else {$showkey=false;}
38?>
39<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
40<html>
41<head>
42        <meta name="author" content="F. Jaeger krz" >
43        <meta http-equiv="cache-control" content="no-cache">
44        <meta http-equiv="pragma" content="no-cache">
45        <meta http-equiv="expires" content="0">
46        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
47        <title>ALKIS Lagebezeichnung</title>
48        <link rel="stylesheet" type="text/css" href="alkisauszug.css">
49        <link rel="shortcut icon" type="image/x-icon" href="ico/Lage_mit_Haus.ico">
50        <style type='text/css' media='print'>
51                .noprint {visibility: hidden;}
52        </style>
53</head>
54<body>
55<?php
56$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
57if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
58
59// L a g e b e z e i c h n u n g
60$sql ="SELECT s.bezeichnung AS snam, k.bezeichnung AS knam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, ";
61switch ($ltyp) {
62        case "m": // "Mit HsNr"
63                $sql.="l.hausnummer ";
64        break;
65        case "p": // "mit PseudoNr"
66                $sql.="l.pseudonummer, l.laufendenummer ";
67        break;
68        case "o": //"Ohne HsNr"
69                $sql.="l.unverschluesselt ";
70        break;
71}
72$sql.="FROM ".$tnam." l ";
73// Gemeinde, Kreis, Strasse entschluesseln
74$sql.="LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde ";
75$sql.="LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis ";
76$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ";
77// ab PostNAS 0.6: Feld "lage" char(5) mit fuehr.Nullen
78$sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
79$sql.="WHERE l.gml_id= $1;";
80
81$v = array($gmlid);
82$res = pg_prepare("", $sql);
83$res = pg_execute("", $v);
84if (!$res) {
85        echo "\n<p class='err'>Fehler bei Lagebezeichnung.</p>\n";
86        if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
87}
88
89if ($row = pg_fetch_array($res)) {
90        $land =$row["land"];
91        $regbez=$row["regierungsbezirk"];
92        $kreis=$row["kreis"];
93        $knam=$row["knam"];
94        $gem  =$row["gemeinde"];
95        $gnam =$row["gnam"];
96        $lage =$row["lage"]; // Strassenschluessel
97        $snam =$row["snam"]; //Strassennamen
98        $unver=$row["unverschluesselt"]; // Gewanne
99//      $kennz=$land."-".$regbez."-".$kreis."-".$gem."-".$lage."-";
100        $kennz=$gem."-".$lage."-"; // ToDo: Kompatibel machen als Eingabe in in Navigation/Adresse
101       
102        switch ($ltyp) {
103                case "m": // "Mit HsNr"
104                        $hsnr=$row["hausnummer"];
105                        $kennz.=$hsnr;
106                        $untertitel="Hauptgeb&auml;ude mit Hausnummer";
107                        // Balken
108                        echo "<p class='lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
109                break;
110                case "p": // "mit PseudoNr"
111                        $pseu=$row["pseudonummer"];
112                        $lfd=$row["laufendenummer"];
113                        $kennz.=$pseu."-".$lfd;
114                        $untertitel="NebengebÀude mit laufender Nummer (Lagebezeichnung mit Pseudonummer)";
115                        echo "<p class='lage'>ALKIS Lagebezeichnung NebengebÀude ".$kennz."&nbsp;</p>\n"; // Balken
116                break;
117                case "o": //"Ohne HsNr"
118                        if ($lage == "") {
119                                $kennz=" - ".$unver;
120                        } else {
121                                $kennz.=$unver;                         }                         $untertitel="Stra&szlig;e ohne Hausnummer und/oder Gewanne (unverschl&uuml;sselte Lage)";
122                        echo "<p class='lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
123                break;
124        }
125} else {
126        echo "<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>";
127}
128
129echo "\n<h2><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Lagebezeichnung</h2>\n";
130
131echo "<p>Typ: ".$untertitel."</p>";
132
133echo "\n<table class='outer'>\n<tr>\n\t<td>";   // Tabelle Kennzeichen
134        // ToDo: !! kleiner, wenn ltyp=0 und die Schluesselfelder leer sind
135        echo "\n\t<table class='kennzla' title='Lage'>";
136                echo "\n\t<tr>";
137                        echo "\n\t\t<td class='head'>Land</td>";
138                        echo "\n\t\t<td class='head'>Reg.-Bez.</td>";
139                        echo "\n\t\t<td class='head'>Kreis</td>";
140                        echo "\n\t\t<td class='head'>Gemeinde</td>";
141                        echo "\n\t\t<td class='head'>Stra&szlig;e</td>";
142                        switch ($ltyp) {
143                                case "m": // "Mit HsNr"
144                                        echo "\n\t\t<td class='head'>Haus-Nr</td>";
145                                break;
146                                case "p": // "mit PseudoNr"
147                                        echo "\n\t\t<td class='head'>Haus-Nr</td>";
148                                        echo "\n\t\t<td class='head'>lfd.-Nr</td>";
149                                break;
150                                case "o": //"Ohne HsNr"
151                                        echo "\n\t\t<td class='head'>unverschl&uuml;sselte Lage</td>";
152                                break;
153                        }
154                echo "\n\t</tr>";
155                echo "\n\t<tr>";
156                        echo "\n\t\t<td title='Bundesland'>".$land."</td>";
157                        echo "\n\t\t<td title='Regierungsbezirk'>".$regbez."</td>";
158                        echo "\n\t\t<td title='Kreis'>";
159                                if ($showkey) {
160                                                echo "<span class='key'>".$kreis."</span><br>";
161                                }
162                        echo $knam."&nbsp;</td>";
163                        echo "\n\t\t<td title='Gemeinde'>";
164                                if ($showkey) {
165                                        echo "<span class='key'>".$gem."</span><br>";
166                                }
167                        echo $gnam."&nbsp;</td>";
168                        echo "\n\t\t<td title='Stra&szlig;e'>";
169                                if ($showkey) {
170                                        echo "<span class='key'>".$lage."</span><br>";
171                                }
172                        echo $snam."&nbsp;</td>";
173                        switch ($ltyp) {
174                                case "m":
175                                        echo "\n\t\t<td title='Hausnummer und Zusatz'><span class='wichtig'>".$hsnr."</span></td>";
176                                break;
177                                case "p":
178                                        echo "\n\t\t<td title='Pseudonummer - Nebengeb&auml;ude zu dieser Hausnummer'>".$pseu."</td>";
179                                        echo "\n\t\t<td title='Laufende Nummer Nebengeb&auml;ude'><span class='wichtig'>".$lfd."</span></td>";
180                                break;
181                                case "o":
182                                        echo "\n\t\t<td title='Gewanne'><span class='wichtig'>".$unver."</span></td>";
183                                break;
184                        }
185                echo "\n\t</tr>";
186        echo "\n\t</table>";
187
188        echo "\n\t</td>\n\t<td>";
189
190        // Kopf Rechts: weitere Daten?
191        // z.B. hier Ausgabe von "georeferenzierte GebÀudeadresse" ?
192        if ($idanzeige) {linkgml($gkz, $gmlid, "Lage"); }
193
194echo "\n\t</td>\n</tr>\n</table>";
195// Ende Seitenkopf
196
197// F L U R S T U E C K E
198if ($ltyp <> "p") { // Pseudonummer linkt nur GebÀude
199        echo "\n\n<a name='fs'></a><h3><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n";
200        echo "\n<p>mit dieser Lagebezeichnung.</p>";
201        // ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer
202        // ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
203        switch ($ltyp) {
204                case "m": $bezart="weistAuf"; break;
205                case "o": $bezart="zeigtAuf"; break;
206        }
207        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, ";
208        $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
209        $sql.="FROM ax_flurstueck f ";
210        $sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von ";
211        $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
212        $sql.="WHERE v.beziehung_zu= $1 "; // id Lage
213        $sql.="AND v.beziehungsart= $2 ";
214        $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
215
216        $v = array($gmlid,$bezart);
217        $resf = pg_prepare("", $sql);
218        $resf = pg_execute("", $v);
219        if (!$resf) {
220                echo "<p class='err'>Fehler bei Flurst&uuml;ck.</p>\n";
221                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}     
222        }
223
224        echo "\n<table class='fs'>";
225        echo "\n<tr>"; // Kopfzeile der Tabelle
226                echo "\n\t<td class='head'>Gemarkung</td>";
227                echo "\n\t<td class='head'>Flur</td>";
228                echo "\n\t<td class='head' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'>Flurst.</td>";
229                echo "\n\t<td class='head fla'>Fl&auml;che</td>";
230                echo "\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>";
231        echo "\n</tr>";
232        $j=0;
233        while($rowf = pg_fetch_array($resf)) {
234                $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
235                $fskenn=$rowf["zaehler"]; // Bruchnummer
236                if ($rowf["nenner"] != "") {$fskenn.="/".$rowf["nenner"];}
237                $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
238                echo "\n<tr>";                         echo "\n\t<td>";
239                        if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";}
240                        echo $rowf["bezeichnung"]."</td>";
241                        echo "\n\t<td>".$flur."</td>";
242                        echo "\n\t<td><span class='wichtig'>".$fskenn."</span>";
243                                if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");}
244                        echo "</td>";
245                        echo "\n\t<td class='fla'>".$flae."</td>";
246                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
247                                echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
248                                        if ($idanzeige) {echo "&amp;id=j";}
249                                        if ($showkey)   {echo "&amp;showkey=j";}
250                                echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''></a>";
251                        echo "\n\t\t</p>\n\t</td>";
252                echo "\n</tr>";
253                $j++;
254        }
255        echo "\n</table>";
256}
257
258// L A G E
259// andere Lage mit gleicher Hausnummer suchen
260if ($ltyp <> "o") { // nicht bei Gewanne (Ohne HsNr)
261        echo "\n\n<a name='lage'></a><h3><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Lage</h3>\n";
262        echo "\n<p>andere Lagebezeichnungen zur gleichen Hausnummer.</p>";
263        $whereclaus="WHERE land= $1 AND regierungsbezirk= $2 AND kreis= $3 AND gemeinde= $4 AND lage= $5 ";
264        $url=$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;id=".$id."&amp;gmlid="; // Basis
265        if ($idanzeige) {$url.="&amp;id=j";}
266        if ($showkey)   {$url.="&amp;showkey=j";}
267
268        switch ($ltyp) {
269                case "m": // aktuell Hausnummer gefunden
270                        // dazu alle NebengebÀude suchen
271                        echo "\n<p>Nebengeb&auml;ude: ";
272                        $sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l ";
273                        $sql.=$whereclaus."AND lage= $6 AND pseudonummer= $7 ORDER BY laufendenummer;";
274                // pseudonummer character varying(5), laufendenummer character varying(2),
275
276                        $v = array($land,$regbez,$kreis,$gem,$lage,$lage,$hsnr);
277                        $res = pg_prepare("", $sql);
278                        $res = pg_execute("", $v);
279                        if (!$res) {
280                                echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.<br>".$sql."</p>\n";
281                                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}
282                        }
283                        while($row = pg_fetch_array($res)) {
284                                echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
285                        }
286                        echo "\n</p>";
287                break;
288
289                case "p": // aktuell NebengebÀude: Haupt- und NebengebÀude suchen
290                        echo "\n<p>Hauptgeb&auml;ude: ";
291                        $sql ="SELECT l.gml_id FROM ax_lagebezeichnungmithausnummer l ";
292                        $sql.=$whereclaus."AND hausnummer= $6;";
293
294                        $v = array($land,$regbez,$kreis,$gem,$lage,$pseu);
295                        $res = pg_prepare("", $sql);
296                        $res = pg_execute("", $v);
297
298                        if (!$res) echo "<p class='err'>Fehler bei Hauptgeb&auml;ude.<br>".$sql."</p>\n";
299                        while($row = pg_fetch_array($res)) {
300                                echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=m'>Haus-Nr ".$pseu."</a>&nbsp;&nbsp;";
301                        }
302                        echo "\n</p>";
303
304                        echo "\n<p>weitere Nebengeb&auml;ude: ";
305                        $sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l ";
306                        $sql.=$whereclaus."AND pseudonummer= $6 AND laufendenummer <> $7 ORDER BY laufendenummer;";
307                        $v = array($land,$regbez,$kreis,$gem,$lage,$pseu,$lfd);
308                        $res = pg_prepare("", $sql);
309                        $res = pg_execute("", $v);
310                        if (!$res) {
311                                echo "\n<p class='err'>Fehler bei Nebengeb&auml;ude.</p>\n";
312                                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."</p>";}                   
313                        }
314                        while($row = pg_fetch_array($res)) {
315                                echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
316                        }
317                        echo "\n</p>";
318                break;         }
319}
320
321// G E B A E U D E
322if ($ltyp <> "o") { // OhneHsNr linkt nur Flurst.
323        echo "\n\n<a name='geb'></a><h3><img src='ico/Haus.ico' width='16' height='16' alt=''> Geb&auml;ude</h3>";
324        echo "\n<p>mit dieser Lagebezeichnung.</p>";
325        switch ($ltyp) {
326                case "p": $bezart="hat"; break;
327                case "m": $bezart="zeigtAuf"; break;
328        }
329        $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, ";
330        $sql.="round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner ";
331        $sql.="FROM ax_gebaeude g ";
332        $sql.="JOIN alkis_beziehungen v ON g.gml_id=v.beziehung_von ";
333        $sql.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id ";
334        $sql.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert ";
335// +++ JOIN Zustand
336        $sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart= $2 ;";
337        $v = array($gmlid,$bezart);
338        $res = pg_prepare("", $sql);
339        $res = pg_execute("", $v);
340        if (!$res) {
341                echo "<p class='err'>Fehler bei Gebaeude.</p>\n";
342                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
343        }
344        echo "\n<table class='geb'>";         echo "\n<tr>"; // T-Header
345                echo "\n\t<td class='head' title='Geb&auml;udename'>Name</td>";
346                echo "\n\t<td class='head fla' title='Fl&auml;che'>Fl&auml;che</td>";                 echo "\n\t<td class='head' title='Geb&auml;udefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Geb&auml;udes'>Funktion</td>";
347                echo "\n\t<td class='head' title='Bauweise (Schl&uuml;ssel und Beschreibung)'>Bauweise</td>";
348                echo "\n\t<td class='head' title='Zustand (Schl&uuml;ssel und Beschreibung)'>Zustand</td>";
349                echo "\n\t<td class='head nwlink' title='Link zu kompletten Hausdaten'>Haus</td>";
350        echo "\n</tr>";
351        // T-Body
352        $i=0;
353        while($row = pg_fetch_array($res)) {
354                $ggml=$row["gml_id"];
355                $gfla=$row["flaeche"];
356                echo "\n\t<tr>";
357
358                        echo "<td>";
359                                if ($idanzeige) {linkgml($gkz, $ggml, "Geb&auml;ude");}
360                                // +++ Hausnummer / Adresse ???
361                        echo $row["name"]."</td>";
362
363                //      echo "<td class='fla'>".$row["grundflaeche"]."</td>";                         echo "<td class='fla'>".$gfla." m&#178;</td>";
364
365                        echo "<td>";
366                                if ($showkey) {echo "<span class='key'>".$row["gebaeudefunktion"]."</span> ";}
367                        echo $row["bezeichner"]."</td>";
368
369                        echo "<td>";
370                                if ($showkey) {echo "<span class='key'>".$row["bauweise"]."</span> ";}
371                        echo $row["bauweise_beschreibung"]."</td>";
372
373                        echo "<td>".$row["zustand"]."</td>"; // +++ EntschlÃŒsseln
374
375                        echo "\n\t<td class='nwlink noprint'>";
376                                echo "<a title='Hausdaten' href='alkishaus.php?gkz=".$gkz."&amp;gmlid=".$ggml;
377                                if ($idanzeige) {echo "&amp;id=j";}
378                                echo "'><img src='ico/Haus.ico' width='16' height='16' alt=''></a>";
379                        echo "</td>";
380                 echo "</tr>";
381        }
382        echo "\n</table>";
383}
384
385?>
386
387<form action=''>
388        <div class='buttonbereich noprint'>
389        <hr>
390                <input type='button' name='back'  value='&lt;&lt;' title='Zur&uuml;ck'  onClick='javascript:history.back()'>&nbsp;
391                <input type='button' name='print' value='Druck' title='Seite Drucken' onClick='window.print()'>&nbsp;
392                <input type='button' name='close' value='X' title='Fenster schlie&szlig;en' onClick='window.close()'>
393        </div>
394</form>
395
396<?php footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;ltyp=".$ltyp); ?>
397
398</body>
399</html>
400
Note: See TracBrowser for help on using the repository browser.