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

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