Index: trunk/data/mapbender/http/nav/alkisnav.css =================================================================== --- trunk/data/mapbender/http/nav/alkisnav.css (revision 60) +++ trunk/data/mapbender/http/nav/alkisnav.css (revision 66) @@ -1,11 +1,11 @@ /* Style fuer ALKIS-Navigation - Vers. 2010-11-23 + Version 2011-01-10 */ body,p,a,.textfield,.sbutton,.cityText,.streetText,.city {font-family: Verdana, Arial, Helvetica, sans-serif;} -body { font-size: 11px; color: #000000; margin: 0px;} +body {font-size: 11px; color: #000000; margin: 0px;} p {font-size: 10px;} -p.hilfe {font-size: 9px; text-align: right; color: gray;} /* Programmier-Hilfsfelder */ -p.start {font-size: 9px; color: gray;} +p.hilfe {font-size: 9px; text-align: right; color: gray;} /* Programmier-Hilfsfelder */ +p.start {font-size: 9px; color: gray;} p.nam {font-size: 10px; border: 1px solid navy; padding: 3px; margin: 0px;} p.err {font-size: 11px; color: red;} @@ -16,14 +16,22 @@ a:active {color: red;} -/* abgestufte Treffer in Suche */ +/* abgestuft eingerueckte Treffer in Suche */ div {margin: 0px; padding: 0px;} div.back {font-size: 10px; color: gray; border-bottom: 1px dotted gray;} div.nam {color: maroon;} /* Name */ -div.gb {color: green; margin-left: 6px;} /* Grundbuch */ -div.gk {color: black; margin-left: 0px; margin-top: 6px;} /* Gemarkung */ -div.fl {color: olive; margin-left: 6px; margin-top: 4px;} /* Flur */ -div.fs {color: navy; margin-left: 12px; margin-top: 0px;} /* Flurstueck */ +div.gb {color: green; margin-left: 6px;} /* Grundbuch */ +div.gk {color: black; margin-left: 0px; margin-top: 6px;} /* Gemarkung */ +div.fl {color: olive; margin-left: 9px; margin-top: 4px;} /* Flur */ div.st {color: maroon;} +div.gs {color: olive; margin-left: 12px; margin-top: 2px;} /* Grundstueck, BVNR */ +div.fs {color: navy; margin-left: 18px; margin-top: 0px;} /* Flurstueck */ +/* Abstufungen (margin-left) + Adr.: + Name: + Flst: gk - fl - fs + Grdb: gk - gb - gs - fs + 0 6 9 12 18 + */ td.hsnr {text-align: center; margin: 2px;} hr {color: gray;} @@ -57,5 +65,5 @@ width: 220px; text-align: left; - border:0px dashed #00aa00; + border: 0px dashed #00aa00; } div#tabs li { @@ -83,7 +91,7 @@ /* passt in Mapbender 2.5: tabs width=280, tab_frameHeight[n]=360 */ iframe.OuterFrame{ - width: 260px; height: 330px; + width: 250px; height: 330px; padding: 0px; margin: 0px; - border:0px dotted #ff0000; + border: 0px dotted #ff0000; overflow: hidden; background-color: white; @@ -94,4 +102,4 @@ width: 235px; height: 220px; padding: 0px; margin: 0px; - border:0px dotted #00ff00; + border: 0px dotted #00ff00; } Index: trunk/data/mapbender/http/nav/alkisnav_fls.php =================================================================== --- trunk/data/mapbender/http/nav/alkisnav_fls.php (revision 66) +++ trunk/data/mapbender/http/nav/alkisnav_fls.php (revision 66) @@ -0,0 +1,328 @@ + + + + +
+ + + + +"; + return 0; + } elseif ($znenner == "") { + return 4; + } elseif (is_ne_zahl($znenner)) { + return 5; + } else { + echo "
"; + return 0; + } + } +} + +function SuchGmkgName() { +// Gemarkung suchen nach Name(-nsanfang) + global $con, $gkz, $gemeinde, $debug, $fskennz; + $linelimit=120; + if(preg_match("/\*/",$fskennz)){ + $match = trim(preg_replace("/\*/i","%", strtoupper($fskennz))); + } else { + $match = trim($fskennz)."%"; + } + $sql ="SELECT v.gemeindename, g.gemarkungsnummer, g.bezeichnung "; + $sql.="FROM ax_gemarkung g JOIN gemeinde_gemarkung v ON g.gemarkungsnummer=v.gemarkung "; + $sql.="WHERE bezeichnung ILIKE $1 "; + // GUI-Parameter filtert auf Gemeindegebiet + if($gemeinde > 0) {$sql.=" AND v.gemeinde=".$gemeinde;} // wie prepared? + $sql.=" ORDER BY g.bezeichnung LIMIT $2 ;"; + $v=array($match, $linelimit); + $res=pg_prepare("", $sql); + $res=pg_execute("", $v); + if (!$res) { + echo "\n
Fehler bei Gemarkung
"; + if ($debug >= 3) {echo "\n".$sql."
";} + return 0; + } + $cnt = 0; + while($row = pg_fetch_array($res)) { + $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); + $gnr=$row["gemarkungsnummer"]; + $stadt=$row["gemeindename"]; + echo "\nKeine Gemarkung.
"; + } elseif($cnt >= $linelimit) { + echo "\n... und weitere
"; + } elseif($cnt == 1) { // Eindeutig! + return $gnr; + } + return 0; +} + +function EineGemarkung($AuchGemkZeile) { + // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben + global $con, $gkz, $gemeinde, $debug, $zgemkg; + $linelimit=120; // max. Fluren je Gemarkung + if ($AuchGemkZeile) { + $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; // WHERE f.land= ? + $v=array($zgemkg); + $res=pg_prepare("", $sql); + $res=pg_execute("", $v); + if (!$res) {echo "\nFehler bei Gemarkung.
";} + $zgmk=0; + while($row = pg_fetch_array($res)) { + $gmkg=$row["bezeichnung"]; + $zgmk++; + } + if ($zgmk == 0) { + echo "\n"; + echo " Gemarkung ".$zgemkg." ist unbekannt.
"; + echo "\nFehler bei Flur.
";} + $zfl=0; + while($row = pg_fetch_array($res)) { + $flur=$row["flur"]; + echo "\nKeine Flur.
"; + } elseif($cnt >= $linelimit) { + echo "\n... und weitere
"; + } + return; +} + +function EineFlur() { + // Kennzeichen bestehend aus Gemarkung und Flurnummer wurde eingegeben + global $con, $gkz, $gemeinde, $debug, $scalefs, $epsg, $auskpath, $zgemkg, $zflur; + $linelimit=600; // Wie groà kann eine Flur sein? + $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; + $v=array($zgemkg); + $res=pg_prepare("", $sql); + $res=pg_execute("", $v); + if (!$res) {echo "\nFehler bei Gemarkung.
";} + $zgmk=0; + while($row = pg_fetch_array($res)) { + $gmkg=$row["bezeichnung"]; + $zgmk++; + } + if ($zgmk == 0) { + echo "\n"; + echo " Gemarkung ".$zgemkg." ist unbekannt.
"; + echo "\nFehler bei Flur.
";} + $zfs=0; + while($row = pg_fetch_array($res)) { + $fs_gml=$row["gml_id"]; + $flur=$row["flurnummer"]; + $fskenn=$row["zaehler"]; + if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer + $x=$row["x"]; + $y=$row["y"]; + echo "\nKein Flurstück.
"; + } elseif($zfs >= $linelimit) { + echo "\n... und weitere
"; + } + return; +} + +function nurEinFlurstueck() { + // FlurstÃŒckskennzeichen komplett bis zum Zaehler eingegeben + // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler + global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $zgemkg, $zflur, $zzaehler, $znenner; + + $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; + $sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; + $sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; + $sql.="g.gemarkungsnummer, g.bezeichnung "; + $sql.="FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; + $sql.="WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; + If ($znenner != "") {$sql.="AND f.nenner=".$znenner." ";} // wie prepared? + $sql.="ORDER BY f.zaehler, f.nenner;"; + // WHERE f.land= ? + $v=array($zgemkg, $zflur, $zzaehler); + $res=pg_prepare("", $sql); + $res=pg_execute("", $v); + if (!$res) {echo "\nFehler bei Flurstück.
";} + $zfs=0; + while($row = pg_fetch_array($res)) { + $fs_gml=$row["gml_id"]; + $gmkg=$row["bezeichnung"]; + $flur=$row["flurnummer"]; + $fskenn=$row["zaehler"]; + if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer + $x=$row["x"]; + $y=$row["y"]; + echo "\nKein Flurstück.
";} + return; +} + +// =========== +// Start hier! +// =========== +if(isset($epsg)) { + if ($debug >= 2) {echo "aktueller EPSG='".$epsg."'
"; } // aus MB + if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);} +} else { + if ($debug >= 2) {echo "kein EPSG gesetzt
";} + $epsg=$gui_epsg; // aus Conf +} +if ($debug >= 2) { + if(isset($gemeinde)) {echo "Filter Gemeinde = ".$gemeinde."
"; + } else {echo "Kein Filter Gemeinde
";} +} + +// Eingabe interpretieren +switch (ZerlegungFsKennz($fskennz)) { +case 0: + echo "Bitte ein Flurstückskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn
"; + break; +case 1: + if ($debug >= 2) {echo "Gemarkungsname ".$zgemkg."
";} + $gnr=SuchGmkgName(); + if ($gnr > 0) { + $zgemkg=$gnr; + EineGemarkung(false); + }; + break; +case 2: + if ($debug >= 2) {echo "Gemarkungsnummer ".$zgemkg."
";} + EineGemarkung(true); + break; +case 3: + if ($debug >= 2) {echo "Gemarkung ".$zgemkg." Flur ".$zflur."
";} + EineFlur(); + break; +case 4: + if ($debug >= 2) {echo "Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."
";} + nurEinFlurstueck(); + break; +case 5: + if ($debug >= 2) {echo "Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."
";} + nurEinFlurstueck(); + break; +} + +?> + + + Index: trunk/data/mapbender/http/nav/alkisnav_fls.htm =================================================================== --- trunk/data/mapbender/http/nav/alkisnav_fls.htm (revision 66) +++ trunk/data/mapbender/http/nav/alkisnav_fls.htm (revision 66) @@ -0,0 +1,52 @@ + + + + + + + +Keine Person.
"; + } elseif($cnt >= $linelimit) { + echo "\n... und weitere
"; + } elseif($cnt == 1){ // Eindeutig! + $person = $gml; + } + return; +} + +function getGBbyPerson() { +// 2 ================================= +// GrundbÌcher zur gewÀhlten Person +// =================================== + global $gkz, $gemeinde, $con, $name, $person, $gb, $auskpath; + $linelimit=120; + if(isset($name)) { // Familiensuche + echo "\nFehler bei Name
\n"; + if ($debug >= 3) {echo "".$sql."
";} + } + // Daten der Person + echo "\n";
+ if ($row = pg_fetch_array($res)) {
+ $namzeil=$row["nachnameoderfirma"].", ".$row["vorname"];
+ $gebdat=$row["geburtsdatum"];
+ if ($gebdat != "") {$namzeil.= ", geb. ".$gebdat;}
+ $best=$row["namensbestandteil"];
+ if ($best != "") {$namzeil.= ", ".$best;}
+ echo htmlentities($namzeil, ENT_QUOTES, "UTF-8");
+ $namzeil=$row["plz"]." ".$row["ort_post"];
+ if (trim($namzeil) != "") {echo "\n\t
".htmlentities($namzeil, ENT_QUOTES, "UTF-8");}
+ $namzeil=$row["strasse"]." ".$row["hausnummer"];
+ if (trim($namzeil) != "") {echo "\n\t
".htmlentities($namzeil, ENT_QUOTES, "UTF-8");}
+ }
+ echo "\n\t
Fehler bei Grundbuch
"; + return; + } + $cnt = 0; + while($row = pg_fetch_array($res)) { + $gml=$row["gml_g"]; + $beznam=$row["beznam"]; + $nr=$row["nr"]; + echo "\nKein Grundbuch.
"; + } elseif($cnt >= $linelimit) { + echo "\n... und weitere
"; + } elseif($cnt == 1){ // Eindeutig! + $gb=$gml; // dann Stufe 3 gleich nachschieben + } + return; +} + +function getFSbyGB($backlink) { +// 3 ================================= +// FlurstÃŒcke zum gewÀhlten Grundbuch +// =================================== + global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg; + $linelimit=120; + + if($backlink) { + echo "\n\tFehler bei Buchung und Flurstück.
"; + if ($debug >= 3) {echo "\n".$sql."
";} + return; + } + $zfs=0; + while($row = pg_fetch_array($res)) { + $fs_gml=$row["gml_id"]; + $bvnr=$row["lfd"]; + if ($bvnr > 0) { + $bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT); + } else { + $bvnr=""; + } + $gmkg=$row["bezeichnung"]; + $flur=$row["flurnummer"]; + $fskenn=$row["zaehler"]; + if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer + $x=$row["x"]; + $y=$row["y"]; + echo "\nKein Flurstück.
"; + echo "\nHinweis: Sonderfälle wie 'Erbbaurecht' sind noch nicht umgesetzt.
"; + } elseif($zfs >= $linelimit) { + echo "\n... und weitere
"; + } + return; +} + +// =========== +// Start hier! +// =========== +// Parameter: +// 1. name = Suche nach Namensanfang oder -bestandteil. +// 2. person = gml_id der Person -> Suche nach GrundbÃŒchern +// 3. gb = gml_id des Grundbuches -> Suche nach FlurstÃŒcken +if(isset($epsg)) { + if ($debug >= 2) {echo "aktueller EPSG='".$epsg."'
";} // aus MB + if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);} +} else { + if ($debug >= 2) {echo "kein EPSG gesetzt
";} + $epsg=$gui_epsg; // aus Conf +} +if ($debug >= 2) {echo "Filter Gemeinde = ".$gemeinde."
";} + +// Welche Parameter? +// 3. Stufe: FlurstÌcke zum Grundbuch +if(isset($gb)) { // gml_id + // Das Programm hat sich selbst verlinkt aus einer Liste der GB zu einem EigentÌmer. + // Wenn Parameter mitgegeben wurden, können diese fÌr einen "Link zurÌck" verwendet werden. + getFSbyGB(true); +} elseif(isset($person)) { // gml_id - 2. Stufe: GrundbÌcher zur Person + // Das Programm hat sich selbst verlinkt aus einer Liste der Personen zu einer Suchmaske. + getGBbyPerson(); + if(isset($gb) ) { getFSbyGB(false);} // Es wurde nur EIN Grundbuch zu der Person gefunden. +} elseif(isset($name)) { // Suchbegriff aus Form - 1. Stufe: Suche nach Name + getEigByName(); + if(isset($person)) { getGBbyPerson();} +} elseif ($debug >= 2) { + echo "\nParameter?
"; // Programmfehler +} + +?> + + + Index: trunk/data/mapbender/http/nav/alkisnav_eig.htm =================================================================== --- trunk/data/mapbender/http/nav/alkisnav_eig.htm (revision 66) +++ trunk/data/mapbender/http/nav/alkisnav_eig.htm (revision 66) @@ -0,0 +1,53 @@ + + + + + + + +Fehler bei Name
"; + } + $cnt = 0; + while($row = pg_fetch_array($res)) { + $sname=$row["bezeichnung"]; + $gkey=$row["schluesselgesamt"]; + $gemname=$row["gemname"]; + $skey=$row["lage"]; + echo "\n\tKeine Straße.
"; + } elseif($cnt == 1) { // Eindeutig + $str_schl=$skey; // dann gleich weiter + } elseif($cnt >= $linelimit) { + echo ".. und weitere
"; + } + return; +} + +function suchHausZurStr(){ +// ======================= +// Haeuser zu einer Straße +// ======================= + global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $debug; + + // Strasse zum Strassenschluessel + $sql ="SELECT k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage "; + $sql.="FROM ax_lagebezeichnungkatalogeintrag as k "; + $sql.="WHERE schluesselgesamt = $1 LIMIT 1"; + $v=array($str_schl); + $res=pg_prepare("", $sql); + $res=pg_execute("", $v); + + if($row = pg_fetch_array($res)) { // Strassenschluessel gefunden + $sname=$row["bezeichnung"]; + $land =$row["land"]; + $regb =$row["regierungsbezirk"]; + $kreis=$row["kreis"]; + $gemnd=$row["gemeinde"]; + //$lage=$row["lage"]; + $nr=ltrim($row["lage"], "0"); + + // eine Koordinaten zur ausgewählten Strasse besorgen + // ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer + $sqlko ="SELECT "; + $sqlko.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; + $sqlko.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; + $sqlko.="FROM ax_lagebezeichnungohnehausnummer o "; + $sqlko.="JOIN alkis_beziehungen v ON o.gml_id=v.beziehung_zu "; + $sqlko.="JOIN ax_flurstueck f ON v.beziehung_von=f.gml_id "; + $sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 "; + $sqlko.="AND v.beziehungsart='zeigtAuf' LIMIT 1;"; // die erstbeste beliebige Koordinate +// $resko=pg_query($con, $sqlko); + $v=array($land,$regb,$kreis,$gemnd,$nr); + $resko=pg_prepare("", $sqlko); + $resko=pg_execute("", $v); + if ($resko) { + $rowko=pg_fetch_array($resko); + $x=$rowko["x"]; + $y=$rowko["y"]; + } else { + echo "\nFehler bei Koordinate zur Straße
"; + } + $sqlko.=""; + //if ($debug >= 2) {echo "\nKoord: '".$x."' '".$y."'
";} + echo "\n".$sql."
";} + $resh=pg_query($con, $sql); + $cnt=0; + $count=0; + echo ""; + echo "".$nr.""; + echo "\n\t | "; + $cnt++; + $count++; + if($count == 6) { + echo "\n
".$cnt." Hausnummern
"; + } else { + echo "\nKein Haus.
"; + } + return; +} +// =========== +// Start hier! +// =========== +if(isset($epsg)) { + if ($debug >= 2) {echo "aktueller EPSG='".$epsg."'
";} // aus MB + If (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);} +} else { + if ($debug >= 2) {echo "kein EPSG gesetzt
";} + $epsg=$gui_epsg; // aus Conf +} + +if ($debug >= 2) { + if(isset($gemeinde)) {echo "Filter Gemeinde = ".$gemeinde."
"; + } else {echo "Kein Filter Gemeinde
";} +} + +if(isset($street)) { + // dies ist noch nicht möglich, es muesste der Gesamt-Keystring eingegeben werden + if (is_numeric($street)) { + $str_schl = $street; // Schluessel (eindeutig) ist schon gesetzt + } else { + suchStrName(); // Suche nach Name + } +} +// Strassenschluessel suchen +// Verknuepfung zwischen "suchStrName" und "suchHausZurStr" uber Gesamt-Schluessel +// Alternative für Eingabefeld (nur db-Feld "lage")? +// z.B. HIER trennen zwischen Eingabe-Key und Result-Key + +if(isset($str_schl)){ + suchHausZurStr(); +} +?> + + + Index: trunk/data/mapbender/http/nav/alkisnav_adr.htm =================================================================== --- trunk/data/mapbender/http/nav/alkisnav_adr.htm (revision 66) +++ trunk/data/mapbender/http/nav/alkisnav_adr.htm (revision 66) @@ -0,0 +1,80 @@ + + + + + + + +Suche nach Grundbuchblatt in ALKIS:
-Dieser Programmteil ist noch nicht realisiert!
-Geplant ist:
-Schritt 1: Auswahl Amtsgericht
-Schritt 2: Auswahl Grundbuch-Bezirk
-Schritt 3: Auswahl Grundbuch-Blatt
+Schritt 1: Suche Grundbuch-Bezirk
+Schritt 2: Auswahl Grundbuch-Blatt
+Schritt 3: Auswahl Grundstück (Buchungsstelle, BVNR)
Schritt 4: Auswahl Flurstück
"; + return 0; + } + } else { + echo "
"; + return 0; + } +} + +function SuchGBBezName() { +// Grundbuch-Bezirk suchen nach Name(-nsanfang) + global $con, $gkz, $gemeinde, $debug, $gbkennz; + $linelimit=50; + $sql ="SELECT a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; + $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; + $sql.="WHERE g.bezeichnung ILIKE $1 "; // "AND a.stellenart=1000 " // Amtsgericht + $sql.="ORDER BY g.bezeichnung LIMIT $2 ;"; + if ( $gbkennz == "") { + $match = "%"; + } else { + if(preg_match("/\*/",$gbkennz)){ + $match = trim(preg_replace("/\*/i","%", strtoupper($gbkennz))); + } else { + $match = trim($gbkennz)."%"; + } + } + $v = array($match, $linelimit); + $res = pg_prepare("", $sql); + $res = pg_execute("", $v); + if (!$res) { + echo "\n
Fehler bei Grundbuch-Bezirk
"; + if ($debug >= 3) {echo "\n".$sql."
";} + return 0; + } + $cnt = 0; + // Loop B E Z I R K + // +++ Sortierung und Gruppierung nach Amtsgericht ?? + while($row = pg_fetch_array($res)) { + $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); + $gnr=$row["bezirk"]; + $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); + echo "\nKein Grundbuchbezirk.
"; + } elseif ($cnt >= $linelimit) { + echo "\n... und weitere
"; + } elseif ($cnt == 1) { + return $gnr; // Wenn eindeutig, gleich weiter + } + return 0; +} + +function EinBezirk($showParent) { + // Kennzeichen bestehend nur aus GB-Bezirk-SchlÃŒssel wurde eingegeben + global $con, $gkz, $gemeinde, $debug, $zgbbez, $auskpath; + $linelimit=200; // max. Blatt je Bezirk + // Dies linelimit nicht ausreichend fuer alle Blaetter eines Bezirks, aber ... + // Wenn man die Blatt-Nr nicht kennt, kommt man hier sowieso nicht weiter. + // Es nutzt also nichts, hier Tausende Nummern aufzulisten. + // +++ Wildcard in Blatt zulassen? Schwiegig bei numerischem Wert mit fuehrenden Nullen. + if ($showParent) { + $sql ="SELECT a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; + $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; + $sql.="WHERE g.bezirk= $1 ;"; + $v=array($zgbbez); + $res=pg_prepare("", $sql); + $res=pg_execute("", $v); + if (!$res) { + echo "\nFehler bei Brundbuchbezirk.
"; + if ($debug >= 3) {echo "\n".$sql."
";} + } + $zgmk=0; + while($row = pg_fetch_array($res)) { + $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); + $gnr=$row["bezirk"]; + $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); + $zgmk++; + } + if ($zgmk == 0) { + echo "\n"; + echo " Bezirk ".$zgbbez." ist unbekannt.
"; + echo "\nFehler bei Bezirk.
"; + if ($debug >= 3) {echo "\n".$sql."
";} + } + $cntbl=0; // Counter Blatt/Bezirk + // Loop B L A T T + while($row = pg_fetch_array($res)) { + $blatt=$row["blatt"]; + $gml=$row["gml_id"]; + echo "\nKein Blatt im Bezirk.
"; + } else { + if($cntbl >= $linelimit) { + echo "\n... und weitere
"; + echo "\nGeben sie ein: '".$zgbbez."-999999A'
wobei '999999A' = gesuchtes GB-Blatt
Grundbuchblatt '".$zgbbez."-".$zblatt."' nicht gefunden.
"; + } elseif($cntbl == 1) { + return $bl_gml; + } + return; +} + +function EinBlatt($showParent) { + // Kennzeichen Bezirk + Blatt wurde eingegeben + global $con, $gkz, $debug, $gemeinde, $auskpath, $zgbbez, $zblatt, $gblatt, $zbvnr; + + if ($showParent) { + echo "\n".$sql."
";} + } + $cntbu=0; // Counter Buchung/Blatt + while($row = pg_fetch_array($res)) { + $bs_gml=$row["gml_id"]; + $lfd=$row["lfd"]; + echo "\nKeine Buchung gefunden.
"; + } elseif($cntbu = 1) { + //echo "\ngenau EINE Buchung gefunden".$lfd."
"; + $zbvnr=$lfd; // mit dieser BVNR gleich weiter machen + } + return $cntbu; +} + +function gml_buchungsstelle() { + // Komplettes Kennzeichen "Bezirk + Blatt + BVNR" wurde eingegeben. + // Dazu die gml_id der Buchungsstelle ermitteln fuer die weitere Verfolgung der Beziehungen. + global $con, $gkz, $debug, $zgbbez, $zblatt, $zbvnr; + + // Blatt -> B u c h u n g s s t e l l e + // ax_buchungsblattDie Buchungsstelle wurde nicht gefunden.
"; + return; + } elseif($zbs > 1) { // nur TEST + echo "\nBuchungsstelle mehrfach gefunden.
"; + return; + } else { + return $bs_gml; + } +} + +function EinGrundstueck($showParent) { + // Die gml_id der Buchungsstelle ist bekannt. + global $con, $gkz, $debug, $gemeinde, $scalefs, $epsg, $auskpath, $gbuchung, $zgbbez, $zblatt, $zbvnr; + + if ($showParent) { + // wenn Kennzeichen bekannt ist, dann auch Blatt ausgeben + if (isset($zgbbez) and isset($zblatt)) { + echo "\nKennzeichen Bezirk und Blatt nicht gesetzt
"; + } + echo "\nFehler bei Buchungsstelle (gml).
"; + if ($debug >= 3) {echo "\n".$sql."
";} + } + $zfs=0; + while($row = pg_fetch_array($res)) { + $fs_gml=$row["gml_id"]; + $gemei=$row["gemeinde"]; + $gmkg=$row["bezeichnung"]; + $flur=$row["flurnummer"]; + $fskenn=$row["zaehler"]; + if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer + $x=$row["x"]; + $y=$row["y"]; + if($gemeinde > 0 and $gemeinde != $gemei) { // ex-territorial + echo "\nKein Flurstück.
";} + return; +} + +// =========== +// Start hier! +// =========== +if(isset($epsg)) { + if ($debug >= 2) {echo "aktueller EPSG='".$epsg."'
";} // aus MB + If (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);} +} else { + if ($debug >= 2) {echo "kein EPSG gesetzt
";} + $epsg=$gui_epsg; // aus Conf +} +if ($debug >= 2) { + if(isset($gemeinde)) {echo "Filter Gemeinde = ".$gemeinde."
"; + } else {echo "Kein Filter Gemeinde
";} +} + +// Auch wenn redundant: Das Kennzeichen fÃŒr Anzeige und weitere Links zerlegen +$kennztyp=ZerlegungGBKennz($gbkennz); +if ($debug >= 2) {echo "GB-Kennzeichen Typ=".$kennztyp."
";} +// Wurde eine gml_id (internes Kennzeichen) aus einem Link verwendet? +If (isset($gbuchung)) { // gml der Buchungsstelle + if ($debug >= 2) {echo "Link Buchung(gml)=".$gbuchung."
";} + EinGrundstueck(true); +} elseif(isset($gblatt)) { // gml des GB-Blattes + if ($debug >= 2) {echo "Link Blatt(gml)=".$gblatt."
";} + if (EinBlatt(true) == 1) { // darauf genau eine Buchung + $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen + EinGrundstueck(false); + }; +} else { + // Kein internes Kennzeichen (gml_id), also nur die (manuelle) Eingabe interpretieren. + switch ($kennztyp) { + // +++ Ersten Schritt "Suche Amtsgericht" voranstellen? + // +++ Wie kann Filter "Gemeinde" berÃŒcksichtigt werden? + case 0: // Fehler + echo "Bitte ein Grundbuchkennzeichen eingegeben, Format 'gggg-999999A-llll
"; + break; + case 1: // Eingabe Bezirk-Name (-Teil) -> Liste der Bezirke + if ($debug >= 2) {echo "Eingabe Bez. ".$zgbbez."
";} + $beznr=SuchGBBezName(); + if ($beznr > 0) { + $zgbbez=$beznr; + EinBezirk(false); + }; + break; + case 2: // Eingabe Bezirk-Nummer -> Liste der BlÀtter + if ($debug >= 2) {echo "Eingabe Bez. ".$zgbbez."
";} + EinBezirk(true); + break; + case 3: // Eingabe Blatt -> Liste der Buchungen + if ($debug >= 2) {echo "Eingabe Bez. ".$zgbbez." Blatt ".$zblatt."
";} + $gblatt=gml_blatt(); // gml_id zum Blatt suchen + if ($gblatt != "") { // gefunden + if (EinBlatt(true) == 1) { // darauf genau eine Buchung + $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen + EinGrundstueck(false); + } + } + break; + case 4: // Eingabe Buchung (Grundstueck) -> Liste der Flurstuecke + if ($debug >= 2) {echo "Eingabe Bez. ".$zgbbez." Blatt ".$zblatt." BVNR ".$zbvnr."
";} + $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen + EinGrundstueck(true); + break; + } +} + +?> + + Index: trunk/data/mapbender/http/nav/alkisnav_grd.htm =================================================================== --- trunk/data/mapbender/http/nav/alkisnav_grd.htm (revision 66) +++ trunk/data/mapbender/http/nav/alkisnav_grd.htm (revision 66) @@ -0,0 +1,52 @@ + + + + + + + +