1) { $zblatt=trim($arr[1]); if (count($arr) > 2) { $zbvnr=trim($arr[2]); } else { $zbvnr=""; } } else { $zblatt=""; $zbvnr=""; } if ($zgbbez == "") { // keine Eingabe return 0; // Amtsgerichte oder Bezirke listen } elseif ( ! is_ne_zahl($zgbbez)) { // Alphabetische Eingabe return 1; // Such Bezirk-NAME } elseif ($zblatt == "") { return 2; // Such Bezirk-NUMMER } else { // Format von BlattNr pruefen //'19' linksbündig //'000019 ' gefüllt 6 + blank //'000019A' .. mit Zusatzbuchstabe //'0300001' gefüllt 7, bei Blattart 5000 "fiktives Blatt" $len=strlen($zblatt); if ($len > 0 AND $len < 8) { // Eingabe Länge 1 bis 7 // if (trim($zblatt, "0..9 ") == "") { if (preg_match('#^[0-9]{1,6}[ ]{0,1}$#', $zblatt)) { // Normalfall: nur Zahlen (und Blank am Ende)) $zblattn= rtrim(ltrim($zblatt, "0"), " "); $zblattz=""; } else { // Sonderfall: Zusatz-Buchstabe am Ende $zblattn=substr($zblatt,0,$len-1); $zblattz=strtoupper(substr($zblatt,$len-1,1)); // if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) { if (preg_match('#^[0-9]{1,6}$#', $zblattn) and preg_match('#^[A-Z]{1}$#', $zblattz)) { $zblattn= ltrim($zblattn, "0"); // ohne fuehrende Nullen } else { echo "

"; return 9; } } if ($zbvnr == "") { return 3; // Such BLATT } elseif (is_ne_zahl($zbvnr)) { // $zbvnr=ltrim($zbvnr,"0"); // DB-Format ist integer // Vorsicht, Wert "0" ist moeglich und gueltig return 4; // Such Grundstueck } else { echo "

"; return 9; } } else { echo "

"; return 9; } } } function suchfeld($suchstring) { // Suchstring Ausgeben UND das Eingabeformular damit belegen $out="".$suchstring.""; return $out; } // function Typ "zeile_**" = Ausgabe eines Knotens // - Icon, ggf. mit Link zur Buchauskunft // - Zeile, ggf. mit Link zur weiteren Auflösung untergeordneter Knoten // Hierin die Encodierung für url und HTML. function zeile_ag ($ag, $anr, $aktuell) { // Zeile A m t s g e r i c h t global $gkz, $gemeinde, $epsg, $auskpath; if ($ag == "") { $agd=$anr; // Ersatz: Nummer statt Name. Besser: Name immer füllen } else { $agd=htmlentities($ag, ENT_QUOTES, "UTF-8"); } if ($aktuell) {$cls=" aktuell";} else {$cls="";} echo "\n

" ."\n\t\tAG " ."AG " .$agd." (".$anr.")" ."\n
"; return; } function zeile_gbbez ($gnam, $zgbbez, $aktuell) { // Zeile Grundbuch - B e z i r k // Parameter: aktuell = Bool für farbliche Markierung der Zeile als aktuell angeklicktes Obj. global $gkz, $gemeinde, $epsg, $person; $gnamd=htmlentities($gnam, ENT_QUOTES, "UTF-8"); if ($aktuell) {$cls=" aktuell";} else {$cls="";} echo "\n
" ."\n\t\tBez. " ."" ."Bezirk ".$gnamd." (".$zgbbez.")"; } else { // Grundbuch-Suche echo "'>" ."Bezirk ".$gnamd." (".suchfeld($zgbbez).")"; } echo "\n
"; return; } function zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, $dienend, $person, $aktuell) { // Zeile Grundbuch - B l a t t // Aufruf aus Teil "Grundbuch" und Teil "Eigentümer" // Parameter $beznam = Name des GB-Bezirks. Sollte nur gefüllt sein, bei dienendem Blatt ("Recht an"). Wird vor die Zeile gesetzt. // Normalerweise steht der Bezirk als Header-Zeile darüber. global $gkz, $gemeinde, $epsg, $auskpath; $blattd=ltrim($blatt, "0"); // Display-Version ohne führende Nullen if ($dienend) {$dientxt="dienendes ";} else {$dientxt="";} $blattlnk=urlencode($blatt); // trailing Blank if ($beznam != "") {$nam = $beznam." ";} else {$nam="";} if ($aktuell) {$cls=" aktuell";} else {$cls="";} echo "\n
"; // Icon / Nachweis if ($blattgml == "") { // Link zum Nachweis nur wenn GML bekannt echo "\n\tBlatt"; } else { echo "\n\t" ."\n\t\tBlatt" ."\n\t "; } // Text, Self-Link echo $nam." Blatt ".$blattd."\n
"; return; } function zeile_buchung($buchunggml, $bvnr, $blattkennz, $dienend, $aktuell) { // Zeile B u c h u n g s s t e l l e - Grundstück ausgeben global $gkz, $gemeinde, $epsg, $auskpath, $debug; //if ($debug > 1) {echo "

function zeile_buchung()

";} // Ablauf-Verfolgung if ($bvnr == 0) { // Keine echten BVNR vergeben (z.B. Lippe) $bvnra = "-"; // Fehlanzeige } else { $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen } if ($dienend) { $ti="dienendes "; $re="Recht an "; } else { $ti=""; $re=""; } if ($aktuell) {$cls=" aktuell";} else {$cls="";} echo "\n

"; // Icon / Nachweis if ($buchunggml == "") { // Link zum Nachweis nur wenn GML bekannt echo "\n\tGS ".$re; } else { echo "\n\t" ."\n\t\tBuchung ".$re ."\n\t "; } if ($blattkennz == "") { // ohne Link echo "Buchung ".$bvnra; } else { $gbkennlnk=urlencode($blattkennz."-".$bvnr); // Trailing Blanks! echo "Buchung ".$bvnra.""; } echo "\n
"; return; } function zeile_gemeinde ($gmdnr, $gmdname, $aktuell) { // Eine Kopf-Zeile zu Gemeinde ausgeben global $gkz, $gemeinde, $epsg; $stadt=htmlentities($gmdname, ENT_QUOTES, "UTF-8"); $bez=urlencode($gmdname); if ($aktuell) {$cls=" aktuell";} else {$cls="";} echo "\n
" ."\n\t\tStadt" ." Gem. " ." ".$stadt." (".substr($gmdnr, 5).")" ."\n
"; return; } function zeile_gemarkung($gkgnr, $gkgname, $aktuell) { // Eine Kopf-Zeile zur Gemarkung ausgeben global $con, $gkz, $gemeinde, $epsg, $gfilter; if ($gkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen $sql ="SELECT bezeichnung FROM ax_gemarkung WHERE gemarkungsnummer = $1 LIMIT 1;"; $v=array($gnr); $res=pg_prepare("", $sql); $res=pg_execute("", $v); if (!$res) {echo "\n

Fehler bei Gemarkungsname.

";} $row = pg_fetch_array($res); $gkgname=$row["bezeichnung"]; } if ($gkgname == "") {$gkgname = "(unbekannt)";} $gnam=htmlentities($gkgname, ENT_QUOTES, "UTF-8"); if ($aktuell) {$cls=" aktuell";} else {$cls="";} echo "\n
" ."\n\t\tGKG" ." OT " ." ".$gnam." (".substr($gkgnr, 2).")" ."\n
"; return; } function zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur, $aktuell) { // Zeile mit Icon (Link zum Buch-Nachweis) und Text (Link zum Positionieren) global $gkz, $gemeinde, $epsg, $auskpath, $scalefs; if ($aktuell) {$cls=" aktuell";} else {$cls="";} echo "\n
" ."\n\t" ."\n\t\tFS" ."\n\t\n\t"; echo " "; if ($gmkg == "" ) { echo "Flst. "; // Im FS-Teil: Gem+Flur als Knoten darüber ($gmkg und $flur leer) } else { echo $gmkg." "; // Im GB-und Nam-Teil in der Zeile angezeigt } if ($flur != "" ) {echo $flur."-";} echo $fskenn."\n
"; return; } function zeile_person ($persongml, $nachname, $vorname) { // Zeile P e r s o n (oder Firma) global $gkz, $gemeinde, $epsg, $auskpath; $nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8"); $namlnk=urlencode(substr($nachname,0,50)); $vnam=htmlentities($vorname, ENT_QUOTES, "UTF-8"); // Link zur Auskunft Person, Icon differenzieren nach Eigentuemerart? echo "
" ."\n\t" ."\n\t\tEIG" ."\n\t" ."\n\t".$nnam.", ".$vnam."" ."
"; return; } function zeile_strasse ($gkey, $skey, $sname, $kgml, $gemname) { // Listen-Zeile (nicht Kopfzeile) für eine gefundenen Straße ausgeben. // Die Kopfzeile über den Hausnummern hat einen zusätzlichen Koordinaten-Map-Link, das ist in der Liste zu aufwändig? global $gkz, $gemeinde, $epsg, $auskpath, $gfilter, $debug; echo "\n\t
"; // Icon -> Buchnachweis echo "\n\t" ."\n\t\tSTR" ."\n\t"; // Zeile -> Suche HsNr echo " ".$sname ." (".$skey.")"; // Die Gemeinde dahinter falls mehrere möglich switch ($gfilter) { case 0: // Kein Filter echo " in ".$gemname; break; case 2: // Liste echo " in ".$gemname; break; } echo "
"; return; } function GB_Buchung_FS ($linelimit, $blattgbkenn) { // Zu einem Grundbuch-Blatt (identifiziert über seine gml_id) suchen der // Buchungen (Gruppenwechsel) und Flurstücke (Links) global $gemeinde, $blattgml, $epsg, $gfilter, $debug, $katamtmix; // SQL-Bausteine // vorne gleich $sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; // f.gemeindezugehoerigkeit_gemeinde, ? if($epsg == "25832") { // Transform nicht notwendig $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, st_y(st_centroid(f.wkb_geometry)) AS y, "; } else { $sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, " ."st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; } $sql1.="g.bezeichnung FROM ax_buchungsstelle s1 "; // zwischen, Variante 1. $sqlz1="JOIN ax_flurstueck f ON f.istgebucht=s1.gml_id "; // zwischen, Variante 2. Nur an oder "an" und "zu"? $sqlz2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id=ANY(s1.an) " ."JOIN ax_flurstueck f ON f.istgebucht=s2.gml_id "; // hinten gleich $sql2 ="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; if ($katamtmix){$sql2.="AND substr(f.gml_id, 1, 6) = substr(g.gml_id, 1, 6) ";} $sql2.="WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL "; switch ($gfilter) { case 1: // Einzelwert $sql2.="AND f.gemeindezugehoerigkeit_gemeinde='".$gemeinde."' "; break; case 2: // Liste $sql2.="AND f.gemeindezugehoerigkeit_gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; } // WHERE-Zusatz bei 2 $sqlw2=" AND s2.endet IS NULL "; $sqlord="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, cast(f.zaehler AS integer), cast(f.nenner AS integer) LIMIT $2 ;"; // d i r e k t e B u c h u n g e n // Blatt Fehler bei Buchung und Flurstück.

