Index: trunk/info/info/alkisn/alkisfsnw.php =================================================================== --- trunk/info/info/alkisn/alkisfsnw.php (revision 398) +++ trunk/info/info/alkisn/alkisfsnw.php (revision 399) @@ -16,6 +16,14 @@ 2017-10-17 Zeitpunkt der Entstehung in deutschen Datumsformat 2017-11-03 Wertelisten fÌr Arrays in BodenschÀtzung ausgeben. - - ToDo: + 2017-12-08 Planung (Kommentare) der Erweiterung fÌr Berechtigte GrundbÌcher + 2017-12-20 Links auf Lagebezeichnung verbessert. + ++++ ToDo: +++ + - Wenn nur 1 Buchung auf der nÀchsten Stufe "Recht an" vorliegt (z.B. Erbbaurecht), dann sofort anzeigen. $berbu='' + Bei vielen Buchungen auf der nÀchsten Stufe (Miteigentumsanteil) nur die Anzahl, erst auf Anforderung (Parameter) &berbu='j' oder 2,3,4,fÌr maximale Stufen. + Anzahl weiterer "Rechte an" auf jeder Stufe anzeigen, auch wenn noch kein Link möglich ist. + MEHR: Alle "Rechte an" RÌckwÀrts auflisten analog View "buchungsrechte_3text". Bis zu 4 Buchungen weit. + Im Gegensatz zum "Bestandsnachweis" aber nur je eine BVNR weiter verfolgen, die auf dies eine FlurstÌck bezogen ist. + Dabei berechtigte Buchungen VOR dem Grundbuch anzeigen, also eine Berechtigungs-"Hierarchie" abbilden. - Parameter zum Umschalten mit/ohne BodenschÀtzung? - Bessere Differenzierung bei den Nutzungsarten (Tabelle dafÌr aufbauen) @@ -286,7 +294,8 @@ // ** L a g e b e z e i c h n u n g ** -// Lagebezeichnung MIT Hausnummer +// Lagebezeichnung M I T Hausnummer + // ax_flurstueck >weistAuf> AX_LagebezeichnungMitHausnummer -$sql="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung +$sql="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung, s.gml_id AS kgml FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistauf) JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage @@ -306,6 +315,13 @@ } else { $j=0; + $kgmlalt=""; while($row = pg_fetch_array($res)) { - $sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name + $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name + if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau + $slink=" am ".$sname; + } else { + $slink=" an der ".$sname; + } + $hsnr=$row["hausnummer"]; echo "\n
Keine BodenschÀtzung gefunden
"; -// if ($debug > 2) {echo "\nSQL=
".$sql."
$1 = gml_id = '".$gmlid."'
".$cnt." Eigentümer mit '".$name."'
"; // im Limit @@ -213,8 +256,8 @@ // Body // Suche nach GrundbÃŒchern der Person - $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam - FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon=gb.gml_id - JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk - WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL;"; + $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam " + ."FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon=gb.gml_id " + ."JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk " + ."WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL;"; // Parameter $gbkennz, z.B. nach Klick auf Zeile "Bezirk" @@ -275,7 +318,7 @@ $nxtbltblatt=urlencode($blatt); $nxtbltseite=$bltseite + 1; - echo "\n - weitere"; - echo ""; + echo "\n - weitere" + .""; } elseif($cnt == 1) { // Eindeutig! $blattgml=$gml; // dann Stufe 3 gleich nachschieben @@ -305,7 +348,7 @@ // Grundbuch-Daten ermitteln - $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam "; - $sql.="FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; - $sql.="WHERE gb.gml_id= $1 AND gb.endet IS NULL and b.endet IS NULL LIMIT 1 ;"; + $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam " + ."FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk " + ."WHERE gb.gml_id= $1 AND gb.endet IS NULL and b.endet IS NULL LIMIT 1 ;"; $v=array($blattgml); $res=pg_prepare("", $sql); @@ -353,19 +396,18 @@ // Baustein 1: SQL-Anfang fuer beide Varianten - $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam, - s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemashl, trim(trailing from ot.gemarkung) AS gemarkungsname, "; + $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam, " + ."s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemashl, trim(trailing from ot.gemarkung) AS gemarkungsname, "; if($epsg == "25832") { // Transform nicht notwendig - $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; - $sql1.="st_y(st_centroid(f.wkb_geometry)) AS y "; + $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, "; - $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y "; + $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 "; } // NamenNummer >istbestandteilvon> buchungsblatt"; @@ -567,9 +609,9 @@ $nxtbltblatt=urlencode($blatt); $nxtbltseite=$bltseite + 1; - echo "\n - weitere"; - echo "
"; + echo "\n - weitere" + .""; } elseif($zfs2 > 1) { // ab 2 echo "\n"; @@ -589,18 +631,18 @@ // 3. gb = gml_id des Grundbuches -> Suche nach FlurstÃŒcken -if(isset($epsg)) { - $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); +// Validation: Eingabefeld aus Formular. Wird aber auch an Link angehÀngt (LÀnge!) +// Suchbegriff (EigentÃŒmer) +// Hier formatierte Meldung und html-Foot. +if (isset($name) and $name != "" ) { + if (!preg_match('#^[a-zA-Z0-9ÀöÌÃÃÃÃ*,. \-&/]{1,50}$#', $name)) { + echo "
Eingabe unzulässig!
"; + // if ($debug > 1) {echo "Name='".$name."' LÀnge='".strlen($name)."
";} + $name=""; + } } else { - $epsg=$gui_epsg; // aus Conf -} -if ($gemeinde == "") { - $gfilter = 0; // Gemeinde ungefiltert -} elseif(strpos($gemeinde, ",") === false) { - $gfilter = 1; // Gemeinde Einzelwert -} else { - $gfilter = 2; // Gemeinde Filter-Liste -} - -$kennztyp=ZerlegungGBKennz($gbkennz); // Grundbuch-Kennzeichen aus Parameter zerlegen: $z__ + $name=""; +} + +$kennztyp=ZerlegungGBKennz($gbkennz); // Grundbuch-Kennzeichen aus Parameter zerlegen // 2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR @@ -633,7 +675,6 @@ if ($kennztyp > 1) { $trans="Grdb. und Flst. von .. in .."; // Filter GB-Bez, - // darunter sind dann Name und Bezirk farblich markiert } else { - $trans="Grundb. und Flurst. von .."; // der EigentÃŒmer steht darunter + $trans="Grundb. und Flurst. von .."; // Name steht darunter } getGBuFSbyPerson(); // Schritte 2+3 gleichzeitig, dabei Gemeinde-Filter auf Stufe 3 @@ -645,5 +686,5 @@ getEigByName(); // Suchen nach Namensanfang - if($person != "") { // genau EIN Treffer zum Namen + if($person != "") { // genau EIN Treffer zum gesuchten Namen if ($gfilter == 0) { $trans="Grundbücher zum Namen"; Index: trunk/mapbender/http/nav/alkisnav_adr.php =================================================================== --- trunk/mapbender/http/nav/alkisnav_adr.php (revision 398) +++ trunk/mapbender/http/nav/alkisnav_adr.php (revision 399) @@ -1,12 +1,11 @@ 0) { // Koord. bekommen? - echo "\n\t\n\t\t".$sname." (".$nr.")\n\t"; + echo "\n\t\n\t\t".$sname." (".$nr.")\n\t"; } else { // keine Koord. gefunden echo $sname." (".$nr.")"; // nur Anzeige, ohne Link @@ -276,15 +302,14 @@ $sql="SELECT min(replace(h.hausnummer,' ','')) AS hsnr, "; if($epsg == "25832") { // Transform nicht notwendig - $sql.="avg (st_x(p.wkb_geometry)) AS x, "; - $sql.="avg (st_y(p.wkb_geometry)) AS y "; + $sql.="avg (st_x(p.wkb_geometry)) AS x, avg (st_y(p.wkb_geometry)) AS y "; } else { - $sql.="avg (st_x(st_transform(p.wkb_geometry,".$epsg."))) AS x, "; - $sql.="avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y "; - } - $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON h.gml_id=ANY(p.dientzurdarstellungvon) - WHERE p.art='HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 - AND p.endet IS NULL AND h.endet IS NULL - GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2) - ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; + $sql.="avg (st_x(st_transform(p.wkb_geometry,".$epsg."))) AS x, " + ."avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y "; + } + $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON h.gml_id=ANY(p.dientzurdarstellungvon) " + ."WHERE p.art='HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 " + ."AND p.endet IS NULL AND h.endet IS NULL " + ."GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2) " + ."ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; // Problem: In der Datenbank gibt es mehrere hausnummern-Koordinaten fÃŒr verschiedene // MaÃstÀbe der Kartendarstellung @@ -312,14 +337,12 @@ $x=$rowh["x"]; $y=$rowh["y"]; - echo "\n\tEingabe unzulässig!
"; + $street=""; + } } else { - $epsg=$gui_epsg; // aus Conf -} - -// Filter auf Zustaendigkeit z.B. ein Stadtgebiet -if ($gemeinde == "") { - $gfilter = 0; // ungefiltert -} elseif(strpos($gemeinde, ",") === false) { - $gfilter = 1; // Einzelwert -} else { - $gfilter = 2; // Liste -} -// ax_lagebezeichnungkatalogeintrag.gemeinde: z.B. Classic='40' / NorBit = '040' -// Im Mapbender mit fuehrenden Nullen eingeben: gazetteer_alkis.SRC -// alkisnav.htm?..&gemeinde=040&.. - -// +++Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage": Numerisch: Gem-Str-Haus-lfd - -if ($str_schl != "") { // Wert kommt aus aus Link + $street=""; +} + +if ($str_schl != "") { // aus Link $trans="Hausnummern zur Straße"; suchHausZurStr(true); -// Wert aus Eingabe in Formular -} elseif($street != "") { +} elseif($street != "") { // Eingabe in Formular if (trim($street, "*,0..9, ") == "") { // Zahl, ggf. mit Wildcard $trans="Suche Straßenschlüssel \"".$street."\""; Index: trunk/mapbender/http/nav/alkisnav_grd.php =================================================================== --- trunk/mapbender/http/nav/alkisnav_grd.php (revision 398) +++ trunk/mapbender/http/nav/alkisnav_grd.php (revision 399) @@ -1,20 +1,65 @@ Geben sie ein: '".$zgbbez."-999A'".$cntbl." Blätter
"; // im Limit @@ -261,6 +305,6 @@ // Kennzeichen "Bezirk + Blatt" eingegeben. Dazu die gml_id des Blattes ermitteln. global $debug, $zgbbez, $zblatt, $zblattn, $zblattz; - $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b - WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; + $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b " + ."WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; if ($zblattz == "") { // Ohne Buchstabenerweiterung: Formate '123','000123 ','0000123' @@ -310,7 +354,7 @@ // Blatt -> B u c h u n g s s t e l l e - $sql ="SELECT s.gml_id FROM ax_buchungsstelle s - JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id - WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; + $sql ="SELECT s.gml_id FROM ax_buchungsstelle s " + ."JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id " + ."WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; if ($zblattz == "") { // Ohne Buchstabenerweiterung @@ -425,16 +469,14 @@ // Recht "an" (dienende Buchungen und ihre Flurst.) -$sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, -bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, -gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez -FROM ax_buchungsstelle sh -JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) -JOIN ax_flurstueck f ON f.istgebucht=sd.gml_id -JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer -JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id -JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk -WHERE sh.gml_id = $1 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND bd.endet IS NULL AND gd.endet IS NULL " - -.$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; + $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, " + ."gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez " + ."FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) " + ."JOIN ax_flurstueck f ON f.istgebucht=sd.gml_id " + ."JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer " + ."JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id " + ."JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk " + ."WHERE sh.gml_id = $1 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND bd.endet IS NULL AND gd.endet IS NULL " + + .$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; $v=array($buchunggml); @@ -496,18 +538,15 @@ // Start hier! // =========== -if(isset($epsg)) { - $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); + +// Validation: Eingabefeld aus Formular. +// Suchbegriff (Bezirksname) oder Grundbuch-Kennzeichen gggg-999999z-BVNR (17). +// Hier formatierte Meldung und html-Foot. +if (isset($gbkennz) and $gbkennz != "" ) { + if (!preg_match('#^[0-9a-zA-ZÀöÌÃÃÃÃ* -]{1,25}$#', $gbkennz)) { + echo "Eingabe unzulässig!
"; + $gbkennz=""; + } } else { - $epsg=$gui_epsg; // aus Conf -} - -// Filter aus Conf-Datei -if ($gemeinde == "") { - $gfilter = 0; // ungefiltert -} elseif(strpos($gemeinde, ",") === false) { - $gfilter = 1; // Einzelwert -} else { - $gfilter = 2; // Liste -// $gemeinde = "'".str_replace(",", "','", $gemeinde)."'"; // Jedes Element in '' + $gbkennz=""; } Index: trunk/mapbender/http/nav/alkisnav_fls.php =================================================================== --- trunk/mapbender/http/nav/alkisnav_fls.php (revision 398) +++ trunk/mapbender/http/nav/alkisnav_fls.php (revision 399) @@ -1,20 +1,63 @@ = 1) {echo "\ngemeinde='".$gemeinde."'. gfilter='".$gfilter."'
";} + +// Validation: Eingabefeld aus Formular. +// Suchbegriff (Gemarkungsname) oder FlurstÃŒcks-Kennzeichen (ll)gggg-fff-zzzz/nnn (11). +// Hier formatierte Meldung und html-Foot. +if (isset($fskennz) and $fskennz != "" ) { + if (!preg_match('#^[0-9a-zA-ZÀöÌÃÃÃÃ* -]{1,25}$#', $fskennz)) { + echo "Eingabe unzulässig!
"; + $fskennz=""; + } } else { - #if ($debug >= 1) {echo "\nkein EPSG gesetzt
";} - $epsg=$gui_epsg; // Conf -} - -// Filter aus Mapbender-GUI-Einbindung -if ($gemeinde == "") { - $gfilter = 0; -} elseif(strpos($gemeinde, ",") === false) { - $gfilter = 1; // Einzelwert -} else { - $gfilter = 2; // Liste -} -if ($hist == "j") {$phist = true;} else {$phist = false;} - + $fskennz=""; +} + if($gm != "") { // Self-Link aus Gemeinde-Liste $trans="Gemarkungen zur Gemeinde"; @@ -821,6 +865,5 @@ } -// Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion -// im Kopf des Ergebnisrahmens anzeigen. +// Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion im Kopf des Ergebnisrahmens anzeigen. // Dazu die im HTML-Header definierte Javascript-Function benutzen. // Alternativ wird auch aus dem Javascript "positionieren Karte" dieser Titel gesetzt. @@ -829,5 +872,4 @@ transtitle('".$trans."'); "; - ?> Index: trunk/mapbender/http/nav/alkisnav_fkt.php =================================================================== --- trunk/mapbender/http/nav/alkisnav_fkt.php (revision 398) +++ trunk/mapbender/http/nav/alkisnav_fkt.php (revision 399) @@ -1,10 +1,10 @@ "; - echo "\n\t\t "; - echo "AG "; - echo $agd." (".$anr.")"; - echo "\n"; + echo "\nfunction zeile_strasse()
";} // Ablauf-Verfolgung echo "\n\t