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

Revision 123, 29.3 KB checked in by frank.jaeger, 13 years ago (diff)

Neue Flurstücks-Historie zur Buchauskunft, DB-Schema mit neuem Index, Konvertierungs-Scripte ohne User und Passwort

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