"; if ($debug >= 3) {echo "\n

SQL='".$sql1.$sqlz1.$sql2.$sqlord."'
$1 = '".$blattgml."'

";} return; } $zfs1=0; $gwbv=""; while($row = pg_fetch_array($res)) { $bvnr=$row["lfd"]; $bsgml=$row["bsgml"]; // Buchungsstelle gml_id if ($gwbv != $bvnr) { // Gruppierung Buchungs-Stelle (BVNR) $gwbv = $bvnr; zeile_buchung($bsgml, $bvnr, $blattgbkenn, false, false); } $fs_gml=$row["gml_id"]; $gmkg=$row["bezeichnung"]; $flur=$row["flurnummer"]; $fskenn=$row["zaehler"]; if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr $x=$row["x"]; $y=$row["y"]; zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur, false); $zfs1++; } // "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet if($zfs1 > 1) { // ab 2 echo "\n

".$zfs1." Flurstücke zum Grundbuch"; if($zfs1 >= $linelimit) { echo "... und weitere"; //++ Blättern einführen? } echo "

"; } if($zfs1 > 0) {echo "
";} // Trennen // Rechte "an" (dienende Buchungen) $v=array($blattgml, $linelimit); $res=pg_prepare("", $sql1.$sqlz2.$sql2.$sqlw2.$sqlord); $res=pg_execute("", $v); if (!$res) { echo "\n

Fehler bei Recht an Buchung.

"; #if ($debug >= 3) {echo "\n

".$sql1.$sqlz2.$sql2.$sqlw2.$sqlord."

";} return; } $zfs2=0; $gwbv=""; while($row = pg_fetch_array($res)) { $bvnr=$row["lfd"]; $bsgml=$row["bsgml"]; // Buchungsstelle gml_id if ($gwbv != $bvnr) { // Gruppierung Buchung (BVNR) - dienend $gwbv = $bvnr; zeile_buchung($bsgml, $bvnr, $blattgbkenn, true, false); } $fs_gml=$row["gml_id"]; $gmkg=$row["bezeichnung"]; $flur=$row["flurnummer"]; $fskenn=$row["zaehler"]; if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer zeile_flurstueck ($fs_gml, $fskenn, $row["x"], $row["y"], $gmkg, $flur, false); $zfs2++; } // Foot if($zfs1 + $zfs2 == 0) { echo "\n

Kein Flurstück im berechtigten Bereich.

"; } elseif($zfs2 > 1) { // keine Meldung "nichts gefunden - Rechte an" wenn Treffer in Teil 1 echo "\n

".$zfs2." Rechte an Flurst."; if($zfs2 >= $linelimit) { echo "... und weitere"; // Blättern einführen? } echo "

"; } return; } ?>