source: trunk/var/www/info/alkis/alkisfsnw.php @ 199

Revision 199, 32.1 KB checked in by frank.jaeger, 11 years ago (diff)

Der Flurstücks-Nachweis kann alternativ zur gml_id nun auch mit einem FS-Kennzeichen im alten ALB-Format aufgerufen werden. Dies ermöglicht Querverbindungen aus anderen Fachkatastern, die ein Flurstückskennzeichen gespeichert haben, aber keine gml_id.

Line 
1<?php
2/*      Modul: alkisfsnw.php
3
4        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
5        FlurstÃŒcksnachweis fuer ein FlurstÃŒckskennzeichen aus ALKIS PostNAS
6
7        Version:
8        2011-11-16 Neuer Style class='dbg', Link Historie
9        2011-11-17 Parameter der Functions geÀndert
10        2011-11-30 import_request_variables, $dbvers PostNAS 0.5 entfernt
11        2011-12-01 Summe der AbschnittsflÀchen (NUA) an amtl. BuchflÀche des FS angleichen
12        2011-12-16 Zeilenumbruch in Nutzungsart, Spaltenbreite Link
13        2012-07-24 Export als CSV, pg_free_result(), pg_close()
14        2012-11-27 split deprecated, besser: explode
15        2013-01-17 FS-Kennzeichen (ALB-Format) als Parameter statt gmlid möglich
16
17        ToDo:
18        - BodenschÀtzung anzeigen
19        - EntschlÃŒsseln "Bahnkategorie" bei Bahnverkehr, "OberflÀchenmaterial" bei Unland           Dazu evtl. diese Felder ins Classfld verschieben (Meta-Tabellen!)
20        - NamNum >bestehtAusRechtsverhaeltnissenZu> NamNum
21*/
22session_start();
23import_request_variables("G");
24require_once("alkis_conf_location.php");
25if ($auth == "mapbender") {require_once($mapbender);}
26include("alkisfkt.php");
27if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;}
28$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";
29if ($keys == "j") {$showkey=true;} else {$showkey=false;}
30?>
31<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
32<html>
33<head>
34        <meta name="author" content="b600352" >
35        <meta http-equiv="cache-control" content="no-cache">
36        <meta http-equiv="pragma" content="no-cache">
37        <meta http-equiv="expires" content="0">
38        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
39        <title>ALKIS Flurst&uuml;cksnachweis</title>
40        <link rel="stylesheet" type="text/css" href="alkisauszug.css">
41        <link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck.ico">
42        <style type='text/css' media='print'>
43                .noprint {visibility: hidden;}
44        </style>
45        <script type="text/javascript">
46        function ALKISexportFS() {window.open(<?php echo "'alkisfsexp.php?gkz=".$gkz."&gmlid=".$gmlid."'"; ?>);}
47        function ALKISexportGB() {window.open(<?php echo "'alkisfsgbexp.php?gkz=".$gkz."&gmlid=".$gmlid."'"; ?>);}
48        </script>
49</head>
50<body>
51<?php
52$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
53if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
54
55// Ein (ALB- ?) FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt
56if ($gmlid == '' and $fskennz != '') {
57        // Übergabe Format z.B. "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz"
58        $arr=explode("-", $fskennz, 4);
59        $zgemkg=trim($arr[0]);
60        if (strlen($zgemkg) == 20 and $arr[1] == "") { // Oh, ist wohl schon das Datenbank-Feldformat
61                $fskzdb=$zgemkg;
62        } else { // Nö, ist wohl eher ALB-Format
63                // Das Kennzeichen auseinander nehmen.
64                if (strlen($zgemkg) == 6) {
65                        $land=substr($zgemkg, 0, 2);
66                        $zgemkg=substr($zgemkg, 2, 4);
67                } else { // kein schöner Land ..
68                        $land='05'; // NRW, ToDo: Default-Land aus config
69                }
70                $zflur=str_pad($arr[1], 3 , "0", STR_PAD_LEFT); // Flur-Nr
71                $zfsnr=trim($arr[2]); // FlurstÃŒcke-Nr
72                $zn=explode("/", $zfsnr, 2); // Bruch?
73                $zzaehler=str_pad(trim($zn[0]), 5 , "0", STR_PAD_LEFT);
74                $znenner=trim($zn[1]);
75                if (trim($znenner, " 0.") == "") { // kein Bruch oder nur Nullen
76                        $znenner="____"; // in DB-Spalte mit Tiefstrich aufgefÃŒllt
77                } else {
78                        $zn=explode(".", $znenner, 2); // .00 wegwerfen
79                        $znenner=str_pad($zn[0], 4 , "0", STR_PAD_LEFT);
80                }
81                // nun die Teile stellengerecht wieder zusammen setzen         
82                $fskzdb=$land.$zgemkg.$zflur.$zzaehler.$znenner.'__'; // FS-Kennz. Format Datenbank
83        }
84        // Feld flurstueckskennzeichen ist in DB indiziert 
85        // Format z.B.'052647002001910013__' oder '05264700200012______'
86        $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 ;";
87
88        $v = array($fskzdb);
89        $res = pg_prepare("", $sql);
90        $res = pg_execute("", $v);
91        if ($row = pg_fetch_array($res)) {
92                $gmlid=$row["gml_id"];
93        } else {
94                echo "<p class='err'>Fehler! Kein Treffer f&uuml;r Flurst&uuml;ckskennzeichen='".$fskennz."' (".$fskzdb.")</p>";
95        }
96        pg_free_result($res);
97}
98
99// F L U R S T U E C K
100$sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae, f.zeitpunktderentstehung, ";
101$sql.="g.gemarkungsnummer, g.bezeichnung ";
102$sql.="FROM ax_flurstueck f ";
103$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
104$sql.="WHERE f.gml_id= $1";
105
106$v = array($gmlid); // mit gml_id suchen
107$res = pg_prepare("", $sql);
108$res = pg_execute("", $v);
109if (!$res) {
110        echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>\n";
111        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
112}
113if ($row = pg_fetch_array($res)) {
114        $gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
115        $gmkgnr=$row["gemarkungsnummer"];
116        $bezirk=$row["regierungsbezirk"];
117        $kreis=$row["kreis"];
118        $gemeinde=$row["gemeinde"];
119        $flurnummer=$row["flurnummer"];
120        $flstnummer=$row["zaehler"];
121        $nenner=$row["nenner"];
122        if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
123        $fsbuchflae=$row["amtlicheflaeche"]; // amtliche Fl. aus DB-Feld
124        $fsgeomflae=$row["fsgeomflae"]; // aus Geometrie ermittelte FlÀche
125        $fsbuchflaed=number_format($fsbuchflae,0,",",".") . " m&#178;"; // Display-Format dazu
126        $fsgeomflaed=number_format($fsgeomflae,0,",",".") . " m&#178;";
127        $entsteh=$row["zeitpunktderentstehung"];
128        $name=$row["name"]; // Fortfuehrungsnummer(n)
129        $arrn = explode(",", trim($name, "{}") ); // PHP-Array
130} else {
131        echo "<p class='err'>Fehler! Kein Treffer f&uuml;r gml_id=".$gmlid."</p>";
132        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
133}
134pg_free_result($res);
135// Balken
136if ($eig=="j") {
137        echo "<p class='fsei'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n";
138        echo "\n<h2><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;ck mit Eigent&uuml;mer</h2>\n";
139} else {
140        echo "<p class='fskennz'>ALKIS Flurst&uuml;ck ".$gmkgnr."-".$flurnummer."-".$flstnummer."&nbsp;</p>\n";
141        echo "\n<h2><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;ck</h2>\n";
142}
143echo "\n<table class='outer'>\n<tr>\n\t<td>"; // linke Seite
144        // darin Tabelle Kennzeichen
145        echo "\n\t<table class='kennzfs' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>";
146                echo "\n\t\t<td class='head'>Gmkg</td>\n\t\t<td class='head'>Flur</td>\n\t\t<td class='head'>Flurst-Nr.</td>\n\t</tr>";
147                echo "\n\t<tr>\n\t\t<td title='Gemarkung'>";
148                if ($showkey) {
149                        echo "<span class='key'>".$gmkgnr."</span><br>";
150                }
151                echo $gemkname."&nbsp;</td>";
152                echo "\n\t\t<td title='Flurnummer'>".$flurnummer."</td>";
153                echo "\n\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t</tr>";
154        echo "\n\t</table>";
155echo "\n\t</td>\n\t<td>"; // rechte Seite
156        // FS-Daten 2 Spalten
157        echo "\n\t<table class='fsd'>";
158                echo "\n\t<tr>\n\t\t<td>Entstehung</td>";
159                echo "\n\t\t<td>".$entsteh."</td>\n\t</tr>";                 echo "\n\t<tr>";
160                        echo "\n\t\t<td>letz. Fortf</td>";
161                        echo "\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>";
162                                foreach($arrn AS $val) { // Zeile f. jedes Element des Array
163                                        echo trim($val, '"')."<br>";
164                                }
165                        echo "</td>";
166                echo "\n\t</tr>";
167
168        echo "\n\t</table>";         if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck"); }
169echo "\n\t</td>\n</tr>\n</table>";
170//      echo "\n<tr>\n\t<td>Finanzamt</td>\n\t<td>".$finanzamt." ".$finame  . "</td>\n</tr>";
171// Ende Seitenkopf
172
173echo "\n<hr>";
174echo "\n<p class='nwlink noprint'>weitere Auskunft:</p>"; // oben rechts von der Tabelle
175echo "\n<table class='fs'>";
176
177// ** G e b i e t s z u g e h o e r i g k e i t **
178// eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben
179// Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist?
180echo "\n<tr>\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.ico' width='16' height='16' alt=''> Gebiet:</td>";
181
182// G e m e i n d e
183$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3";
184
185$v = array($bezirk,$kreis,$gemeinde);
186$res = pg_prepare("", $sql);
187$res = pg_execute("", $v);
188if (!$res) {
189        echo "\n<p class='err'>Fehler bei Gemeinde</p>\n";
190        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
191}
192$row = pg_fetch_array($res);
193$gnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
194echo "\n\t<td class='lr'>Gemeinde</td><td class='lr'>";
195if ($showkey) {
196        echo "<span class='key'>(".$gemeinde.")</span> ";
197}
198echo $gnam."</td><td width='80'>";  // Mindest-Breite der Spalte fuer die Links
199        // Link zur FlurstÃŒcks-Historie (passt nicht ganz in die Zeile "Gemeinde", aber gut unter "weitere Auskunft")
200        echo "\n<p class='nwlink noprint'>";
201                echo "\n\t<a href='alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
202                                if ($idanzeige) {echo "&amp;id=j";}
203                                if ($showkey)   {echo "&amp;showkey=j";}
204                        echo "' title='Vorg&auml;nger-Flurst&uuml;cke'>Historie ";
205                        echo "<img src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt=''>";
206                echo "</a>";
207        echo "\n</p>";
208echo "</td></tr>";
209pg_free_result($res);
210
211// K r e i s
212$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2";
213$v = array($bezirk,$kreis);
214$res = pg_prepare("", $sql);
215$res = pg_execute("", $v);
216if (!$res) {
217        echo "\n<p class='err'>Fehler bei Kreis</p>\n";
218        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
219}
220$row = pg_fetch_array($res);
221$knam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
222echo "<tr><td>&nbsp;</td><td>Kreis</td><td>";
223if ($showkey) {
224        echo "<span class='key'>(".$kreis.")</span> ";
225}
226echo $knam."</td><td>&nbsp;</td></tr>";
227pg_free_result($res);
228
229// R e g - B e z
230$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 ";
231$v = array($bezirk);
232$res = pg_prepare("", $sql);
233$res = pg_execute("", $v);
234if (!$res) {
235        echo "<p class='err'>Fehler bei Regierungsbezirk</p>";
236        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
237}
238$row = pg_fetch_array($res);
239$bnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
240echo "<tr><td>&nbsp;</td><td>Regierungsbezirk</td><td>";
241if ($showkey) {
242        echo "<span class='key'>(".$bezirk.")</span> ";
243}
244echo $bnam."</td><td>&nbsp;</td></tr>";
245pg_free_result($res);
246// ENDE G e b i e t s z u g e h o e r i g k e i t
247
248// ** L a g e b e z e i c h n u n g **
249
250// Lagebezeichnung Mit Hausnummer
251//   ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer
252//                  <gehoertZu<
253$sql ="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung ";
254$sql.="FROM alkis_beziehungen v ";
255$sql.="JOIN ax_lagebezeichnungmithausnummer  l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN
256$sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
257$sql.="AND l.lage = s.lage ";
258$sql.="WHERE v.beziehung_von= $1 "; // id FS";
259$sql.="AND v.beziehungsart='weistAuf' ";
260$sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;";
261// Theoretisch JOIN notwendig ÃŒber den kompletten SchlÃŒssel bestehend aus land+regierungsbezirk+kreis+gemeinde+lage
262// bei einem SekundÀrbestand fÌr eine Gemeinde oder einen Kreis reicht dies hier:
263
264$v = array($gmlid);
265$res = pg_prepare("", $sql);
266$res = pg_execute("", $v);
267if (!$res) {
268        echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer</p>";
269        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
270}
271$j=0;
272while($row = pg_fetch_array($res)) {
273        $sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name
274        echo "\n<tr>\n\t";
275                if ($j == 0) {
276                        echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>";
277                } else {
278                        echo "<td>&nbsp;</td>";
279                }
280                echo "\n\t<td>&nbsp;</td>";
281                echo "\n\t<td class='lr'>";
282                if ($showkey) {
283                        echo "<span class='key'>(".$row["lage"].")</span>&nbsp;";
284                }
285                echo $sname."&nbsp;".$row["hausnummer"]."</td>";
286                echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
287                        echo "\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"];
288                        if ($showkey) {echo "&amp;showkey=j";}
289                        echo "'>Lage ";
290                        echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>";
291                echo "\n\t\t</p>\n\t</td>";
292        echo "\n</tr>";
293        $j++;
294}
295pg_free_result($res);
296// Verbesserung: mehrere HsNr zur gleichen Straße als Liste?
297
298// L a g e b e z e i c h n u n g   O h n e   H a u s n u m m e r  (Gewanne oder nur Strasse)
299//   ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer
300//                  <gehoertZu<
301$sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung ";
302$sql.="FROM alkis_beziehungen v ";
303$sql.="JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=v.beziehung_zu ";
304$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
305$sql.="AND l.lage = s.lage ";
306$sql.="WHERE v.beziehung_von= $1 "; // id FS";
307$sql.="AND   v.beziehungsart='zeigtAuf';"; //ORDER?
308$v = array($gmlid);
309$res = pg_prepare("", $sql);
310$res = pg_execute("", $v);
311if (!$res) {
312        echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>";
313        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}
314}
315$j=0;
316// Es wird auch eine Zeile ausgegeben, wenn kein Eintrag gefunden!
317while($row = pg_fetch_array($res)) {
318        $gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8");
319        $skey=$row["lage"]; // Strassenschluessel
320        $lgml=$row["gml_id"]; // key der Lage
321        if (!$gewann == "") {
322                echo "\n<tr>";
323                        echo "\n\t<td class='ll' title='Lagebezeichnung'><img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''> Gewanne:</td>";
324                        echo "\n\t<td></td>";
325                        echo "\n\t<td class='lr'>".$gewann."</td>";
326                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
327                                echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml;
328                                if ($showkey) {echo "&amp;showkey=j";}                         
329                                echo "'>\n\t\t\tLage <img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''></a>";
330                        echo "\n\t\t</p>\n\t</td>";
331                echo "\n</tr>";
332        }
333        // Gleicher DB-Eintrag in zwei HTML-Zeilen, besser nur ein Link
334        if ($skey > 0) {
335                echo "\n<tr>";
336                        echo "\n\t<td class='ll'><img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''> Stra&szlig;e:</td>";
337                        echo "\n\t<td></td>";
338                        echo "\n\t<td class='lr'>";
339                        if ($showkey) {
340                                echo "<span class='key'>(".$skey.")</span>&nbsp;";
341                        }
342                        echo $row["bezeichnung"]."</td>";
343                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
344                                echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml;
345                                if ($showkey) {echo "&amp;showkey=j";}                         
346                                echo "'>\n\t\t\tLage <img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''>\n\t\t\t</a>";
347                        echo "\n\t\t</p>\n\t</td>";
348                echo "\n</tr>";
349        }
350        $j++;
351}
352pg_free_result($res);
353// ENDE  L a g e b e z e i c h n u n g
354
355// ** N U T Z U N G **
356// Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben
357$sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, c.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe, ";
358// Gemeinsame FlÀche von NUA und FS
359$sql.="st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, ";
360$sql.="c.label, c.blabla ";
361$sql.="FROM ax_flurstueck f, nutzung n ";
362$sql.="JOIN nutzung_meta m ON m.nutz_id=n.nutz_id ";
363$sql.="LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class ";
364$sql.="WHERE f.gml_id= $1 "; // id FS";
365$sql.="AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true "; // ueberlappende Flaechen
366$sql.="AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 "; // unter Rundung
367$sql.="ORDER BY schnittflae DESC;";
368
369$v = array($gmlid);
370$res = pg_prepare("", $sql);
371$res = pg_execute("", $v);
372if (!$res) {
373        echo "<p class='err'>Fehler bei Suche tats. Nutzung</p>\n";
374        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
375}
376$the_Xfactor=$fsbuchflae / $fsgeomflae; // geom. ermittelte FlÀche auf amtl. BuchflÀche angleichen
377$j=0;
378while($row = pg_fetch_array($res)) {
379        $grupp = $row["gruppe"];  // Individuelles Icon?
380        $title = htmlentities($row["title"], ENT_QUOTES, "UTF-8"); // NUA-Titel
381        $fldclass=$row["fldclass"]; // Feldname 1.  Zusatzfeld
382        $fldinfo= $row["fldinfo"];  // Feldname 2. Zusatzfeld
383        $gml=$row["gml_id"];
384        $class=$row["class"];  // 1. Zusatzfeld verschlÃŒsselt -> nutzung_class
385        $info=$row["info"]; // 2. Zus. verschlÃŒsselt (noch keine Info zum entschl.)
386        $schnittflae=$row["schnittflae"];
387        $label=$row["label"]; // Nutzungsart entschlÃŒsselt
388        $zus=$row["zustand"]; // im Bau
389        $nam=$row["name"]; // Eigenname
390        $bez=$row["bezeichnung"]; // weiterer Name (unverschl.)
391        $blabla=htmlentities($row["blabla"], ENT_QUOTES, "UTF-8");         $label=str_replace("/", "<br>", $label); // Ersetzen "/" durch Zeilenwechsel?
392
393        echo "\n<tr>\n\t";
394                if ($j == 0) {
395                        echo "<td class='ll' title='Abschnitt der tats&auml;chlichen Nutzung'><img src='ico/Abschnitt.ico' width='16' height='16' alt=''> Nutzung:</td>";
396                } else {
397                        echo "<td>&nbsp;</td>";
398                }
399                $absflaebuch = $schnittflae * $the_Xfactor; // angleichen geometrisch an amtliche FlÀche
400                $schnittflae = number_format($schnittflae,1,",",".") . " m&#178;"; // geometrisch
401                $absflaebuch = number_format($absflaebuch,0,",",".") . " m&#178;"; // Abschnitt an BuchflÀche angeglichen
402                echo "\n\t<td class='fla' title='geometrisch berechnet: ".$schnittflae."'>".$absflaebuch."</td>";
403
404                echo "\n\t<td class='lr'>";
405                        If ( ($fldclass == "Funktion" OR $fldclass == "Vegetationsmerkmal") AND $label != "") { // Kurze Anzeige
406                                if ($showkey) {echo "<span class='key'>(".$class.")</span> ";}
407                                if ($blabla = "") {
408                                        echo $label;
409                                } else {
410                                        echo "<span title='".$blabla."'>".$label."</span>";
411                                }
412                        } else { // ausfuehrlichere Anzeige
413                                echo $title; // NUA-Tabelle
414                                if ($class != "") { // NUA-SchlÃŒssel
415                                        echo ", ".$fldclass.": "; // Feldname
416                                        if ($showkey) {echo "<span class='key'>(".$class.")</span> ";}
417                                        if ($label != "") { // Bedeutung dazu wurde erfasst
418                                                if ($blabla = "") {
419                                                        echo $label;
420                                                } else {
421                                                        echo "<span title='".$blabla."'>".$label."</span>";
422                                                }
423                                        } else { // muss noch erfasst werden
424                                                echo $class." "; // SchlÃŒssel als Ersatz fÃŒr Bedeutung
425                                        }
426                                }
427                        }
428
429                        If ($info != "") { // manchmal ein zweites Zusatzfeld (wie entschlÃŒsseln?)
430                                echo ", ".$fldinfo."=".$info;
431                        }
432                        If ($zus != "") { // Zustand
433                                echo "\n\t\t<br>";
434                                if ($showkey) {echo "<span class='key'>(".$zus.")</span> ";}
435                                echo "<span title='Zustand'>";                         
436                                switch ($zus) {
437                                        case 2100: echo "Außer Betrieb, stillgelegt, verlassen"; break;
438                                        case 4000: echo "Im Bau"; break;
439                                        case 8000: echo "Erweiterung, Neuansiedlung"; break;
440                                        default: echo "Zustand: ".$zus; break;
441                                }
442                                echo "</span>";
443                        }
444                        If ($nam != "") {echo "<br>Name: ".$nam;}
445                        If ($bez != "") {echo "<br>Bezeichnung: ".$bez;}
446                echo "</td>";
447                echo "\n\t<td>";
448                        switch ($grupp) { // Icon nach 4 Objektartengruppen
449                                case "Siedlung":                $ico = "Abschnitt.ico"; break;
450                                case "Verkehr":         $ico = "Strassen_Klassifikation.ico";   break;
451                                case "Vegetation":      $ico = "Wald.ico";      break;
452                                case "GewÀsser":               $ico = "Wasser.ico";    break;
453                                default:                                        $ico = "Abschnitt.ico"; break;
454                        }
455                        // Icon ist auch im Druck sichtbar, class='noprint' ?           
456                        echo "<p class='nwlink'><img title='".$title."' src='ico/".$ico."' width='16' height='16' alt='NUA'></p>";
457                echo "</td>";
458        echo "\n</tr>";
459        $j++;
460}
461pg_free_result($res);
462// ENDE  N U T Z U N G
463
464echo "\n<tr>"; // Summenzeile
465        echo "\n\t<td class='ll' title='amtliche Fl&auml;che (Buchfl&auml;che)'>Fl&auml;che:</td>";
466        echo "\n\t<td class='fla'>";
467        echo "<span title='geometrisch berechnete Fl&auml;che = ".$fsgeomflaed."' class='flae'>".$fsbuchflaed."</span></td>";
468
469        // Flaeche und Link auf GebÀude-Auswertung
470        echo "\n\t<td>&nbsp;</td>\n\t<td>";
471                echo "\n\t\t<p class='nwlink noprint'>"; // Gebaeude-Verschneidung
472                        echo "\n\t\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
473                        if ($idanzeige) {echo "&amp;id=j";}                         if ($showkey) {echo "&amp;showkey=j";}
474                        echo "' title='Geb&auml;udenachweis'>Geb&auml;ude <img src='ico/Haus.ico' width='16' height='16' alt=''></a>";
475                echo "\n\t\t</p>";
476        echo "\n\t</td>";
477echo "\n</tr>";
478
479echo "\n</table>";
480
481// ALB: KLASSIFIZIERUNG  BAULASTEN  HINWEISE  TEXTE  VERFAHREN
482
483// G R U N D B U C H
484echo "\n<table class='outer'>";
485        echo "\n<tr>";
486                echo "\n\t<td>";
487                        echo "\n\t\t<a name='gb'></a>\n\t\t<h3><img src='ico/Grundbuch_zu.ico' width='16' height='16' alt=''> Grundb&uuml;cher</h3>";
488                echo "\n\t</td>";
489                echo "\n\t<td>";
490                        echo "\n\t\t<p class='nwlink noprint'>";
491                                echo "\n\t\t\t<a href='".$_SERVER['PHP_SELF']. "?gkz=".$gkz."&amp;gmlid=".$gmlid;
492                                if ($idanzeige) { echo "&amp;id=j";}
493                                if ($showkey)   {echo "&amp;showkey=j";}
494                                // Umschalter: FS-Nachw ruft sich selbst mit geaend. Param. auf. Posit. auf Marke #gb
495                                if ($eig=="j") {
496                                        echo "&amp;eig=n#gb' title='Flurst&uuml;cksnachweis'>ohne Eigent&uuml;mer</a>";
497                                } else {
498                                        echo "&amp;eig=j#gb' title='Flurst&uuml;cks- und Eigent&uuml;mernachweis'>mit Eigent&uuml;mer ";
499                                        echo "<img src='ico/EigentuemerGBzeile.ico' width='16' height='16' alt=''></a>";
500                                }
501                        echo "\n\t\t</p>";
502                echo "\n\t</td>";
503        echo "\n</tr>";
504echo "\n</table>\n";
505
506// B U C H U N G S S T E L L E N  zum FS (istGebucht)
507$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, ";
508$sql.="s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.bezeichner AS bart ";
509//  s.beschreibungdesumfangsderbuchung as umf,  ?
510$sql.="FROM alkis_beziehungen v "; // Bez Flurst.- Stelle.
511$sql.="JOIN ax_buchungsstelle s ON v.beziehung_zu=s.gml_id ";
512$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert ";
513$sql.="WHERE v.beziehung_von= $1 "; // id FS
514$sql.="AND v.beziehungsart= $2 ";
515$sql.="ORDER BY s.laufendenummer;";
516
517$v = array($gmlid,'istGebucht');
518$ress = pg_prepare("", $sql);
519$ress = pg_execute("", $v);
520if (!$ress) {
521        echo "\n<p class='err'>Keine Buchungsstelle.</p>\n";
522        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
523}
524$bs=0; // Z.Buchungsstelle
525while($rows = pg_fetch_array($ress)) {
526        $gmls=$rows["gml_id"]; // gml b-Stelle
527        $lfd=$rows["lfd"]; // BVNR
528
529        // B U C H U N G S B L A T T  zur Buchungsstelle (istBestandteilVon)
530        $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, ";
531        $sql.="z.bezeichnung ";  // stelle -> amtsgericht
532        $sql.="FROM alkis_beziehungen v "; // Bez. Stelle - Blatt
533        $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id ";
534        $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk ";
535        $sql.="WHERE v.beziehung_von= $1 "; // id Buchungsstelle
536        $sql.="AND v.beziehungsart= $2 ";
537        $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;";
538
539        $v = array($gmls,'istBestandteilVon');
540        $resg = pg_prepare("", $sql);
541        $resg = pg_execute("", $v);
542        if (!$resg) {
543                echo "\n<p class='err'>Kein Buchungsblatt.</p>\n";
544                if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";}
545        }
546        $bl=0; // Z.Blatt
547        while($rowg = pg_fetch_array($resg)) {
548                $gmlg=$rowg["gml_id"];
549                $beznam=$rowg["bezeichnung"];
550                $blattkeyg=$rowg["blattart"];
551                $blattartg=blattart($blattkeyg);
552
553                echo "\n<hr>";
554                echo "\n<table class='outer'>";
555                echo "\n<tr>"; // 1 row only
556                        echo "\n\t<td>"; // Outer linke Spalte:
557
558                                // Rahmen mit GB-Kennz
559                                if ($blattkeyg == 1000) {
560                                        echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>";
561                                }else {
562                                        echo "\n\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted
563                                }
564                                        echo "\n\t<tr>\n\t\t<td class='head'>Bezirk</td>";
565                                                echo "\n\t\t<td class='head'>".$blattartg."</td>";
566                                                echo "\n\t\t<td class='head'>Lfd-Nr.</td>";
567                                                echo "\n\t\t<td class='head'>Buchungsart</td>";
568                                        echo "\n\t</tr>";
569                                        echo "\n\t<tr>";
570                                                echo "\n\t\t<td title='Grundbuchbezirk'>";
571                                                        if ($showkey) {
572                                                                echo "<span class='key'>".$rowg["bezirk"]."</span><br>";
573                                                        }
574                                                echo $beznam."&nbsp;</td>";
575
576                                                echo "\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$rowg["blatt"]."</span></td>";
577
578                                                echo "\n\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundst&uuml;ck)'>".$rows["lfd"]."</td>";
579
580                                                echo "\n\t\t<td title='Buchungsart'>";
581                                                        if ($showkey) {
582                                                                echo "<span class='key'>".$rows["buchungsart"]."</span><br>";
583                                                        }
584                                                echo $rows["bart"]."</td>";
585                                        echo "\n\t</tr>";
586                                echo "\n\t</table>";
587
588                                // Miteigentumsanteil
589                                if ($rows["zaehler"] <> "") {
590                                        echo "\n<p class='ant'>".$rows["zaehler"]."/".$rows["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>";
591                                }
592                        echo "\n</td>";
593
594                        echo "\n<td>"; // Outer rechte Spalte: NW-Links
595                                if ($idanzeige) {
596                                        linkgml($gkz, $gmls, "Buchungsstelle");
597                                        echo "<br>";
598                                        linkgml($gkz, $gmlg, "Buchungsblatt");
599                                }
600                                echo "\n\t<p class='nwlink noprint'>weitere Auskunft:<br>";
601                                        echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlg."#bvnr".$lfd;
602                                                if ($idanzeige) {echo "&amp;id=j";}
603                                                if ($showkey)   {echo "&amp;showkey=j";}
604                                                if ($blattkeyg == 1000) {
605                                                        echo "' title='Grundbuchnachweis mit kompletter Eigent&uuml;merangabe'>";
606                                                } else {
607                                                        echo "' title='Grundbuchnachweis'>";
608                                                }
609                                                echo $blattartg." <img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''>";
610                                        echo "</a>";
611                                echo "\n\t</p>";
612                        echo "\n</td>";
613                echo "\n</tr>";
614                echo "\n</table>";
615
616                // +++ Weitere Felder ausgeben? BeschreibungDesUmfangsDerBuchung
617                if ($rows["sond"] != "") {
618                        echo "<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rows["sond"]."</p>";
619                }
620                if ($rows["nrpl"] != "") {
621                        echo "<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$rows["nrpl"]."</span> im Aufteilungsplan.</p>";
622                }
623
624                // E I G E N T U E M E R, zum GB
625                // Person <-benennt< AX_Namensnummer  >istBestandteilVon-> AX_Buchungsblatt
626                if ($eig=="j") { // Wahlweise mit/ohne EigentÃŒmer
627                        $n = eigentuemer($con, $gmlg, false, ""); // ohne Adresse
628                        if ($n == 0) {
629                                if ($blattkeyg == 1000) {
630                                        echo "\n<p class='err'>Keine Namensnummer gefunden.</p>";
631                                        linkgml($gkz, $gmlg, "Buchungsblatt");
632                                } else {
633                                        echo "\n<p>ohne Eigent&uuml;mer.</p>";
634                                }
635                        }
636                }
637                $bl++;
638        }
639        if ($bl == 0) {
640                echo "\n<p class='err'>Kein Buchungsblatt gefunden.</p>";
641                echo "\n<p class='err'>Parameter: gml_id= ".$gmls.", Beziehung='istBestandteilVon'</p>";
642                linkgml($gkz, $gmls, "Buchungstelle");
643        }
644
645        // Buchungstelle  >an>  Buchungstelle  >istBestandteilVon>  BLATT  ->  Bezirk
646        $sql ="SELECT s.gml_id AS s_gml, s.buchungsart, s.laufendenummer as lfd, ";
647        // , s.beschreibungdesumfangsderbuchung as umf   ?
648        $sql.="s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, ";
649        $sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, ";
650        $sql.="z.bezeichnung, a.bezeichner AS bart ";  // stelle -> amtsgericht
651        $sql.="FROM alkis_beziehungen an "; // Bez. Stelle - Stelle
652        $sql.="JOIN ax_buchungsstelle s ON an.beziehung_von = s.gml_id ";
653        $sql.="JOIN alkis_beziehungen v ON s.gml_id = v.beziehung_von "; // Bez. Stelle - Blatt
654        $sql.="JOIN ax_buchungsblatt  b ON v.beziehung_zu = b.gml_id ";
655        $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land = b.land AND z.bezirk = b.bezirk ";
656        $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert ";
657        $sql.="WHERE an.beziehung_zu = $1 "; // id herrschende Buchungsstelle
658        $sql.="AND an.beziehungsart = 'an' ";
659        $sql.="AND v.beziehungsart = 'istBestandteilVon' ";
660        $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
661        $v = array($gmls);
662        $resan = pg_prepare("", $sql);
663        $resan = pg_execute("", $v);
664        if (!$resan) {
665                echo "\n<p class='err'>Keine weiteren Buchungsstellen.</p>\n";
666                if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";}
667        }
668        $an=0; // Stelle an Stelle
669        while($rowan = pg_fetch_array($resan)) {
670                $beznam=$rowan["bezeichnung"];
671                $blattkeyan=$rowan["blattart"]; // Schluessel von Blattart
672                $blattartan=blattart($blattkeyan);                 echo "\n<hr>\n<table class='outer'>";
673                echo "\n<tr>"; // 1 row only
674                        echo "\n<td>"; // outer linke Spalte
675                                // Rahmen mit Kennzeichen GB
676                                if ($blattkeyan == 1000) {
677                                        echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>";
678                                } else {
679                                        echo "\n\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // dotted
680                                }
681                                        echo "\n\t<tr>";
682                                                echo "\n\t\t<td class='head'>Bezirk</td>";
683                                                echo "\n\t\t<td class='head'>".$blattartan."</td>";
684                                                echo "\n\t\t<td class='head'>Lfd-Nr,</td>";
685                                                echo "\n\t\t<td class='head'>Buchungsart</td>";
686                                        echo "\n\t</tr>";
687                                        echo "\n\t<tr>";
688                                                echo "\n\t\t<td title='Grundbuchbezirk'>";
689                                                if ($showkey) {echo "<span class='key'>".$rowan["bezirk"]."</span><br>";}
690                                                echo $beznam."</td>";
691
692                                                echo "\n\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$rowan["blatt"]."</span></td>";
693
694                                                echo "\n\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundst&uuml;ck)'>".$rowan["lfd"]."</td>";
695
696                                                echo "\n\t\t<td title='Buchungsart'>";
697                                                        if ($showkey) {echo "<span class='key'>".$rowan["buchungsart"]."</span><br>";}
698                                                        echo $rowan["bart"];
699                                                echo "</td>";
700                                        echo "\n\t</tr>";
701                                echo "\n\t</table>";
702                                if ($rowan["zaehler"] <> "") {
703                                        echo "\n<p class='ant'>".$rowan["zaehler"]."/".$rowan["nenner"]."&nbsp;Anteil am Flurst&uuml;ck</p>";
704                                }
705                        echo "\n</td>";
706                        echo "\n<td>"; // outer rechte Spalte
707                                if ($idanzeige) {
708                                        linkgml($gkz, $rowan["s_gml"], "Buchungsstelle");
709                                        echo "<br>";
710                                        linkgml($gkz, $rowan["g_gml"], "Buchungsblatt");
711                                }
712                                echo "\n<br>";
713                                echo "\n\t<p class='nwlink'>";
714                                        echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$rowan["g_gml"];
715                                                if ($idanzeige) {echo "&amp;id=j";}
716                                                if ($showkey)   {echo "&amp;showkey=j";}
717                                                echo "' title='Grundbuchnachweis mit kompletter Eigent&uuml;merangabe'>";
718                                                echo $blattartan;
719                                                echo " <img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''>";
720                                        echo "</a>";
721                                echo "\n\t</p>";
722                        echo "\n\t</td>";
723                echo "\n</tr>";
724                echo "\n</table>";
725
726                if ($blattkeyan != 1000) {
727                        echo "\n<p>Blattart: ".$blattartan." (".$blattkeyan.").<br>\n";
728                }
729                // +++ BeschreibungDesUmfangsDerBuchung ?
730                if ($rowan["nrpl"] != "") {
731                        echo "<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$rowan["nrpl"]."</span> im Aufteilungsplan.</p>";
732                }
733                if ($rowan["sond"] != "") {
734                        echo "<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rowan["sond"]."</p>";
735                }
736                if ($eig == "j") {
737                        $n = eigentuemer($con, $rowan["g_gml"], false, ""); // ohne Adresse
738                }
739                $an++; 
740        }
741        pg_free_result($resan);
742        $bs++;
743}
744pg_free_result($resg);
745if ($bs == 0) {
746        echo "\n<p class='err'>Keine Buchungstelle gefunden.</p>";
747        linkgml($gkz, $gmlid, "Flurst&uuml;ck");
748}
749pg_close($con);
750?>
751
752<form action=''>
753        <div class='buttonbereich noprint'>
754        <hr>
755                <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
756                <a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp;
757                <a title="Export Flurst&uuml;cksdaten als CSV" href='javascript:ALKISexportFS()'><img src="ico/download_fs.ico" width="32" height="16" alt="Export" /></a>&nbsp;
758                <a title="Export Grundbuchdaten als CSV" href='javascript:ALKISexportGB()'><img src="ico/download_gb.ico" width="32" height="16" alt="Export" /></a>&nbsp;
759<!--    <a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>     -->
760        </div>
761</form>
762
763<?php footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;eig=".$eig); ?>
764
765</body>
766</html>
Note: See TracBrowser for help on using the repository browser.