source: trunk/info/info/alkis/alkislage.php @ 275

Revision 275, 16.3 KB checked in by frank.jaeger, 11 years ago (diff)

Buchauskunft: deprecated "import_request_variables" ersetzt. In 'sichten.sql' die Mehrfachdarstellung unterdrückt, nur noch advstandardmodell='DKKM1000'.

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