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

Revision 198, 30.4 KB checked in by frank.jaeger, 11 years ago (diff)

Buchauskunft: Umstellen der Schaltflächen am unteren Rand auf Symbole statt Buchstaben,
CSV-Download von FS- und GB-Daten,
begonnene Änderungen teilweise noch nicht fertig gestellt (siehe Kommentare).

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