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

Revision 128, 29.9 KB checked in by frank.jaeger, 12 years ago (diff)

Erweiterung der ALKIS-Buchauskunft im Bereich Flurstücks-Historie.
Symbole für die Doku: .ico nach .png konvertiert

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