Ignore:
Timestamp:
04/26/13 13:52:56 (11 years ago)
Author:
frank.jaeger
Message:

Mapbender-Navigation mit ALKIS-Daten komplett überarbeitet.

Location:
trunk/mapbender/http/nav
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/mapbender/http/nav/alkisnav.css

    r140 r278  
    44         2011-11-09 Historie, dbg 
    55         2011-12-09 p.nam 
     6         2012-12-13 td.hsnro 
     7         2013-04-19 frames hoeher 
    68*/ 
    79body,p,a,.textfield,.sbutton    {font-family: Verdana, Arial, Helvetica, sans-serif;} 
     
    1416p.err           {font-size: 11px; color: red;}  /* Fehler -> Anwender */ 
    1517p.dbg           {font-size: 10px; color: gray;} /* Debug -> Entwickler */ 
     18p.ein, p.anz, p.blt     {font-size: 9px; text-align: right;}    /* Einleitung, Anzahl am Ende, BlÀttern weitere ... */ 
     19p.ein   {color: navy; font-weight: bold;} 
     20p.anz, p.blt    {color: purple;} 
    1621 
    17 a                       {text-decoration: none;} /* font-size: 11px; */ 
     22a                       {text-decoration: none;} 
    1823a:hover, a:active       {color: red;} 
    1924a.hislnk {color: gray; font-style: italic; text-align: right; padding-left: 50px;}      /* Link zur Historie */ 
     25a.hsnro {color: gray; font-style: italic;} /* HsNr ohne Haus */ 
     26a.blt           {color: maroon; background-color: yellow;}      /* Link weitere ... */ 
    2027 
    2128/* abgestuft eingerueckte Treffer in der Suche */ 
    2229div                     {margin: 0px; padding: 0px;} 
    2330div.back        {font-size: 10px; color: gray; border-bottom: 1px dotted gray;} 
    24 /* div.nam              {color: maroon;}   Name */ 
     31/* div.nam      {color: maroon;}   Name */ 
    2532div.ga          {color: fuchsia;        margin-left:  0px; margin-top: 6px;} /* GB-Amtsgericht */ 
    2633div.gm          {color: green;          margin-left:  0px; margin-top: 6px;} /* Gemeinde */ 
     
    3441 
    3542div.stu         {color: maroon; font-size: 13px;} /* Strasse - Ueberschrift */ 
    36 div.stl         {color: maroon; font-size: 11px; margin-top: 3px;} /* Strasse - Liste*/ 
     43div.stl         {color: maroon; font-size: 11px; margin-top: 3px;} /* Strasse - Liste */ 
    3744td.hsnr         {font-size: 11px; text-align: center; padding-left: 4px; padding-right: 4px;} /* Hausnummer */ 
    3845hr                              {color: gray;} 
    3946 
    40 .textfield{ 
    41         border: 1px solid #990000; 
    42         height: 20px; 
    43         width: 140px; 
    44         background: #FFFFFF; 
    45 } 
    46 .sbutton{font-size: 11px; 
    47         font-weight: normal; 
    48         border: solid thin; 
    49         width: 22px; 
    50         height: 20px; 
    51         background: #6699FF; 
    52 } 
     47dfn.title       {color: maroon; font-size: 10px; text-align: right; padding-left: 8px; padding-right: 4px;} 
     48 
     49.textfield      {border: 1px solid #990000; height: 20px; width: 140px; background: #FFFFFF;} 
     50.sbutton{font-size: 11px; font-weight: normal; border: solid thin; 
     51        width: 22px; height: 20px;      background: #6699FF;} 
    5352img.nwlink      {border: 0px; margin: 0px; padding: 0px;} /* Icons mit Link zum Buch-Nachweis */ 
    5453.letter         {cursor: pointer; font-weight: bold;} /* Liste Anfangsbuchstaben */ 
     
    5655/* Registertabs */ 
    5756/* ul in einem <div id='tabs' */ 
    58 div#tabs ul { 
    59         position: absolute; top: 0px; 
     57div#tabs ul {position: absolute; top: 0px; 
    6058        margin-top: 0px; margin-left: 0px; margin-bottom: 20px; 
    61         padding: 0px; 
    62         width: 220px; 
    63         text-align: left; 
    64         border: 0px dashed #00aa00; 
    65 } 
     59        padding: 0px; width: 220px; text-align: left; border: 0px dashed #00aa00;} 
    6660div#tabs li { 
    6761        cursor: pointer; 
     
    8276div#tabs li.aktiveTab { 
    8377        background-image: url(./img/tab_bg_rot.gif);  /* aktive Tabs rot */ 
    84         background-color: #F9F9F9; 
    85         border-bottom-color: #F9F9F9; /* nicht sichtbar, wie Hintergrund */ 
     78        background-color: #F9F9F9;      border-bottom-color: #F9F9F9; /* nicht sichtbar, wie Hintergrund */ 
    8679} 
    8780 
    88 /* passt in Mapbender 2.5: tabs width=280, tab_frameHeight[n]=360 */ 
    89 iframe.OuterFrame{ 
    90         width: 250px; height: 330px;  
    91         padding: 0px; margin: 0px; 
    92         border: 0px dotted #ff0000; 
    93         overflow: hidden; 
    94         background-color: white; 
    95 } 
     81/* Anpassen an width des Tab in Mapbender */ 
     82/* in alkisnav.htm */ 
     83/* ALT: OuterFrame: height: 350px; ResultFrame: height: 240px; */ 
     84iframe.OuterFrame{width: 225px; height:400px; padding: 0px; margin: 0px; 
     85        border: 0px dotted #ff0000; overflow: hidden; background-color: white;} 
    9686form.nav {position: absolute; top: 22px;} 
    97 iframe.ResultFrame { 
    98         position: absolute; top: 78px; 
    99         width: 235px; height: 220px; 
    100         padding: 0px; margin: 0px; 
    101         border: 0px dotted #00ff00; 
    102 } 
     87iframe.ResultFrame {position: absolute; top: 78px; width: 220px; height: 290px; 
     88        padding: 0px; margin: 0px; border: 0px dotted #00ff00;} 
  • trunk/mapbender/http/nav/alkisnav.htm

    r95 r278  
    1919                // Parameter fuer Mandant aus url lesen 
    2020                // &gkz=150&gemeinde=40&test=ja 
    21                 var parms = location.search.split("&");   // 0: "?gkz=150" 1: "gemeinde=40" 2: "test=ja" 
    22                 var arr = parms[0].split("=", 2); // 0: "?gkz"  1: "150" 
     21                var parms = location.search.split("&"); // 0: "?gkz=150" 1: "gemeinde=40" 2: "test=ja" 
     22                var arr = parms[0].split("=", 2);       // 0: "?gkz"  1: "150" 
    2323                var gkz = "000"; 
    2424                if(arr[0] == "?gkz") {gkz = arr[1];} 
     
    3232 
    3333<script type="text/javascript" language="JavaScript"> 
    34         document.writeln("<!-- gkz=" + gkz + " gemeinde=" + gem + "-->"); 
     34        document.writeln("<!-- gkz=" + gkz + " gemeinde=" + gem + " -->"); 
    3535        // Rahmen mit Form und ResultFrame 
    3636        document.writeln("<iframe frameborder='0' name='OuterFrame' src='alkisnav_eig.htm?gkz=" + gkz + "&gemeinde=" + gem + "' class='OuterFrame' scrolling='auto'></iframe>"); 
  • trunk/mapbender/http/nav/alkisnav_adr.php

    r276 r278  
    11<?php 
    22/* Version vom  
    3         2011-04-11 epsg in Link, transform nur wenn notwendig 
    4         2011-07-25 PostNAS 0.5/0.6 Versionen unterscheiden 
    5         2011-10-24 Nach Pos-Klick Highlight erneuern statt hideHighlight 
    6         2011-12-09 Sonderfall PostNAS 0.5 raus, 
    7         2012-12-03 A.E.: Ausgabe von Hausnr ohne Gebaeude 
    8         2013-01-15 F.J.: HsNr ohne GebÀude auf NRW/krz-Daten anpassen 
    9         2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 
     3        2011-04-11      epsg in Link, transform nur wenn notwendig 
     4        2011-07-25      PostNAS 0.5/0.6 Versionen unterscheiden 
     5        2011-10-24      Nach Pos-Klick Highlight erneuern statt hideHighlight 
     6        2011-12-09      Sonderfall PostNAS 0.5 raus, 
     7        2012-12-03      A.E.: Ausgabe von Hausnr ohne Gebaeude 
     8        2013-01-15      F.J.: HsNr ohne GebÀude auf NRW/krz-Daten anpassen 
     9        2013-04-26      "import_request_variables" entfÀllt in PHP 5.4. 
     10                                        ZurÃŒck-Link, Titel der Transaktion anzeigen 
    1011 
    1112        ToDo: 
    12         -  auskommentierte Variante mit "subquery" entfernen 
    1313        -       Eingabe aus "Balken" von Buchauskunft "Lage" zulassen: Numerisch: Gem-Str-Haus-lfd 
    1414                Analog zur Zerlegung des FS-Kennz in _fls 
     
    2020$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
    2121$con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$$dbname.$dbvers.$gkz); 
    22 ?> 
     22echo <<<END 
    2323 
    2424<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
     
    3131        <title>ALKIS-Suche Adressen</title> 
    3232        <link rel="stylesheet" type="text/css" href="alkisnav.css"> 
     33        <script type='text/javascript'> 
     34                function transtitle (trans) { // Titel der letzten Transaktion anzeigen 
     35                        document.getElementById('transaktiontitle').innerHTML = trans; 
     36                } 
     37        </script> 
    3338</head> 
    3439<body> 
    35 <?php 
     40<a title="zur&uuml;ck" href='javascript:history.back()'> 
     41        <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" /> 
     42</a> 
     43<dfn class='title' id='transaktiontitle'></dfn> 
     44 
     45END; 
    3646 
    3747function suchStrName() { 
     
    92102        } 
    93103        if($cnt == 0) { 
    94                 echo "<p>Keine Stra&szlig;e.</p>"; 
     104                echo "<pclass='anz'>Keine Stra&szlig;e</p>"; 
    95105        } elseif($cnt == 1) { // Eindeutig 
    96106                $str_schl=$gkey; // dann gleich weiter 
    97107        } elseif($cnt >= $linelimit) { 
    98                 echo "<p>.. und weitere</p>";                    
    99         }        
     108                echo "<p class='anz'>".$cnt." Stra&szlig;en ... und weitere</p>";                        
     109        } elseif ($cnt > 1) { 
     110                echo "\n<p class='anz'>".$cnt." Stra&szlig;en</p>";      
     111        } 
    100112        return; 
    101113} 
     
    157169        } 
    158170        if($cnt == 0) { 
    159                 echo "\n<p>Keine Stra&szlig;e mit Schl&uuml;ssel ".$match."</p>"; 
     171                echo "\n<p class='anz'>Keine Stra&szlig;e mit Schl&uuml;ssel ".$match."</p>"; 
    160172        } elseif($cnt == 1) { // Eindeutig 
    161173                $str_schl=$gkey; // dann gleich weiter 
    162         } elseif($cnt >= $linelimit) { 
    163                 echo "\n<p>.. und weitere</p>";                  
    164         } else { 
    165                 echo "\n<p class='hilfe'>".$cnt." Stra&szlig;en</p>";    
     174        } elseif ($cnt >= $linelimit) { 
     175                echo "\n<p>".$cnt." Stra&szlig;en ... und weitere</p>";                  
     176        } elseif ($cnt > 1) { 
     177                echo "\n<p class='anz'>".$cnt." Stra&szlig;en</p>";      
    166178        }        
    167179        return; 
     
    170182function suchHausZurStr($showParent){ 
    171183        // Haeuser zu einer Strasse 
    172         global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $hausnummernohnegebaeude, $debug; 
     184        global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug; 
    173185        // Strasse zum Strassenschluessel 
    174186        $sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage "; 
     
    216228                        if ($x > 0) { // Koord. bekommen? 
    217229                                echo "\n\t<a title='Positionieren 1:".$scalestr."' href='javascript:"; // mit Link 
     230                                                echo "transtitle(\"auf Stra&szlig;e positioniert\"); "; 
    218231                                                echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalestr."); "; 
    219232                                                echo "parent.parent.showHighlight(".$x.",".$y."); "; 
    220                                                 echo "document.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$str_schl."\"' "; 
     233                                                //echo "document.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$str_schl."\""; 
     234                                        echo "' "; // end href 
    221235                                        echo "\n\t\tonmouseover='parent.parent.showHighlight(" .$x. "," .$y. ")' "; 
    222236                                        echo "\n\t\tonmouseout='parent.parent.hideHighlight()'"; 
     
    252266/* Version mit // Subquery 
    253267Liefert Informationen ÃŒber GebÀude zur Hausnummer. LÀuft aber spÃŒrbar langsamer. 
    254  
    255268                $sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von "; 
    256269                $sql.="JOIN ax_lagebezeichnungmithausnummer h ON v.beziehung_zu = h.gml_id "; 
     
    259272                $sql.="ON h.gml_id = subq.zu WHERE v.beziehungsart='dientZurDarstellungVon' AND p.art = 'HNR' "; 
    260273                $sql.="AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 
    261                 $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; 
    262 */ 
     274                $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; */ 
     275 
    263276                // Version ohne Subquery 
    264277                $sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von "; 
     
    292305                        //      echo "<a".$cls." href='"; 
    293306                                echo "<a href='"; 
    294                                         echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalehs."); "; 
     307                                        echo "javascript:"; 
     308                                        echo "transtitle(\"auf Haus positioniert\"); "; 
     309                                        echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalehs."); "; 
    295310                                        echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    296311                                echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     
    308323                if($count > 0) {echo "\n</tr>";} 
    309324                echo "\n</table>"; 
    310                 echo "\n<p class='hilfe'>".$cnt." Hausnummern</p>"; 
     325                echo "\n<p class='anz'>".$cnt." Hausnummern</p>"; 
    311326        } else { 
    312                 echo "\n<p class='err'>Keine Stra&szlig;e.</p>"; 
     327                echo "\n<p class='anz'>Keine Stra&szlig;e</p>"; 
    313328        } 
    314329        return; 
     
    318333// =========== 
    319334if(isset($epsg)) { 
    320         if ($debug >= 2) {echo "\n<p>aktueller EPSG='".$epsg."'</p>";} // aus MB 
     335        #if ($debug >= 2) {echo "\n<p>aktueller EPSG='".$epsg."'</p>";} // aus MB 
    321336        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);    
    322337} else { 
    323         if ($debug >= 1) {echo "\n<p class='err'>kein EPSG gesetzt</p>";}        
     338        #if ($debug >= 1) {echo "\n<p class='err'>kein EPSG gesetzt</p>";}       
    324339        $epsg=$gui_epsg; // aus Conf 
    325340} 
    326 if ($debug >= 2) { 
    327         echo "<p>Filter Gemeinde = ".$gemeinde."</p>"; 
    328 } 
     341#if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";} 
    329342if ($gemeinde == "") { 
    330343        $gfilter = 0; // ungefiltert 
     
    335348} 
    336349if (isset($str_schl)) { // aus Link 
    337         if ($debug >= 2) {echo "\n<p>Link Strassenschluessel '".$str_schl."'</p>";} 
     350        $trans="Hausnummern zur Stra&szlig;e"; 
    338351        suchHausZurStr(true); 
    339352} elseif(isset($street)) { // Eingabe in Form 
    340         if (trim($street, "*,0..9") == "") { // Zahl mit Wildcard 
    341                 if ($debug >= 2) {echo "\n<p>Suche Key='".$street."'</p>";} 
    342                 suchStrKey(); // Suche nach Schluessel 
     353        if (trim($street, "*,0..9") == "") { // Zahl, ggf. mit Wildcard 
     354                $trans="Suche Stra&szlig;enschl&uuml;ssel \"".$street."\""; 
     355                suchStrKey(); 
    343356        } else { 
    344                 if ($debug >= 2) {echo "\n<p>Suche Name='".$street."'</p>";} 
    345                 suchStrName(); // Suche nach Name 
     357                $trans="Suche Stra&szlig;enname \"".$street."\""; 
     358                suchStrName(); 
    346359        } 
    347360        if(isset($str_schl)) { // Eindeutiges Ergebnis 
    348                 if ($debug >= 2) {echo "\n<p>weitere Suche Haus zu ='".$str_schl."'</p>";} 
     361                $trans="1 Stra&szlig;e gefunden, Hausnummern"; 
    349362                suchHausZurStr(false); 
    350363        } 
    351364} 
     365// Titel im Kopf anzeigen 
     366echo "\n<script type='text/javascript'>\n\ttranstitle('".$trans."')\n</script>"; 
     367 
    352368?> 
    353369 
  • trunk/mapbender/http/nav/alkisnav_eig.php

    r276 r278  
    11<?php 
    2 /* Version vom  
     2/* Version vom 
    33        24.10.2011      Nach Pos-Klick Highlight erneuern statt hideHighlight 
    44        17.11.2011      Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
     
    88                                        Format css Person (Rahmen). 
    99        2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 
    10         ToDo: Auf der Stufe 2 "getGBbyPerson" noch Filtern nach Gemeinde 
     10        2013-04-26      Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung". 
     11                                        Stufe 2: GB *und* FS mit einem Klick anzeigen. 
     12                                        BlÀtterfunktion (Folgeseiten) fÃŒr lange Listen.  
     13                                        Function extern gemeinsam genutzt in _eig und _grd. 
     14                                        Dazu Var-Namen harmonisieren: $gb wird $blattgml. 
     15                                        ZurÃŒck-Link, Titel der Transaktion anzeigen. 
    1116*/ 
    1217$cntget = extract($_GET); 
    13 include("../../conf/alkisnav_conf.php"); 
     18include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 
     19include("alkisnav_fkt.php"); // Funktionen 
    1420$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
    1521$con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname.$dbvers.$gkz); 
    16 ?> 
    17  
     22echo <<<END 
    1823<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    1924<html> 
     
    3035                        window.open(link,'','left=10,top=10,width=620,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes'); 
    3136                } 
     37                function transtitle(trans) { 
     38                        document.getElementById('transaktiontitle').innerHTML = trans; 
     39                } 
    3240        </script> 
    3341</head> 
    3442<body> 
    35  
    36 <?php 
    37  
    38 function getEigByName() { 
    39 // 1 ============================= 
    40 // Eigentuemer nach Name(-nsanfang) 
    41 // =============================== 
    42         global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $gfilter, $persfilter, $auskpath; 
    43         $linelimit=120; 
    44         $arr = explode(",", $name); 
    45         $name0 = trim($arr[0]); 
    46         $name1 = trim($arr[1]); 
    47         if(preg_match("/\*/",$name0)){ 
    48                 $match = trim(preg_replace("/\*/i","%", strtoupper($name0))); 
    49         } else { 
    50                 $match = trim($name0)."%"; 
    51         }        
    52         if(preg_match("/\*/",$name1)){ 
    53                 $match1 = trim(preg_replace("/\*/i","%", strtoupper($name1))); 
    54         } else { 
    55                 $match1 = trim($name1)."%"; 
    56         }                
    57          
    58         $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; 
    59  
    60         if ($persfilter and ($gfilter > 0)) { 
    61                 $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; 
    62                 switch ($gfilter) { 
    63                         case 1: // Einzelwert 
    64                                 $sql.="g.gemeinde=".$gemeinde." AND "; break; 
    65                         case 2: // Liste 
    66                                 $sql.="g.gemeinde in (".$gemeinde.") AND "; break; 
    67                 } 
    68         } else { 
    69                 $sql.="WHERE "; 
    70         } 
    71         if($match1 != '%'){ 
    72                 $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 ";              
    73                 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; 
    74                 $v=array($match, $match1, $linelimit); 
    75         }else{ 
    76                 $sql.="nachnameoderfirma ILIKE $1 ";             
    77                 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; 
    78                 $v=array($match, $linelimit); 
    79         }  
    80         $res=pg_prepare("", $sql); 
    81         $res=pg_execute("", $v); 
    82         if (!$res) { 
    83                 echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>"; 
    84                 return; 
    85         } 
    86         $cnt = 0; 
    87         while($row = pg_fetch_array($res)) { 
    88                 $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 
    89                 $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 
    90                 $gml=$row["gml_id"]; 
    91                 // Link zur Auskunft Person  +++ Icon differenzieren? Firma/Person 
    92                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gml."\")'>"; 
    93                         echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 
    94                 echo "\n\t</a> ";                
    95                 echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$gml."&amp;name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>"; 
    96                 $cnt++; 
    97         } 
    98         if($cnt == 0){  
    99                 echo "\n<p class='err'>Keine Person.</p>"; 
    100         } elseif($cnt >= $linelimit) { 
    101                 echo "\n<p title='Bitte den Namen eindeutiger qualifizieren'>... und weitere</p>"; 
    102         } elseif($cnt == 1){ // Eindeutig! 
    103                 $person = $gml; 
    104         } 
    105         return; 
    106 } 
    107  
    108 function getGBbyPerson() { 
    109 // 2 ================================= 
    110 // GrundbÃŒcher zur gewÀhlten Person 
    111 // =================================== 
    112         global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $auskpath; 
    113         $linelimit=120; 
     43<a title="zur&uuml;ck" href='javascript:history.back()'> 
     44        <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" /> 
     45</a> 
     46<dfn class='title' id='transaktiontitle'></dfn> 
     47 
     48END; 
     49 
     50// Einen Link generieren, um nach anderen Personen mit gleichem Familiennamen zu suchen 
     51function familiensuche() { 
     52        global $gkz, $gemeinde, $epsg, $name; // $debug 
    11453        if(isset($name)) { // Familiensuche 
    11554                echo "\n<div class='back' title='Andere Personen mit diesem Nachnamen'>"; 
     
    11857                echo "\n</div>\n<br>";   
    11958        } 
    120         $sql="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; 
     59        return; 
     60} 
     61 
     62// Adresse und Geburtsdatum der aktuellen Person ausgeben 
     63function personendaten() { 
     64        global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug 
     65        $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; 
    12166        $sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer "; 
    12267        $sql.="FROM ax_person p "; 
    123         $sql.="JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; 
    124         $sql.="JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu "; 
    125         $sql.="WHERE p.gml_id= $1 AND b.beziehungsart='hat';";   
     68        $sql.="LEFT JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; 
     69        $sql.="LEFT JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu "; 
     70        #sql.="WHERE p.gml_id= $1 AND b.beziehungsart='hat';";  // passt nicht zum LEFT 
     71        $sql.="WHERE p.gml_id= $1 ;";    
    12672        $v=array($person); 
    12773        $res=pg_prepare("", $sql); 
    12874        $res=pg_execute("", $v); 
    129         if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} 
    130         // Daten der Person 
     75        if (!$res) { 
     76                echo "\n<p class='err'>Fehler bei Name</p>\n"; 
     77        } 
    13178        echo "\n\t<table>\n\t<tr>\n\t\t<td valign='top'>"; 
    13279                // Sp. 1: Icon, Link zur Auskunft Person 
     
    14895                } 
    14996        echo "\n\t</p></td></tr>\n\t</table>"; 
    150  
     97        return; 
     98} 
     99 
     100function getEigByName() { 
     101// 1 ============================= 
     102// Eigentuemer nach Name(-nsanfang) 
     103// =============================== 
     104        global $gkz, $gemeinde, $epsg, $name, $person, $gfilter, $auskpath; 
     105        $linelimit=150; 
     106 
     107        $arr = explode(",", $name); 
     108        $name0 = trim($arr[0]); 
     109        $name1 = trim($arr[1]); 
     110        if(preg_match("/\*/",$name0)){ 
     111                $match = trim(preg_replace("/\*/i","%", strtoupper($name0))); 
     112        } else { 
     113                $match = trim($name0)."%"; 
     114        }        
     115        if(preg_match("/\*/",$name1)){ 
     116                $match1 = trim(preg_replace("/\*/i","%", strtoupper($name1))); 
     117        } else { 
     118                $match1 = trim($name1)."%"; 
     119        }                
     120        $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; 
     121        if ($gfilter > 0) { 
     122                $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; 
     123                switch ($gfilter) { 
     124                        case 1: // Einzelwert 
     125                                $sql.="g.gemeinde=".$gemeinde." AND "; break; 
     126                        case 2: // Liste 
     127                                $sql.="g.gemeinde in (".$gemeinde.") AND "; break; 
     128                } 
     129        } else { 
     130                $sql.="WHERE "; 
     131        } 
     132        if($match1 != '%'){ 
     133                $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 ";              
     134                $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; 
     135                $v=array($match, $match1, $linelimit); 
     136        }else{ 
     137                $sql.="nachnameoderfirma ILIKE $1 ";             
     138                $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; 
     139                $v=array($match, $linelimit); 
     140        }  
     141        $res=pg_prepare("", $sql); 
     142        $res=pg_execute("", $v); 
     143        if (!$res) { 
     144                echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>"; 
     145                return; 
     146        } 
     147        $cnt = 0; 
     148        while($row = pg_fetch_array($res)) { 
     149                $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 
     150                $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 
     151                $gml=$row["gml_id"]; 
     152                // Link zur Auskunft Person  +++ Icon differenzieren? Firma/Person 
     153                echo "\n<br>\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gml."\")'>"; 
     154                        echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 
     155                echo "\n\t</a> ";                
     156                echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$gml."&amp;name=".$nnam."'>".$nnam.", ".$vnam."</a>"; 
     157                $cnt++; 
     158        } 
     159        if($cnt == 0){  
     160                echo "\n<p class='anz'>Kein Eigent&uuml;mer gefunden.</p>"; 
     161        } elseif($cnt >= $linelimit) { // das Limit war zu knapp 
     162                echo "\n<p class='anz' title='Bitte den Namen eindeutiger qualifizieren'>... und weitere</p>"; 
     163        } elseif($cnt == 1){ // Eindeutig! 
     164                $person = $gml; 
     165        } else { 
     166                echo "\n<p class='anz'>".$cnt." Eigent&uuml;mer mit '".$name."'</p>";   // im Limit 
     167        } 
     168        return; 
     169} 
     170 
     171function getGBbyPerson() { 
     172// 2 ================================= 
     173// GrundbÃŒcher zur gewÀhlten Person 
     174// =================================== 
     175// Es wird in dieser Function nicht geprÃŒft, ob die gefundenen GrundbÃŒcher auch FlurstÃŒcke 
     176// haben, die im gefilterten Bereich (Gemeinde) liegen. Es können daher Sackgassen entstehen, 
     177// also GrundbÃŒcher, die in der nÀchsten Stufe bei Filterung nicht zu Treffern fÃŒhren. 
     178// Das Joinen bis zum FS unter BerÃŒcksichtigung von speziellen Buchungen ist zu aufwÀndig. 
     179// Dann kann entweder das FS gleich mit ausgegeben werden -> getGBuFSbyPerson. 
     180// Alternativ wÃŒrde eine Hilfstabelle benötigt, in der im PostProcessing  
     181// das GB-zu-Gemeinde-VerhÀltnis vorbereitet wird. 
     182        global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath, $debug, $bltbez, $bltblatt, $bltseite; 
     183        $linelimit=150; 
     184        $linelimit=15;  // +++ TEST +++  
     185        familiensuche(); 
     186        personendaten(); 
     187        #if ($debug > 0) {echo "\n<p>Nur Grundb&uuml;cher</p>"; } 
    151188        // Suche nach GrundbÃŒchern der Person 
    152         $sql ="SELECT g.gml_id AS gml_g, g.buchungsblattnummermitbuchstabenerweiterung as nr, b.bezeichnung AS beznam "; 
     189        $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam "; 
    153190        $sql.="FROM alkis_beziehungen bpn "; 
    154191        $sql.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id "; 
    155192        $sql.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von "; 
    156         $sql.="JOIN ax_buchungsblatt g ON bng.beziehung_zu=g.gml_id "; 
    157         $sql.="JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk "; 
     193        $sql.="JOIN ax_buchungsblatt gb ON bng.beziehung_zu=gb.gml_id "; 
     194        $sql.="JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk = b.bezirk "; 
    158195        $sql.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' "; 
    159         $sql.="ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 
     196        if ($bltbez.$bltblatt != "") { // BlÀttern, Fortsetzen bei ... 
     197                $sql.="AND ((b.bezeichnung > '".$bltbez."') "; 
     198                $sql.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung > '".$bltblatt."')) "; 
     199        } 
     200        $sql.="ORDER BY b.bezeichnung, gb.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 
     201 
     202        if ($bltseite == "") { // Seite 1 
     203                $bltseite = 1; 
     204        } else { // Folgeseite 
     205                echo "\n<p class='ein'>Teil ".$bltseite; 
     206        } 
    160207        $v=array($person, $linelimit); 
    161208        $res=pg_prepare("", $sql); 
     
    169216                $gml=$row["gml_g"]; 
    170217                $beznam=$row["beznam"]; 
    171                 $nr=$row["nr"]; 
     218                $blatt=$row["blatt"]; 
    172219                echo "\n<div class='gb'>"; 
    173220                        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gml."\")'>"; 
    174221                                echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 
    175222                        echo "\n\t</a> ";                
    176                         echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gb=".$gml."&amp;person=".$person."'> Blatt ".$nr."&nbsp;</a>"; 
     223                        echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$gml."&amp;person=".$person."'> Blatt ".$blatt."&nbsp;</a>"; 
    177224                echo "\n</div>"; 
    178225                $cnt++; 
    179226        } 
    180         if($cnt == 0){  
    181                 echo "\n<p class='err'>Kein Grundbuch.</p>"; 
     227        if($cnt == 0) {  
     228                echo "\n<p class='anz'>Kein Grundbuch zum Eigent&uuml;mer</p>"; 
    182229        } elseif($cnt >= $linelimit) { 
    183                 echo "\n<p>... und weitere</p>"; 
    184         } elseif($cnt == 1){ // Eindeutig! 
    185                 $gb=$gml; // dann Stufe 3 gleich nachschieben 
     230                echo "\n<p class='blt'>".$cnt." Grundb. zum Eigent."; 
     231                $nxtbltbez=urlencode($beznam); 
     232                $nxtbltblatt=urlencode($blatt); 
     233                $nxtbltseite=$bltseite + 1; 
     234                echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person."&amp;bltbez=".$nxtbltbez."&amp;bltblatt=".$nxtbltblatt."&amp;bltseite=".$nxtbltseite."' "; 
     235                echo "title='Bl&auml;ttern ab ".htmlentities($beznam)." Blatt ".$blatt."'>weitere</a>"; 
     236                echo "</p>"; 
     237        } elseif($cnt == 1) { // Eindeutig! 
     238                $blattgml=$gml; // dann Stufe 3 gleich nachschieben 
     239        } else { 
     240                echo "\n<p class='anz'>".$cnt." Grundb&uuml;cher zum Eigent&uuml;mer</p>"; 
    186241        } 
    187242        return; 
    188243} 
    189          
     244 
    190245function getFSbyGB($backlink) { 
    191246// 3 ================================= 
    192247// FlurstÃŒcke zum gewÀhlten Grundbuch 
    193248// =================================== 
    194         global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg, $gfilter, $persfilter; 
    195         $linelimit=120; 
    196  
    197         if($backlink) {  
     249// Zu einem Grundbuch (gml_id als Parameter) werden alle darauf gebuchten FlurstÃŒcke gesucht. 
     250// Im ersten Schritt sind das direkt gebuchten FlurstÃŒcke. 
     251// Im zweiten Schritt wird gesucht nach Rechten einer Buchungstelle des durchsuchten Blattes an anderen 
     252// Buchungstellen. Es werden dann die FlurstÃŒcke darauf gelistet. 
     253        global $gkz, $gemeinde, $name, $person, $blattgml, $scalefs, $auskpath, $epsg, $gfilter, $debug; 
     254        $linelimit=150; 
     255        if($backlink) { // Erneuter Ansatz bei Person oder GB möglich. 
     256 
     257                // Namen ermitteln 
     258                $sql ="SELECT nachnameoderfirma, vorname FROM ax_person WHERE gml_id = $1 "; 
     259                $v=array($person); 
     260                $res=pg_prepare("", $sql); 
     261                $res=pg_execute("", $v); 
     262                if (!$res) { 
     263                        echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>"; 
     264                } 
     265                $row = pg_fetch_array($res); // nur eine Zeile 
     266                $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 
     267                $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 
    198268                echo "\n\t<div class='back' title='zur&uuml;ck zur Person'>"; 
    199269                        echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'> "; 
    200270                        echo "\n\t<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person."'>"; 
    201                         echo "zur&uuml;ck</a><br>";              
     271                        echo $nnam.", ".$vnam."</a><br>";                
    202272                echo "</div>"; 
     273 
     274                // Grundbuch-Daten ermitteln 
     275                $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam "; 
     276                $sql.="FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk = b.bezirk "; 
     277                $sql.="WHERE gb.gml_id= $1 ;"; 
     278                $v=array($blattgml); 
     279                $res=pg_prepare("", $sql); 
     280                $res=pg_execute("", $v); 
     281                if (!$res) { 
     282                        echo "\n<p class='err'>Fehler bei Grundbuch</p>"; 
     283                } 
     284                $row = pg_fetch_array($res); // nur eine Zeile 
     285                $gml=$row["gml_g"]; 
     286                $beznam=$row["beznam"]; 
     287                $blatt=$row["blatt"]; 
    203288                echo "<div class='gb'>"; 
    204                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gb."\")'>"; 
     289                        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>"; 
    205290                                echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 
    206                         echo "\n\t</a> Grundbuch"; 
     291                        echo "\n\t</a>&nbsp;".$beznam." Blatt ".$blatt; 
    207292                echo "</div>";   
    208293        } 
    209294 
     295        GB_Buchung_FS($linelimit); // Externe Function: Blatt > GrundstÃŒck > Flurst. 
     296         
     297        return; 
     298} 
     299 
     300function getGBuFSbyPerson() { 
     301// 2 + 3 ========================================= 
     302// GrundbÃŒcher UND FlurstÃŒcke zur gewÀhlten Person 
     303// =============================================== 
     304// Dies ist die Kombination von Stufe 2 (GrundbÃŒcher zur Person) und 3 (FlurstÃŒcke zum Grundbuch)  
     305// in einem einzelnen Schritt. Wenn auf Gemeinde gefiltert wird, dann können in Stufe 2 (noch ohne Filter) 
     306// auch GrundbÃŒcher gefunden werden, die dann auf Stufe 3 (mit Filter) keine FS liefern ("Sackgasse"!). 
     307// Wenn aber per JOIN "GB -> FS -> Gemarkung -> Gemeinde" geprÃŒft wird, dann können  
     308// die Daten ja auch gleich ausgegeben werden. 
     309// FÃŒr FÀlle in denen nicht nach Gemeinde gefiltert wird (z.B. ganzer Kreis) kann weiter  
     310// Stufe 2 und 3 nacheinander verwendet werden. Dies ist wahrscheinlich ÃŒbersichtlicher,  
     311// weil "ungefiltert" in "2+3" zu lange Listen entstehen wÃŒrden, die durchblÀttert werden mÃŒssen.  
     312        global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath, $scalefs, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht; 
     313        $linelimit=80; // als Limit "Anzahl FlurstÃŒcke" in den beiden folgenden Abfragen 
     314        // darf nun etwas knapper sein, weil man jetzt blÀttern kann 
     315        familiensuche(); 
     316        personendaten(); 
     317 
     318        // Wenn das Limit ÃŒberschritten wurde: zusÀtzliche Parameter "blt"=BlÀttern 
     319        // $bltbez   = Bezirk-Name   
     320        // $bltblatt = BlattMitBuchstabe 
     321        // $bltbvnr  = lfd.Nr der Buchungsstelle 
     322        // $bltseite = fortlaufende Seiten-Nr 
     323        // $bltrecht = "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung  
     324 
    210325        // SQL-Bausteine vorbereiten 
    211         $sql1 ="SELECT s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
     326        //  Direkte Buchungen suchen mit:  $sql1 +         $sqla1 + $sql2 
     327        //  SonderfÀlle suchen mit:        $sql1 + $sqlz + $sqla2 + $sql2 
     328 
     329        // Baustein: SQL-Anfang fuer beide Varianten 
     330        $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam, "; 
     331        $sql1.="s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemarkung, ot.gemarkungsname, "; 
    212332        if($epsg == "25832") { // Transform nicht notwendig 
    213333                $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; 
    214                 $sql1.="st_y(st_centroid(f.wkb_geometry)) AS y, "; 
     334                $sql1.="st_y(st_centroid(f.wkb_geometry)) AS y "; 
    215335        } else {   
    216336                $sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 
    217                 $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";                      
    218         } 
    219         $sql1.="g.gemarkungsnummer, g.bezeichnung "; 
    220    $sql1.="FROM alkis_beziehungen vbg "; 
    221         $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id ";  
    222  
    223         // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 
    224         $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 
    225         $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 
    226  
    227         $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 
    228         $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 
    229  
    230         $sql2.="JOIN ax_flurstueck f  ON vfb.beziehung_von = f.gml_id "; 
    231    $sql2.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    232  
    233         if ($persfilter and ($gfilter > 0)) { 
    234                 $sql2.="JOIN gemeinde_gemarkung v ON g.land=v.land AND g.gemarkungsnummer=v.gemarkung "; 
    235         } 
    236  
    237         $sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 
    238  
    239         if ($persfilter and ($gfilter > 0)) { 
    240                 switch ($gfilter) { 
    241                         case 1: // Einzelwert 
    242                                 $sql2.="AND v.gemeinde=".$gemeinde." "; break; 
    243                         case 2: // Liste 
    244                                 $sql2.="AND v.gemeinde in (".$gemeinde.") "; break; 
    245                 } 
    246         } 
    247         $sql2.="ORDER BY s1.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 
    248  
    249         // Blatt <vbg/istBestandteilVon<  Buchungsstelle <vfb/istGebucht< Flurstck. 
    250         $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 
    251  
    252         $v=array($gb, $linelimit); 
    253         $res=pg_prepare("", $sql); 
    254         $res=pg_execute("", $v); 
    255         if (!$res) { 
    256                 echo "\n<p class='err'>Fehler bei Buchung und Flurst&uuml;ck.</p>"; 
    257                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
    258                 return; 
    259         } 
    260         $zfs1=0; 
    261         while($row = pg_fetch_array($res)) {     
    262                 $fs_gml=$row["gml_id"]; 
    263                 $bvnr=$row["lfd"]; 
    264                 if ($bvnr > 0) {$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);} else {$bvnr="";} 
    265                 $gmkg=$row["bezeichnung"]; 
    266                 $flur=$row["flurnummer"]; 
    267                 $fskenn=$row["zaehler"]; 
    268                 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    269                 $x=$row["x"]; 
    270                 $y=$row["y"]; 
    271                 echo "\n<div class='fs'>"; 
    272                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    273                                 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    274                         echo "\n\t</a> ";        
    275                         echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    276                                         echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    277                                         echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    278                                 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    279                                 echo "onmouseout='parent.parent.hideHighlight()'>"; 
    280                         echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; 
    281                 echo "\n</div>"; 
    282                 $zfs1++; 
    283         } 
    284  
    285         // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen 
    286         // buchungsStelle2 < an < buchungsStelle1 
    287         $sql=$sql1.$sqlz.$sqla2.$sql2; // Rechte an 
    288  
    289         $v=array($gb, $linelimit); 
    290         $res=pg_prepare("", $sql); 
    291         $res=pg_execute("", $v); 
    292         if (!$res) { 
    293                 echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 
    294                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
    295                 return; 
    296         } 
    297         $zfs2=0; 
    298         while($row = pg_fetch_array($res)) {     
    299                 $fs_gml=$row["gml_id"]; 
    300                 $bvnr=$row["lfd"]; 
    301                 if ($bvnr > 0) {$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);} else {$bvnr="";} 
    302                 $gmkg=$row["bezeichnung"]; 
    303                 $flur=$row["flurnummer"]; 
    304                 $fskenn=$row["zaehler"]; 
    305                 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    306                 $x=$row["x"]; 
    307                 $y=$row["y"]; 
    308                 echo "\n<div class='fs'>"; 
    309                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    310                                 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    311                         echo "\n\t</a> ";        
    312                         echo "\n\tRecht an <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    313                                         echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    314                                         echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    315                                 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    316                                 echo "onmouseout='parent.parent.hideHighlight()'>"; 
    317                         echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; 
    318                 echo "\n</div>"; 
    319                 $zfs2++; 
    320         } 
    321  
    322         if($zfs1 + $zfs2 == 0) {  
    323                 echo "\n<p class='err'>Kein Flurst&uuml;ck im berechtigten Bereich.</p>"; 
    324         //      echo "\n<p class='hilfe'>Hinweis: Sonderf&auml;lle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>"; 
    325         } elseif($zfs >= $linelimit) { 
    326                 echo "\n<p>... und weitere</p>";  
    327         } 
     337                $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y ";                       
     338        } 
     339        $sql1.="FROM alkis_beziehungen bpn "; 
     340        $sql1.="JOIN ax_namensnummer nn ON bpn.beziehung_von=nn.gml_id "; 
     341        $sql1.="JOIN alkis_beziehungen bng ON nn.gml_id=bng.beziehung_von "; 
     342        $sql1.="JOIN ax_buchungsblatt gb ON bng.beziehung_zu=gb.gml_id "; 
     343   $sql1.="JOIN alkis_beziehungen vbg ON gb.gml_id=vbg.beziehung_zu "; 
     344        $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von=s1.gml_id "; 
     345        $sql1.="JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; // quer-ab 
     346 
     347        // Baustein: Zwischen-JOIN (nur bei zweiter Abfrage) 
     348        $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von=s1.gml_id "; 
     349        $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu=s2.gml_id "; 
     350 
     351        // Baustein: Auswahl 1 oder 2 
     352        $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id=vfb.beziehung_zu "; 
     353        $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id=vfb.beziehung_zu "; 
     354 
     355        // Baustein: SQL-Ende fuer beide Varianten 
     356        $sql2.="JOIN ax_flurstueck f ON vfb.beziehung_von=f.gml_id "; 
     357   $sql2.="JOIN pp_gemarkung ot ON f.land=ot.land AND f.gemarkungsnummer=ot.gemarkung "; // Ortsteil 
     358        $sql2.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' "; 
     359        $sql2.="AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 
     360        switch ($gfilter) { // Gemeinde-Filter 
     361                case 1: // Einzelwert 
     362                        $sql2.="AND ot.gemeinde=".$gemeinde." "; break; 
     363                case 2: // Liste 
     364                        $sql2.="AND ot.gemeinde in (".$gemeinde.") "; break; 
     365        } 
     366        $sql3 ="ORDER BY gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 
     367        // Sortier-Problem: laufendenummer in varchar linksbÃŒndig 
     368 
     369        // Die Bausteine in 2 Varianten kombinieren 
     370 
     371        // BlÀttern mit folgenden Parametern: $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht 
     372        if ($bltbez.$bltblatt.$bltbvnr != "") { // BlÀttern, Fortsetzen bei ... 
     373                $bltwhere ="AND ((b.bezeichnung > '".$bltbez."') "; 
     374                $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung > '".$bltblatt."') "; 
     375                $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung = '".$bltblatt."' AND cast(s1.laufendenummer AS integer) >= ".$bltbvnr." )) "; 
     376        } // FlurstÃŒcke in der BVNR werden ggf. wiederholt 
     377 
     378        if ($bltseite == "") { // auf Seite 1 beide Teile ausgegeben 
     379                $bltseite = 1; 
     380        } else { // Folgegeseite: nur Teil 1 *oder* 2 
     381                echo "\n<p class='ein'>Teil ".$bltseite." - "; 
     382                switch ($bltrecht) { 
     383                        case "nur": 
     384                                echo "nur Rechte an .. Buchungen</p>"; break; 
     385                        case "ohne": 
     386                                echo "nur direkte Buchungen</p>"; break; 
     387                        default: 
     388                                echo "</p>"; break; 
     389                } 
     390        } 
     391 
     392        // FÀlle ohne "Rechte an" 
     393        if ($bltrecht != "nur") { // "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung 
     394                // Blatt <vbg/istBestandteilVon<  Buchungsstelle <vfb/istGebucht< Flurstck. 
     395                $sql=$sql1.$sqla1.$sql2.$bltwhere.$sql3; // Direkte Buchungen 
     396         
     397                $v=array($person, $linelimit); 
     398                $res=pg_prepare("", $sql); 
     399                $res=pg_execute("", $v); 
     400                if (!$res) { 
     401                        echo "\n<p class='err'>Fehler bei Buchung und Flurst&uuml;ck.</p>"; 
     402                        if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
     403                        return; 
     404                } 
     405                $zfs1=0; 
     406                $gwgb=""; 
     407                while($row = pg_fetch_array($res)) {     
     408                        $gb_gml=$row["gml_g"]; 
     409         
     410                        // Gruppenwechsel auf Ebene Grundbuch 
     411                        if ($gwgb != $gb_gml) { 
     412                                $beznam=$row["beznam"]; 
     413                                $blatt=$row["blatt"]; 
     414                                echo "\n<div class='gb'>"; // Ausgabe GB - B L A T T  
     415                                        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gb_gml."\")'>"; 
     416                                                echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 
     417                                        echo "\n\t</a> ";                
     418                                        echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$gb_gml."&amp;person=".$person."'> Blatt ".$blatt."&nbsp;</a>"; 
     419                                echo "\n</div>"; 
     420                                $gwgb = $gb_gml;        // Steuerg GW GB 
     421                                $gwbv = "";             // Steuerg GW BVNR 
     422                        } 
     423         
     424                        // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR) 
     425                        $bvnr=$row["lfd"]; 
     426                        if ($gwbv != $bvnr) { 
     427                                if ($bvnr == 0) { 
     428                                        $bvnra = "-"; 
     429                                } else { 
     430                                        $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 
     431                                } 
     432                                $gwbv = $bvnr; // Steuerg GW BVNR 
     433                                echo "\n<div class='gs' title='Grundst&uuml;ck'>"; 
     434                                echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
     435                                echo "Buchung ".$bvnra."</div>"; 
     436                        } 
     437         
     438                        $fs_gml=$row["gml_id"]; 
     439                        $gmkg=$row["gemarkungsname"]; 
     440                        $flur=$row["flurnummer"]; 
     441                        $fskenn=$row["zaehler"]; 
     442                        if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr 
     443                        $x=$row["x"]; 
     444                        $y=$row["y"]; 
     445                        echo "\n<div class='fs'>"; // F L U R S T Ü C K 
     446                                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
     447                                        echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
     448                                echo "\n\t</a> ";        
     449                                echo "\n\t".$gmkg." <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
     450                                                echo "javascript:"; 
     451                                                echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
     452                                                echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
     453                                                echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
     454                                        echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     455                                        echo "onmouseout='parent.parent.hideHighlight()'>"; 
     456                                echo " Flur ".$flur." ".$fskenn."</a>"; 
     457                        echo "\n</div>"; 
     458                        $zfs1++; 
     459                } 
     460                if($zfs1 == 0) { 
     461                        if ($bltrecht == "ohne") { 
     462                                echo "\n<p class='anz'>Keine direkte Buchung gefunden.</p>"; 
     463                                #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
     464                        } 
     465                } elseif($zfs1 >= $linelimit) { // das Limit war zu knapp, das  B l À t t e r n  anbieten 
     466                        echo "\n<p class='blt'>".$zfs1." Flurst&uuml;cke"; 
     467                        $nxtbltbez=urlencode($beznam); 
     468                        $nxtbltblatt=urlencode($blatt); 
     469                        $nxtbltseite=$bltseite + 1; 
     470                        echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person."&amp;bltbez=".$nxtbltbez."&amp;bltblatt=".$nxtbltblatt."&amp;bltbvnr=".$bvnr."&amp;bltseite=".$nxtbltseite."&amp;bltrecht=ohne' "; 
     471                        echo "title='Bl&auml;ttern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>"; 
     472                        echo "</p>"; 
     473                } elseif($zfs1 > 1) { // Meldung (Plural) ab 2  
     474                        echo "\n<p class='anz'>".$zfs1." Flurst&uuml;cke zum Eigent&uuml;mer</p>"; // im Limit 
     475                } 
     476        }        
     477 
     478        if ($bltrecht == "" and $zfs1 > 0) { // beides 
     479                echo "<hr>"; // dann Trenner 
     480        } 
     481 
     482        // FÀlle mit "Rechte an" 
     483        if ($bltrecht != "ohne") { // "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung  
     484                // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen 
     485                // buchungsStelle2 < an < buchungsStelle1 
     486                $sql=$sql1.$sqlz.$sqla2.$sql2.$bltwhere.$sql3; // Rechte an 
     487                $v=array($person, $linelimit); 
     488                $res=pg_prepare("", $sql); 
     489                $res=pg_execute("", $v); 
     490                if (!$res) { 
     491                        echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 
     492                        if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
     493                        return; 
     494                } 
     495                $zfs2=0; 
     496                $gwgb=""; 
     497                while($row = pg_fetch_array($res)) {     
     498                        // Gruppenwechsel auf Ebene Grundbuch 
     499                        $gb_gml=$row["gml_g"]; 
     500                        if ($gwgb != $gb_gml) {  
     501                                $beznam=$row["beznam"]; 
     502                                $blatt=$row["blatt"]; 
     503                                echo "\n<div class='gb'>"; // Ausgabe GB 
     504                                        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gb_gml."\")'>"; 
     505                                                echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 
     506                                        echo "\n\t</a> ";                
     507                                        echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$gb_gml."&amp;person=".$person."'> Blatt ".$blatt."&nbsp;</a>"; 
     508                                echo "\n</div>"; 
     509                                $gwgb = $gb_gml;        // Steuerg GW GB 
     510                                $gwbv = "";             // Steuerg GW BVNR 
     511                        } 
     512 
     513                        // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR) 
     514                        $bvnr=$row["lfd"]; 
     515                        if ($gwbv != $bvnr) { 
     516                                if ($bvnr == 0) { 
     517                                        $bvnra = "-"; 
     518                                } else { 
     519                                        $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 
     520                                } 
     521                                $gwbv = $bvnr; // Steuerg GW BVNR 
     522                                echo "\n<div class='gs' title='Grundst&uuml;ck'>"; 
     523                                echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
     524                                echo "Buchung ".$bvnra."</div>"; 
     525                        } 
     526 
     527                        $fs_gml=$row["gml_id"]; 
     528                        $gmkg=$row["gemarkungsname"]; 
     529                        $flur=$row["flurnummer"]; 
     530                        $fskenn=$row["zaehler"]; 
     531                        if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
     532                        $x=$row["x"]; 
     533                        $y=$row["y"]; 
     534                        echo "\n<div class='fs'>"; 
     535                                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
     536                                        echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
     537                                echo "\n\t</a> ";        
     538                                echo "\n\tRecht an ".$gmkg." <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
     539                                                echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
     540                                                echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
     541                                        echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     542                                        echo "onmouseout='parent.parent.hideHighlight()'>"; 
     543                                echo " Flur ".$flur." ".$fskenn."</a>"; 
     544                        echo "\n</div>"; 
     545                        $zfs2++; 
     546                } 
     547                if($zfs2 == 0) { 
     548                        if ($zfs1 == 0 or $bltrecht == "nur") { // keine Meldung wenn schon in Teil 1 eine Ausgabe 
     549                                echo "\n<p class='anz'>Keine Rechte an Buchungen.</p>"; 
     550                                #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
     551                        } 
     552                } elseif($zfs2 >= $linelimit) { // das Limit war zu knapp, das  B l À t t e r n  anbieten 
     553                        echo "\n<p class='blt'>".$zfs2." Rechte an Flurst."; 
     554                        $nxtbltbez=urlencode($beznam); 
     555                        $nxtbltblatt=urlencode($blatt); 
     556                        $nxtbltseite=$bltseite + 1; 
     557                        echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person."&amp;bltbez=".$nxtbltbez."&amp;bltblatt=".$nxtbltblatt."&amp;bltbvnr=".$bvnr."&amp;bltseite=".$nxtbltseite."&amp;bltrecht=nur' "; 
     558                        echo "title='Bl&auml;ttern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>"; 
     559                        echo "</p>"; 
     560                } elseif($zfs2 > 1) { // ab 2 
     561                        echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>"; // im Limit             
     562                } 
     563        } // ENDE FÀlle mit "Rechte an" 
    328564        return; 
    329565} 
     
    332568// Start hier! 
    333569// =========== 
     570 
    334571// Parameter:   
    335572// 1. name   = Suche nach Namensanfang oder -bestandteil. 
    336573// 2. person = gml_id der Person      -> Suche nach GrundbÃŒchern 
    337574// 3. gb     = gml_id des Grundbuches -> Suche nach FlurstÃŒcken 
     575 
    338576if(isset($epsg)) { 
    339         if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";} // aus MB 
     577        #if ($debug >= 2) {echo "\n<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB 
    340578        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);    
    341579} else { 
    342         if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}  
     580        #if ($debug >= 1) {echo "<p class='dbg'>kein EPSG gesetzt</p>";}         
    343581        $epsg=$gui_epsg; // aus Conf 
    344582} 
    345 if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";} 
     583#if ($debug >= 2) {echo "\n<p class='dbg'>Filter Gemeinde = '".$gemeinde."'</p>";} 
    346584if ($gemeinde == "") { 
    347         $gfilter = 0; // ungefiltert 
     585        $gfilter = 0; // Gemeinde ungefiltert 
    348586} elseif(strpos($gemeinde, ",") === false) { 
    349         $gfilter = 1; // Einzelwert 
     587        $gfilter = 1; // Gemeinde Einzelwert 
    350588} else { 
    351         $gfilter = 2; // Liste 
    352 } 
    353  
    354 // Welche Parameter? 
    355 // 3. Stufe: FlurstÃŒcke zum Grundbuch 
    356 if(isset($gb)) { // gml_id 
     589        $gfilter = 2; // Gemeinde Filter-Liste 
     590} 
     591 
     592// Quo Vadis? 
     593if(isset($blattgml)) {          // 3. Stufe: FlurstÃŒcke zum Grundbuch 
     594 
    357595        // Das Programm hat sich selbst verlinkt aus einer Liste der GB zu einem EigentÃŒmer. 
    358596        // Wenn Parameter mitgegeben wurden, können diese fÃŒr einen "Link zurÃŒck" verwendet werden. 
    359         getFSbyGB(true); 
    360 } elseif(isset($person)) { // gml_id - 2. Stufe: GrundbÃŒcher zur Person 
     597        $trans="Flurst&uuml;cke zum Grundbuch"; 
     598        getFSbyGB(true);                                // mit BackLink 
     599 
     600} elseif(isset($person)) {      // 2. Stufe: GrundbÃŒcher zur Person 
    361601        // Das Programm hat sich selbst verlinkt aus einer Liste der Personen zu einer Suchmaske. 
    362         getGBbyPerson();  
    363         if(isset($gb) ) { getFSbyGB(false);} // Es wurde nur EIN Grundbuch zu der Person gefunden. 
    364 } elseif(isset($name)) { // Suchbegriff aus Form - 1. Stufe: Suche nach Name 
    365         getEigByName();  
    366         if(isset($person)) { getGBbyPerson();} 
     602        if ($debug >= 2) {echo "\n<p class='dbg'>Gemeinde-Filter-Steuerung = '".$gfilter."'</p>";} 
     603 
     604        // Die Filtereinstellung beeinflusst die Such-Strategie: 
     605        if ($gfilter == 0) {                    // Keine Filterung auf "Gemeinde": große Datenmenge 
     606 
     607                $trans="Grundb&uuml;cher zum Eigent&uuml;mer"; 
     608                getGBbyPerson(); 
     609                // Also schrittweise erst mal Stufe 2 = GrundbÃŒcher zur Person suchen. 
     610                // Diese Function hat auch noch keine Gemeinde-Filter-Funktion auf GB-Ebene. 
     611                                                                         
     612                if(isset($blattgml) ) { // Es wurde nur EIN Grundbuch zu der Person gefunden. 
     613                        $trans="1 Blatt zum Eigent&uuml;mer"; 
     614                        getFSbyGB(false);       // Dann dazu auch gleich die Stufe 3 hinterher, aber ohne Backlink. 
     615                }  
     616 
     617        } else {                                                // mit Filter auf Gemeinde: weniger Daten? 
     618 
     619                $trans="Grundb. und Flurst. zum Eigent&uuml;mer"; 
     620                getGBuFSbyPerson();             // Schritte 2+3 gleichzeitig, dabei Gemeinde-Filter auf Stufe 3 
     621        } 
     622 
     623} elseif(isset($name)) {        // Suchbegriff aus Form - 1. Stufe: Suche nach Name 
     624 
     625        $trans="Namensuche \"".$name."\""; 
     626        getEigByName();                         // Suchen nach Namensanfang 
     627 
     628        if(isset($person)) {            // genau EIN Treffer 
     629                $trans="1 Grundbuch zum Namen"; 
     630                getGBbyPerson();                // Dann gleich das Grundbuch hinterher 
     631        } 
     632 
    367633} elseif ($debug >= 2) { 
    368         echo "\n<p>Parameter?</p>"; // Programmfehler 
    369 } 
     634        echo "\n<p class='dbg'>Parameter?</p>"; // Programmfehler, soll nicht vorkommen 
     635} 
     636// Titel im Kopf anzeigen 
     637echo "\n<script type='text/javascript'>\n\ttranstitle('".$trans."')\n</script>"; 
     638 
    370639?> 
    371640 
  • trunk/mapbender/http/nav/alkisnav_fls.php

    r276 r278  
    11<?php 
    22/* Version vom 
    3         2011-10-24 Nach Pos-Klick Highlight erneuern statt hideHighlight 
    4         2011-11-07 optional auch Historische FS suchen, Link auf Buchauskunft-Modul alkisfshis.php 
    5         2011-11-09 "h" hinter Flur oder FlurstÃŒck sucht sofort in Historie 
     3        2011-10-24      Nach Pos-Klick Highlight erneuern statt hideHighlight 
     4        2011-11-07      optional auch Historische FS suchen, Link auf Buchauskunft-Modul alkisfshis.php 
     5        2011-11-09      "h" hinter Flur oder FlurstÃŒck sucht sofort in Historie 
    66                                        Ausgabe Flur in Varianten aktuell/historisch mit gegenseitigen Verweisen 
    7         2011-11-11 Nachfolger-Liste in der DB nachschlagen, und aktuelle FS als solche kennzeichnen 
    8                                 neue Icons fÃŒr Link mit Pfeil 
    9                                 Differenzierung mit/ohne Raumbezug bei Icons fuer Histor. FS 
    10                                 Gemarkung- und Flur-Zeile vor einzelnem FlurstÃŒck ausgeben 
    11         2011-11-17 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
    12         2013-04-16 "import_request_variables" entfÀllt in PHP 5.4,  
    13                                 Fehlerkorrektur Komma in SQL bei FS-Suche. 
     7        2011-11-11      Nachfolger-Liste in der DB nachschlagen, und aktuelle FS als solche kennzeichnen 
     8                                        neue Icons fÃŒr Link mit Pfeil 
     9                                        Differenzierung mit/ohne Raumbezug bei Icons fuer Histor. FS 
     10                                        Gemarkung- und Flur-Zeile vor einzelnem FlurstÃŒck ausgeben 
     11        2011-11-17      Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
     12        2013-04-16      "import_request_variables" entfÀllt in PHP 5.4,  
     13                                        Fehlerkorrektur Komma in SQL bei FS-Suche. 
     14        2013-04-26      Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" 
     15                                        ZurÃŒck-Link, Titel der Transaktion anzeigen 
    1416*/ 
    1517$cntget = extract($_GET); 
     
    1719$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
    1820$con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname.$dbvers.$gkz); 
    19 ?> 
    20  
     21echo <<<END 
    2122<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    2223<html> 
     
    3334                        window.open(link,'','left=10,top=10,width=620,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes'); 
    3435                } 
     36                function transtitle(trans) { 
     37                        document.getElementById('transaktiontitle').innerHTML = trans; 
     38                } 
    3539        </script> 
    3640</head> 
    3741<body> 
    38  
    39 <?php 
     42<a title="zur&uuml;ck" href='javascript:history.back()'> 
     43        <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" /> 
     44</a> 
     45<dfn class='title' id='transaktiontitle'></dfn> 
     46 
     47END; 
    4048 
    4149function is_ne_zahl($wert) { 
     
    146154        global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 
    147155        $linelimit=50; 
    148         $sql ="SELECT DISTINCT g.gemeinde AS key, g.bezeichnung FROM ax_gemeinde g "; 
    149         $sql.="JOIN gemeinde_gemarkung v ON g.regierungsbezirk=v.regierungsbezirk AND g.kreis=v.kreis AND g.gemeinde=v.gemeinde "; 
    150         // "ax_gemeinde" enthÀlt mehrfache Gemeinde-Schluessel (Filtern regierungsbezirk, kreis)        
    151         // "gemeinde_gemarkung" enthaelt nur gefÃŒllte Gemarkungen aber Gemeinde mehrfach 
     156        $sql ="SELECT gemeinde, gemeindename FROM pp_gemeinde "; 
    152157        switch ($gfilter) { 
    153158                case 1: // Einzelwert 
    154                         $sql.="WHERE g.gemeinde=".$gemeinde." "; 
     159                        $sql.="WHERE gemeinde=".$gemeinde." "; 
    155160                        break; 
    156161                case 2: // Liste 
    157                         $sql.="WHERE g.gemeinde in (".$gemeinde.") "; 
     162                        $sql.="WHERE gemeinde in (".$gemeinde.") "; 
    158163                        break; 
    159164                default: // kein Filter 
    160165                        break; 
    161166        } 
    162         $sql.=" ORDER BY g.bezeichnung LIMIT $1 ;"; 
     167        $sql.=" ORDER BY gemeindename LIMIT $1 ;"; 
    163168        $res=pg_prepare("", $sql); 
    164169        $res=pg_execute("", array($linelimit)); 
     
    170175        $cnt = 0; 
    171176        while($row = pg_fetch_array($res)) { 
    172                 $stadt=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
    173                 $bez=urlencode($row["bezeichnung"]);  // Uebergeben an ListGmkgInGemeinde 
    174                 $gnr=$row["key"]; 
     177                $gemeindename=$row["gemeindename"]; 
     178                $stadt=htmlentities($gemeindename, ENT_QUOTES, "UTF-8"); 
     179                $bez=urlencode($gemeindename);  // Uebergeben an ListGmkgInGemeinde 
     180                $gnr=$row["gemeinde"]; 
    175181                echo "\n<div class='gm' title='Gemeinde'>"; 
    176182                        echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 
     
    181187        } 
    182188        if($cnt == 0){  
    183                 echo "\n<p class='err'>Keine Gemeinde.</p>"; 
     189                echo "\n<p class='anz'>Keine Gemeinde.</p>"; 
    184190        } elseif($cnt >= $linelimit) { 
    185                 echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>"; 
     191                echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemeinden ... und weitere</p>"; 
     192                // +++ BlÀttern ? 
    186193        } elseif($cnt == 1) { // Eindeutig! 
    187194                return $gnr;  
     195        } else { 
     196                echo "\n<p class='anz'>".$cnt." Gemeinden</p>"; 
    188197        } 
    189198        return 0; 
     
    194203        global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter, $bez; 
    195204        $linelimit=70; 
    196         $sql ="SELECT g.gemarkungsnummer, g.bezeichnung "; 
    197         $sql.="FROM ax_gemarkung g JOIN gemeinde_gemarkung v ON g.gemarkungsnummer=v.gemarkung "; 
    198    $sql.="WHERE v.gemeinde= $1 ORDER BY g.bezeichnung LIMIT $2 ;"; 
     205        $sql ="SELECT gemarkung, gemarkungsname FROM pp_gemarkung "; 
     206   $sql.="WHERE gemeinde= $1 ORDER BY gemarkungsname LIMIT $2 ;"; 
    199207        $res=pg_prepare("", $sql); 
    200208        $res=pg_execute("", array($gkey, $linelimit)); 
     
    211219        $cnt = 0; 
    212220        while($row = pg_fetch_array($res)) { 
    213                 $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
    214                 $gnr=$row["gemarkungsnummer"]; 
     221                $gnam=htmlentities($row["gemarkungsname"], ENT_QUOTES, "UTF-8"); 
     222                $gnr=$row["gemarkung"]; 
    215223                echo "\n<div class='gk' title='Gemarkung'>"; 
    216224                        echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
     
    221229        } 
    222230        if($cnt == 0){  
    223                 echo "\n<p class='err'>Keine Gemarkung.</p>"; 
     231                echo "\n<p class='anz'>Keine Gemarkung.</p>"; 
    224232        } elseif($cnt >= $linelimit) { 
    225                 echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>"; 
     233                echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemarkungen ... und weitere</p>"; 
     234                // +++ BlÀttern ? 
    226235        } elseif($cnt == 1) { // Eindeutig! 
    227236                return $gnr;  
     237        } else { 
     238                echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 
    228239        } 
    229240        return 0; 
     
    239250                $match = trim($fskennz)."%"; 
    240251        }        
    241         $sql ="SELECT v.gemeindename, g.gemarkungsnummer, g.bezeichnung "; 
    242         $sql.="FROM ax_gemarkung g JOIN gemeinde_gemarkung v ON g.gemarkungsnummer=v.gemarkung "; 
    243    $sql.="WHERE bezeichnung ILIKE $1 "; 
     252        $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname "; 
     253        If ($gfilter == 0 OR $gfilter == 2) { // Stadt anzeigen 
     254                $sql.=", s.gemeindename FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde = s.gemeinde "; 
     255        } else { 
     256                $sql.="FROM pp_gemarkung g "; 
     257        } 
     258        $sql.="WHERE g.gemarkungsname ILIKE $1 "; 
    244259        switch ($gfilter) { 
    245260                case 1: // Einzelwert 
    246                         $sql.="AND v.gemeinde=".$gemeinde." "; 
     261                        $sql.="AND g.gemeinde = ".$gemeinde." "; 
    247262                        break; 
    248263                case 2: // Liste 
    249                         $sql.="AND v.gemeinde in (".$gemeinde.") "; 
     264                        $sql.="AND g.gemeinde in (".$gemeinde.") "; 
    250265                        break; 
    251266                default: // kein Filter 
    252267                        break; 
    253268        } 
    254         $sql.=" ORDER BY g.bezeichnung LIMIT $2 ;"; 
     269        $sql.=" ORDER BY g.gemarkungsname LIMIT $2 ;"; 
    255270        $v=array($match, $linelimit); 
    256271        $res=pg_prepare("", $sql); 
     
    263278        $cnt = 0; 
    264279        while($row = pg_fetch_array($res)) { 
    265                 $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
    266                 $gnr=$row["gemarkungsnummer"]; 
    267                 $stadt=$row["gemeindename"]; 
     280                $gnam=htmlentities($row["gemarkungsname"], ENT_QUOTES, "UTF-8"); 
     281                $gnr=$row["gemarkung"]; 
     282 
    268283                echo "\n<div class='gk' title='Gemarkung'>"; 
    269284                        echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
     
    272287                        switch ($gfilter) { 
    273288                                case 0: // Kein Filter 
    274                                         echo " ".$stadt; 
     289                                        echo " ".$row["gemeindename"]; 
    275290                                        break; 
    276291                                case 2: // Liste 
    277                                         echo " ".$stadt; 
     292                                        echo " ".$row["gemeindename"]; 
    278293                                        break; 
    279294                                default: // Einzelwert 
     
    284299        } 
    285300        if($cnt == 0){  
    286                 echo "\n<p class='err'>Keine Gemarkung.</p>"; 
     301                echo "\n<p class='anz'>Keine Gemarkung.</p>"; 
    287302        } elseif($cnt >= $linelimit) { 
    288                 echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>"; 
     303                echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemarkungen ... und weitere</p>"; 
    289304        } elseif($cnt == 1) { // Eindeutig! 
    290305                return $gnr;  
     306        } else { 
     307                echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 
    291308        } 
    292309        return 0; 
     
    338355        } 
    339356        if($zfl == 0) {  
    340                 echo "\n<p class='err'>Keine Flur.</p>"; 
    341         } elseif($cnt >= $linelimit) { 
    342                 echo "\n<p>... und weitere</p>"; 
     357                echo "\n<p class='anz'>Keine Flur.</p>"; 
     358        } elseif($zfl >= $linelimit) { 
     359                echo "\n<p class='anz'>".$zfl." Fluren ... und weitere</p>"; 
     360        } elseif($zfl > 1) { 
     361                echo "\n<p class='anz'>".$zfl." Fluren</p>"; 
    343362        } 
    344363        return; 
     
    379398                        echo "\n\t</a> ";                        
    380399                        echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    381                                         echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
     400                                        echo "javascript:"; 
     401                                        echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
     402                                        echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    382403                                        echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    383404                                echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     
    387408        } 
    388409        if($zfs == 0) {  
    389                 echo "\n<p class='err'>Kein Flurst&uuml;ck.</p>"; 
     410                echo "\n<p class='anz'>Kein Flurst&uuml;ck.</p>"; 
    390411        } elseif($zfs >= $linelimit) { 
    391                 echo "\n<p>... und weitere</p>"; 
     412                echo "\n<p class='anz'>".$zfs." Flurst&uuml;cke... und weitere</p>"; 
     413        } elseif($zfs > 1) { 
     414                echo "\n<p class='anz'>".$zfs." Flurst&uuml;cke</p>"; 
    392415        } 
    393416        return; 
     
    444467        } 
    445468        if($zfs == 0) {  
    446                 echo "\n<p class='err'>Kein historisches Flurst&uuml;ck.</p>"; 
    447                 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = ".$fskzwhere."</p>";} 
     469                echo "\n<p class='anz'>Kein historisches Flurst&uuml;ck.</p>"; 
     470                #if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = ".$fskzwhere."</p>";} 
    448471        } elseif ($zfs >= $linelimit) { 
    449                 echo "\n<p>... und weitere</p>"; 
     472                echo "\n<p class='anz'>".$zfs." historische Flurst. ... und weitere</p>"; 
     473        } elseif($zfs > 1) { 
     474                echo "\n<p class='anz'>".$zfs." historische Flurst&uuml;cke</p>"; 
    450475        } 
    451476        return; 
     
    490515                        echo "\n\t</a> ";                
    491516                        echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    492                                         echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
     517                                        echo "javascript:"; 
     518                                        echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
     519                                        echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    493520                                        echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    494521                                echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     
    578605                                // Kennzeichen -> Karte positionieren 
    579606                                echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    580                                                 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
     607                                                echo "javascript:"; 
     608                                                echo "transtitle(\"auf H-Flurst&uuml;ck positioniert\"); "; 
     609                                                echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    581610                                                echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    582611                                        echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     
    663692                                } 
    664693                                if ($zfsn == 0) { 
    665                                         echo "<p class='err'>keine Nachfolger gefunden</p>"; 
    666                                         if ($debug > 1) {echo "<p class='dbg'>SQL=<br>".$sqln."<br>Liste=<br> ".$stri."</p>";} 
     694                                        echo "\n<p class='err'>keine Nachfolger gefunden</p>"; 
     695                                        if ($debug > 1) {echo "\n<p class='dbg'>SQL=<br>".$sqln."<br>Liste=<br> ".$stri."</p>";} 
    667696                                }                
    668697                        } 
     
    672701        if($zfs == 0) { 
    673702                echo "\n<p class='err'>Kein historisches Flurst&uuml;ck.</p>"; 
    674                 if ($debug > 2) {echo "<p class='dbg'>".$sql."</p>";} 
     703                #if ($debug > 2) {echo "\n<p class='dbg'>".$sql."</p>";} 
    675704        } 
    676705        return; 
     
    684713        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);    
    685714} else { 
    686         if ($debug >= 1) {echo "<p class='dbg'>kein EPSG gesetzt</p>";}  
     715        if ($debug >= 1) {echo "\n<p class='dbg'>kein EPSG gesetzt</p>";}        
    687716        $epsg=$gui_epsg; // aus Conf 
    688717} 
     
    697726if ($hist == "j") {$phist = true;} else {$phist = false;} 
    698727 
    699 if(isset($gm)) { // Self-Link aus Gemeinde-Liste  
    700         $gnr=ListGmkgInGemeinde($gm); // Gemarkungen zu dieser Gemeinde listen 
     728if(isset($gm)) { // Self-Link aus Gemeinde-Liste 
     729        $trans="Gemarkungen zur Gemeinde"; 
     730        $gnr=ListGmkgInGemeinde($gm); 
    701731        if ($gnr > 0) { 
    702732                $zgemkg=$gnr; 
    703733                EineGemarkung(false); 
    704734        } 
    705 } else { 
    706         // Die Formular-Eingabe interpretieren (kann auch ein Link sein) 
     735} else { // Die Formular-Eingabe interpretieren (kann auch ein Link sein) 
    707736        $retzer=ZerlegungFsKennz($fskennz); 
    708 //      if ($debug > 1) {echo "<p class='dbg'>Return Zerlegung (case) = '".$retzer."'</p>";}     
     737        #if ($debug > 1) {echo "<p class='dbg'>Return Zerlegung (case) = '".$retzer."'</p>";}    
    709738        switch ($retzer) { 
    710739        case 0: // leere Eingabe 
    711740                if ($gfilter == 1) { // Die GUI ist bereits auf eine Gemeinde gefiltert 
    712                         SuchGmkgName(); // Gemarkungen listen 
     741                        $trans="Liste der Gemarkungen"; 
     742                        SuchGmkgName(); 
    713743                } else { 
    714                         ListGemeinden(); // alle Gemeinden Listen 
     744                        $trans="Liste der Gemeinden"; 
     745                        ListGemeinden(); 
    715746                } 
    716747        break; 
    717748        case 1: 
    718                 if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsname ".$zgemkg."</p>";} 
     749                #if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsname ".$zgemkg."</p>";} 
     750                $trans="Suche Gemarkungsname"; 
    719751                $gnr=SuchGmkgName(); 
    720752                if ($gnr > 0) { 
     753                        $trans="1 Gemarkung, Fluren dazu"; 
    721754                        $zgemkg=$gnr; 
    722755                        EineGemarkung(false); 
     
    724757        break; 
    725758        case 2: 
    726                 if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsnummer ".$zgemkg."</p>";}       
     759                #if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsnummer ".$zgemkg."</p>";} 
     760                $trans="Fluren in Gemarkung"; 
    727761                EineGemarkung(true); 
    728762        break; 
    729763        case 3: 
    730                 if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";} 
    731                 if ($phist)     {HistFlur();} else {EineFlur();} 
     764                #if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";} 
     765                if ($phist)     { 
     766                        $trans="historische Flurst. in Flur"; 
     767                        HistFlur(); 
     768                } else { 
     769                        $trans="Flurst&uuml;cke in Flur"; 
     770                        EineFlur(); 
     771                } 
    732772        break; 
    733773        case 4: 
    734                 if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";} 
    735                 if ($phist)     {HistFlurstueck();} else {EinFlurstueck();} 
     774                #if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";} 
     775                if ($phist)     { 
     776                        $trans="historisches Flurst&uuml;ck"; 
     777                        HistFlurstueck(); 
     778                } else { 
     779                        $trans="Flurst&uuml;ck"; 
     780                        EinFlurstueck(); 
     781                } 
    736782        break; 
    737783        case 5: 
    738                 if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."</p>";} 
    739                 if ($phist) {HistFlurstueck();} else {EinFlurstueck();}          
     784                if ($phist) { 
     785                        $trans="historisches Flurst&uuml;ck"; 
     786                        HistFlurstueck(); 
     787                } else { 
     788                        $trans="Flurst&uuml;ck"; 
     789                        EinFlurstueck(); 
     790                }                
    740791        break; 
    741792        case 9: 
    742                 echo "<p class='err'>Bitte ein Flurst&uuml;ckskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>"; 
     793                $trans="falsche Eingabe"; 
     794                echo "\n<p class='err'>Bitte ein Flurst&uuml;ckskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>"; 
    743795        break; 
    744796        } 
    745797} 
     798// Titel im Kopf anzeigen 
     799echo "\n<script type='text/javascript'>\n\ttranstitle('".$trans."')\n</script>"; 
    746800 
    747801?> 
  • trunk/mapbender/http/nav/alkisnav_grd.php

    r276 r278  
    11<?php 
    22/* Version vom 
    3         2011-10-24 Nach Pos-Klick Highlight erneuern statt hideHighlight 
    4         2011-11-17 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
    5         2011-12-14 "window.open(..,width=680" 
    6         2012-01-16 Blattnummer in 2 Varianten suchen 
    7         2012-01-17 Blattnummer ohne Buchstabe in 3 Varianten suchen 
    8         2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 
     3        2011-10-24      Nach Pos-Klick Highlight erneuern statt hideHighlight 
     4        2011-11-17      Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
     5        2011-12-14      "window.open(..,width=680" 
     6        2012-01-16      Blattnummer in 2 Varianten suchen 
     7        2012-01-17      Blattnummer ohne Buchstabe in 3 Varianten suchen 
     8        2013-04-16      "import_request_variables" entfÀllt in PHP 5.4 
     9        2013-04-26      Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" 
     10                                        Code aus _eig nach_fkt ausgelegert, hier mit nutzen.  
     11                                        Dazu Var-Namen harmonisieren: $gblatt wird $blattgml 
     12                                        ZurÃŒck-Link, Titel der Transaktion anzeigen. 
    913*/ 
    1014$cntget = extract($_GET); 
    11 include("../../conf/alkisnav_conf.php"); 
     15 
     16include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 
     17include("alkisnav_fkt.php"); // Funktionen 
     18 
    1219$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
    1320$con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname.$dbvers.$gkz); 
    14 ?> 
    15  
     21echo <<<END 
    1622<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    1723<html> 
     
    2834                        window.open(link,'','left=10,top=10,width=680,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes'); 
    2935                } 
     36                function transtitle(trans) { 
     37                        document.getElementById('transaktiontitle').innerHTML = trans; 
     38                } 
    3039        </script> 
    3140</head> 
    3241<body> 
    33  
    34 <?php 
     42<a title="zur&uuml;ck" href='javascript:history.back()'> 
     43        <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" /> 
     44</a> 
     45<dfn class='title' id='transaktiontitle'></dfn> 
     46 
     47END; 
     48 
    3549function is_ne_zahl($wert) { 
    3650        // Prueft, ob ein Wert ausschließlich aus den Zahlen 0 bis 9 besteht 
     
    116130        } 
    117131        if($cnt == 0){ // falsch configuriert! 
    118                 echo "\n<p class='err'>Kein Amtsgericht aus Liste ".$$liste_ag.".</p>"; 
     132                echo "\n<p class='anz'>Kein Amtsgericht aus Liste ".$$liste_ag.".</p>"; 
    119133        } elseif ($cnt >= $linelimit) { 
    120                 echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>"; 
     134                echo "\n<p title='Bitte eindeutiger qualifizieren'>".$cnt." Amtsgerichte ... und weitere</p>"; 
     135        } elseif ($cnt > 1) { 
     136                echo "\n<p class='anz'>".$cnt." Amtsgerichte</p>"; 
    121137        } 
    122138        return 0; 
     
    125141function ListGBBez($liste_ag, $mit_ag) { 
    126142        // Grundbuch-Bezirke auflisten. 
     143        // +++ auch wenn BlÀtter da sind, kann es eine Sackgasse sein. 
     144        // +++ manchmal haben die BlÀtter keine FlurstÃŒcke. 
    127145        global $con, $gkz, $gemeinde, $epsg, $debug, $gbkennz; 
    128         $linelimit=70; 
     146        $linelimit=90; 
    129147        $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    130148        $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 
    131149        $sql.="WHERE a.stelle IN (".$liste_ag.") AND a.stellenart = 1000 "; // Amtsgericht aus Liste 
     150        // Diese Subquery stellt sicher, dass nur Bezirke aufgelistett werden, die auch BlÀtter enthalten: 
     151        $sql.="AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land and b.bezirk=g.bezirk LIMIT 1) IS NULL "; 
    132152        $sql.="ORDER BY g.bezeichnung LIMIT $1 ;"; 
    133153        $res = pg_prepare("", $sql); 
     
    154174                $cnt++; 
    155175        } 
    156         if($cnt == 0){ // falsch configuriert 
    157                 echo "\n<p class='err'>Kein Grundbuchbezirk zu den Amtsgerichten ".$liste_ag.".</p>"; 
     176        if($cnt == 0){ 
     177                echo "\n<p class='anz'>Kein Bezirk mit Bl&auml;ttern.</p>"; 
    158178        } elseif ($cnt >= $linelimit) { 
    159                 echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>"; 
     179                echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Bezirke ... und weitere</p>"; 
     180        } elseif($cnt > 1) { 
     181                echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit        
    160182        } 
    161183        return 0; 
     
    194216                $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8");               
    195217                $anr=$row["stelle"]; 
    196                 echo "\n<div class='gk' title='GB-Bezirk'>"; 
     218                echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 
    197219                        echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Gemkg'> "; 
    198220                        echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$gnr."'>";            
     
    203225        } 
    204226        if($cnt == 0){  
    205                 echo "\n<p class='err'>Kein Grundbuchbezirk.</p>"; 
     227                echo "\n<p class='anz'>Kein Grundbuchbezirk.</p>"; 
    206228        } elseif ($cnt >= $linelimit) { 
    207                 echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>"; 
     229                echo "\n<p title='Bitte eindeutiger qualifizieren'>".$cnt." Bezirke ... und weitere</p>"; 
    208230        } elseif ($cnt == 1) { 
    209231                return $gnr; // Wenn eindeutig, gleich weiter 
     232        } elseif ($cnt > 1) { 
     233                echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit        
    210234        } 
    211235        return 0; 
     
    216240        global $con, $gkz, $gemeinde, $epsg, $debug, $zgbbez, $auskpath; 
    217241        $linelimit=250; // max. Blatt je Bezirk 
    218         // Dies linelimit ist nicht ausreichend fuer alle Blaetter eines Bezirks, aber ... 
     242        // Dies Limit ist nicht ausreichend fÃŒr alle BlÀtter eines Bezirks, aber ... 
    219243        // Wenn man die Blatt-Nr nicht kennt, kommt man hier sowieso nicht weiter. 
    220         // Es nutzt also nichts, hier Tausende Nummern aufzulisten. 
     244        // Es nutzt also nichts, hier tausende Nummern aufzulisten. 
     245        // +++ BlÀtter-Funktion einfÃŒhren analog Modul _eig 
    221246        if ($showParent) { 
    222247                $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 
    223                 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 
    224                 $sql.="WHERE g.bezirk= $1 ;"; 
     248                $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 ;"; 
    225249                $v=array($zgbbez); 
    226250                $res=pg_prepare("", $sql); 
     
    279303                                echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 
    280304                        echo "\n\t</a> "; 
    281                         echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gblatt=".$gml."&amp;gbkennz=".$zgbbez."-".$blatt."'>&nbsp;".$blattd."&nbsp;</a>"; 
     305                        echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$gml."&amp;gbkennz=".$zgbbez."-".$blatt."'>&nbsp;".$blattd."&nbsp;</a>"; 
    282306                echo "\n</div>"; 
    283307                $cntbl++; 
    284308        } 
    285309        if($cntbl == 0) {  
    286                 echo "\n<p class='err'>Kein Blatt im Bezirk.</p>"; 
    287         } else { 
    288                 if($cntbl >= $linelimit) { 
    289                         echo "\n<p>... und weitere</p>"; 
    290                         echo "\n<p>Geben sie ein: '".$zgbbez."-999A'<br>wobei '999A' = gesuchtes GB-Blatt</p>"; 
    291                 } 
     310                echo "\n<p class='anz'>Kein Blatt im Bezirk.</p>"; 
     311        } elseif($cntbl >= $linelimit) { 
     312                echo "\n<p class='anz'>".$cntbl." Bl&auml;tter ... und weitere</p>"; 
     313                // +++ Hier oft ÃŒberschritten! BlÀtter-Funktion einfÃŒhren 
     314                echo "\n<p>Geben sie ein: '".$zgbbez."-999A'<br>wobei '999A' = gesuchtes GB-Blatt</p>"; 
     315        } elseif ($cntbl > 1) { 
     316                echo "\n<p class='anz'>".$cntbl." Bl&auml;tter</p>"; // im Limit         
    292317        } 
    293318        return; 
     
    320345        if($cntbl == 0) {  
    321346                echo "\n<p class='err'>Grundbuchblatt '".$zgbbez."-".$zblatt."' nicht gefunden.</p>"; 
    322         } elseif($cntbl == 1) { 
     347        } elseif ($cntbl == 1) { 
    323348                return $bl_gml; 
    324349        } 
     
    326351} 
    327352 
    328 function EinBlatt($showParent) { 
     353/* 
     354function EinBlatt_ALT($showParent) { 
    329355        // Kennzeichen Bezirk + Blatt wurde eingegeben 
    330         global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $gblatt, $zbvnr; 
    331  
    332         if ($showParent) {       
    333                 echo "\n<div class='gk' title='GB-Bezirk'>"; 
     356        // UrsprÃŒngliche Version bis 2013-04-24 
     357        global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $blattgml, $zbvnr; 
     358 
     359        if ($showParent) { 
     360        // +++ nur der Schluessel ist bekannt. Bezirks-Namen und Amtsgericht noch ermitteln ++++ 
     361                echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 
    334362                        echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 
    335363                        echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";                 
    336364                        echo $zgbbez."</a>"; 
    337                         // Key ist bekannt. Sollte man sich die Muehe machen, Namen und Amtsgericht zu ermitteln? 
    338365                echo "\n</div>"; 
    339366                echo "\n<div class='gb' title='GB-Blatt'>"; 
    340                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gblatt."\")'>"; 
     367                        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>"; 
    341368                                echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 
    342369                        echo "\n\t</a> "; 
    343                         echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gblatt=".$gblatt."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblattn.$zblattz."&nbsp;</a>"; 
     370                        echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$blattgml."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblattn.$zblattz."&nbsp;</a>"; 
    344371                echo "\n</div>"; 
    345372        } 
     
    351378        // +++ Buchungen ohne FLST weglassen? 
    352379        // +++ Counter FLST ausgeben, Buchungen mit 0 weglassen  
    353         $v=array($gblatt); 
     380        $v=array($blattgml); 
    354381        $res=pg_prepare("", $sql); 
    355382        $res=pg_execute("", $v); 
     
    369396        } 
    370397        if($cntbu == 0) {  
    371                 echo "\n<p class='err'>Keine Buchung gefunden.</p>"; 
     398                echo "\n<p class='anz'>Keine Buchung gefunden.</p>"; 
    372399        } elseif($cntbu == 1) { 
    373400                $zbvnr=$lfd; // mit dieser BVNR gleich weiter machen 
     
    380407                        $zblattz=strtoupper(substr($zblatt,$len-1,1));  
    381408                } 
     409        } else { 
     410                echo "\n<p class='anz'>".$cntbu."Buchungen.</p>"; 
    382411        } 
    383412        return $cntbu; 
     413} 
     414*/ 
     415 
     416function EinBlatt($showParent) { 
     417        // Kennzeichen Bezirk + Blatt wurde eingegeben 
     418        global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $blattgml, $zbvnr; 
     419 
     420        if ($showParent) { 
     421        // +++ nur der Schluessel ist bekannt. Bezirks-Namen und Amtsgericht noch ermitteln ++++ 
     422                echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 
     423                        echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 
     424                        echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";                 
     425                        echo $zgbbez."</a>"; 
     426                echo "\n</div>"; 
     427                echo "\n<div class='gb' title='GB-Blatt'>"; 
     428                        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>"; 
     429                                echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 
     430                        echo "\n\t</a> "; 
     431                        echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;blattgml=".$blattgml."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblattn.$zblattz."&nbsp;</a>"; 
     432                echo "\n</div>"; 
     433        } 
     434 
     435        // Blatt -> Buchungsstelle -> Flurstueck 
     436        $linelimit = 200; // Max. Anzahl FS 
     437        GB_Buchung_FS($linelimit); // Externe Function 
     438 
     439        return 0;  
     440         
    384441} 
    385442 
     
    427484        // Die gml_id der Buchungsstelle ist bekannt. 
    428485        global $con, $gkz, $debug, $gemeinde, $epsg, $scalefs, $epsg, $auskpath, $gbuchung, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter; 
     486        // NoLimit? 
    429487        if ($showParent) { // wenn Kennzeichen bekannt ist, dann auch Blatt ausgeben 
    430                 if (isset($zgbbez) and isset($zblatt)) { 
     488 
     489                if ($zgbbez.$zblatt != "") { 
     490                        // +++ SchlÃŒssel ist bekannt. Namen und Amtsgericht dazu ermitteln 
     491                        // +++ oder Namen als &bez= ÃŒbermitteln? 
    431492                        echo "\n<div class='gk' title='GB-Bezirk'>"; 
    432493                                echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 
    433494                                echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";                
    434495                                echo "Bezirk ".$zgbbez."</a>"; 
    435                                 // Key ist bekannt. Sollte man sich die Muehe machen, Namen und Amtsgericht zu ermitteln? 
    436                                 // ++++ Namen als &bez= ÃŒbermitteln? 
    437496                        echo "\n</div>";                         
    438497                        echo "\n<div class='gb' title='GB-Blatt'>"; 
     
    443502                        echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>"; 
    444503                } 
     504 
    445505                echo "\n<div class='gs'>"; 
    446506                        echo "\n\t\t<img class='nwlink' title='Grundst&uuml;ck' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 
     
    452512        // +++ Filter "Gemeinde" berÃŒcksichtigt!! Wenn gesetzt. 
    453513 
    454         // Buchungsstelle -> Flurstueck 
    455         $sql ="SELECT t.gemeinde, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 
     514        // SQL-Bausteine 
     515        $sql1 ="SELECT g.gemeinde, g.gemarkungsname, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 
    456516        if($epsg == "25832") { // Transform nicht notwendig 
    457                 $sql.="st_x(st_Centroid(f.wkb_geometry)) AS x, "; 
    458                 $sql.="st_y(st_Centroid(f.wkb_geometry)) AS y "; 
     517                $sql1.="st_x(st_Centroid(f.wkb_geometry)) AS x, "; 
     518                $sql1.="st_y(st_Centroid(f.wkb_geometry)) AS y "; 
    459519        } else {   
    460                 $sql.="st_x(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS x, "; 
    461                 $sql.="st_y(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS y ";                         
    462         } 
    463         $sql.="FROM ax_gemarkung g "; 
    464         $sql.="JOIN ax_flurstueck f ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    465         $sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von ";  
    466         $sql.="LEFT JOIN gemeinde_gemarkung t ON g.gemarkungsnummer=t.gemarkung "; 
    467         $sql.="WHERE v.beziehungsart='istGebucht' AND v.beziehung_zu= $1 "; // id buchungsstelle 
    468         $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     520                $sql1.="st_x(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS x, "; 
     521                $sql1.="st_y(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS y ";                        
     522        } 
     523        $sql1.="FROM "; 
     524 
     525        $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 
     526        $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 
     527 
     528        // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 
     529        $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 
     530        $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 
     531 
     532        $sql2 ="JOIN ax_flurstueck f ON ....  "; 
     533        $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 
     534        $sql2.="WHERE v.beziehungsart='istGebucht' AND v.beziehung_zu= $1 "; // id buchungsstelle 
     535        switch ($gfilter) { // Filter Gemeinde 
     536                case 1: // Einzelwert 
     537                        $sql2.="AND g.gemeinde=".$gemeinde." "; break; 
     538                case 2: // Liste 
     539                        $sql2.="AND g.gemeinde in (".$gemeinde.") "; break; 
     540        } 
     541        $sql2.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     542 
     543        $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 
    469544        $v=array($gbuchung); 
    470545        $res=pg_prepare("", $sql); 
     
    478553                $fs_gml=$row["gml_id"]; 
    479554                $gemei=$row["gemeinde"]; 
    480                 $gmkg=$row["bezeichnung"]; 
     555                $gmkg=$row["gemarkungsname"]; 
    481556                $flur=$row["flurnummer"]; 
    482557                $fskenn=$row["zaehler"]; 
     
    484559                $x=$row["x"]; 
    485560                $y=$row["y"]; 
     561 
     562                // FILTER OBEN, IN SQL - nicht HIER 
    486563                if($gemeinde > 0 and $gemeinde != $gemei and $gfilter == 1) { // ex-territorial  
    487                 // +++ Wie Abgleich mit Filter=Gemeinde-Liste? Als Array aufbereiten? 
    488                         if ($debug >= 2) {echo "<p class='dbg'>Gemkg ".$gmkg." liegt in Gemeinde '".$gemei."' nicht '".$gemeinde."'</p>";} 
    489  
     564                        if ($debug >= 2) { 
     565                                echo "<p class='dbg'>Gemkg ".$gmkg." liegt in Gemeinde '".$gemei."' nicht '".$gemeinde."'</p>"; 
     566                        } 
    490567                        echo "\n<div class='fs' title='Kein Zugriff! Liegt au&szlig;erhalb des Gebietes.'>"; 
    491568                                echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Leer.ico' width='16' height='16' alt='FS'> (".$gmkg." ".$flur."-".$fskenn." )"; 
     
    506583                $zfs++; 
    507584        } 
    508         if($zfs == 0) {echo "\n<p class='err'>Kein Flurst&uuml;ck.</p>";} 
     585        if($zfs == 0) { 
     586                echo "\n<p class='anz'>Kein Flurst&uuml;ck.</p>"; 
     587        } elseif($zfs > 1) { 
     588                echo "\n<p class='anz'>".$zfs." Flurst&uuml;ck.</p>"; 
     589        } 
    509590        return; 
    510591} 
     
    514595// =========== 
    515596if(isset($epsg)) { 
    516         if ($debug >= 2) {echo "<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB 
     597        #if ($debug >= 2) {echo "<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB 
    517598        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);    
    518599} else { 
    519         if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}  
     600        #if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}         
    520601        $epsg=$gui_epsg; // aus Conf 
    521602} 
    522 if ($debug >= 2) { 
    523         if(isset($gemeinde)) {echo "<p class='dbg'>Filter Gemeinde = ".$gemeinde."</p>"; 
    524         } else {echo "<p class='dbg'>Kein Filter Gemeinde</p>";} 
    525 } 
     603 
    526604if ($gemeinde == "") { 
    527605        $gfilter = 0; // ungefiltert 
     606        #if ($debug >= 2) {echo "<p class='dbg'>Kein Filter Gemeinde</p>";} 
    528607} elseif(strpos($gemeinde, ",") === false) { 
    529608        $gfilter = 1; // Einzelwert 
     609        #if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde Einzelwert = '".$gemeinde."'</p>";} 
    530610} else { 
    531611        $gfilter = 2; // Liste 
     612        #if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde Liste = '".$gemeinde."'</p>";} 
    532613} 
    533614 
    534615// Auch wenn redundant: Das Kennzeichen fÃŒr Anzeige und weitere Links zerlegen 
    535616$kennztyp=ZerlegungGBKennz($gbkennz); 
    536 if ($debug >= 2) {echo "<p class='dbg'>GB-Kennzeichen Typ=".$kennztyp."</p>";} 
     617#if ($debug >= 2) {echo "<p class='dbg'>GB-Kennzeichen Typ=".$kennztyp."</p>";} 
    537618 
    538619// Wurde eine gml_id (internes Kennzeichen) aus einem Self-Link verwendet? 
    539 // Dann hat das Prioritaet, nicht nach $gbkennz suchen. 
    540 if (isset($gbuchung)) { // gml der Buchungsstelle 
    541         if ($debug >= 2) {echo "<p class='dbg'>Link Buchung(gml)=".$gbuchung."</p>";} 
     620// Dann hat das Prioritaet, also *nicht* nach $gbkennz suchen. 
     621if ($gbuchung != "") { // gml der Buchungsstelle 
     622        $trans="Buchungsstelle"; 
    542623        EinGrundstueck(true); 
    543 } elseif(isset($gblatt)) { // gml des GB-Blattes 
    544         if ($debug >= 2) {echo "<p class='dbg'>Link Blatt(gml)=".$gblatt."</p>";} 
     624 
     625} elseif($blattgml != "") { // gml des GB-Blattes 
     626 
     627        // neue Version -> function GB_Buchung_FS 
     628        $trans="GB-Blatt mit Buchungen und Flst."; 
     629        EinBlatt(true); 
     630 
     631/*      alte Version (ohne die Function)) 
    545632        if (EinBlatt(true) == 1) { // darauf genau eine Buchung 
    546633                $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 
     634                $trans="Grundbuch-Blatt und 1 Buchung"; 
    547635                EinGrundstueck(false); 
    548636        } 
    549 } elseif(isset($ag)) { // Key 'stelle' des Amtsgerichtes 
    550         if ($debug >= 2) {echo "<p class='dbg'>Link Amtsgericht=".$ag."</p>";} 
     637*/ 
     638 
     639} elseif(isset($ag)) { // Key des Amtsgerichtes 
     640        #if ($debug >= 2) {echo "<p class='dbg'>Link Amtsgericht=".$ag."</p>";} 
     641        $trans="GB-Bezirke zum Amtsgericht"; 
    551642        ListAG( "'".$ag."'" ); // noch mal Kopfzeile 
    552643        ListGBBez("'".$ag."'", false); 
    553 } else { // Kein Self-Link 
    554         // (manuelle) Eingabe im Formular interpretieren. 
    555         switch ($kennztyp) { // +++ Wie kann Filter "Gemeinde" berÃŒcksichtigt werden? 
    556                 case 0: // keine Eingabe, 2 Alternativen 
    557                         // +++ Alternativen-Auswahl konfigurieren? 
    558                 //      ListGBBez($ag_liste, true); // gefilterte Liste der Bezirke 
    559                         ListAG($ag_liste); // gefilterte Liste der Amtsgerichte 
     644 
     645} else { // Kein Self-Link, Eingabe im Formular 
     646 
     647        switch ($kennztyp) { 
     648                case 0: // keine Eingabe 
     649                        $trans="Liste der Amtsgerichte"; 
     650                        ListAG($ag_liste); 
    560651                        break; 
    561652                case 1: // Eingabe Bezirk-Name (-Teil) -> gefilterte Liste der Bezirke 
    562                         if ($debug >= 2) {echo "<p class='dbg'>Eingabe Bez. ".$zgbbez."</p>";} 
     653                        $trans="Grundbuchbezirke gefiltert"; 
    563654                        $beznr=SuchGBBezName(); 
    564655                        if ($beznr > 0) {  // eindeutig 
    565656                                $zgbbez=$beznr; 
     657                                $trans="Bezirk gefunden, Bl&auml;tter dazu"; 
    566658                                EinBezirk(false); // gleich weiter 
    567                         };       
     659                        }; 
    568660                        break; 
    569661                case 2: // Eingabe Bezirk-Nummer -> Liste der BlÀtter 
    570                         if ($debug >= 2) {echo "<p class='dbg'>Eingabe Bez. ".$zgbbez."</p>";}   
     662                        $trans="Bl&auml;tter im GB-Bezirk"; 
    571663                        EinBezirk(true); 
    572664                        break; 
    573665                case 3: // Eingabe Blatt -> Liste der Buchungen 
    574                         if ($debug >= 2) {echo "<p class='dbg'>Eingabe Bez. ".$zgbbez." Blatt ".$zblatt."</p>";} 
    575                         $gblatt=gml_blatt(); // gml_id zum Blatt suchen 
    576                         if ($gblatt != "") { // gefunden                 
     666                        $trans="Buchungen auf GB-Blatt"; 
     667                        $blattgml=gml_blatt(); // gml_id zum Blatt suchen 
     668                        if ($blattgml != "") { // gefunden               
    577669                                if (EinBlatt(true) == 1) { // darauf genau eine Buchung 
     670                                        $trans="GB-Blatt und 1 Buchung"; 
    578671                                        $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 
    579672                                        EinGrundstueck(false); 
     
    582675                        break; 
    583676                case 4: // Eingabe Buchung (Grundstueck) -> Liste der Flurstuecke 
    584                         if ($debug >= 2) {echo "<p class='dbg'>Eingabe Bez. ".$zgbbez." Blatt ".$zblatt." BVNR ".$zbvnr."</p>";} 
     677                        $trans="Flurst. zur Buchungsstelle"; 
    585678                        $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 
    586679                        if ($gbuchung != "") { // .. wurde geliefert  
     680                                $trans="Buchungsstelle und 1 Flurst."; 
    587681                                EinGrundstueck(true); 
    588682                        } 
    589683                        break; 
    590684                case 9: // Fehler 
    591                         echo "<p class='err'>Bitte ein g&uuml;ltiges Grundbuchkennzeichen eingegeben, Format 'gggg-999999A-llll</p>"; 
     685                        $trans="fehlerhafte Eingabe"; 
     686                        echo "\n<p class='err'>Bitte ein g&uuml;ltiges Grundbuchkennzeichen eingegeben, Format 'gggg-999999A-llll</p>"; 
    592687                        break; 
    593688        } 
    594689} 
     690// Titel im Kopf anzeigen 
     691echo "\n<script type='text/javascript'>\n\ttranstitle('".$trans."')\n</script>"; 
    595692 
    596693?> 
     694 
    597695</body> 
    598696</html> 
  • trunk/mapbender/http/nav/blank_eig.html

    r136 r278  
    88<body> 
    99<p class='start'>Suche nach Eigent&uuml;mern in ALKIS:<br><br> 
    10 Schritt 1: Anfang des Nachnamens eingeben<br> 
    11 oder Suche nach Nachname, Vorname<br> 
    12 oder Suche nach Namensbestandteilen mit Platzhalter "*", z.B. "*meier"<br><br> 
    13 Schritt 2: Auswahl Person<br><br> 
    14 Schritt 3: Auswahl Grundbuch-Blatt<br><br> 
    15 Schritt 4: Auswahl Flurst&uuml;ck</p> 
     10Schritt 1:<br>&nbsp;Anfang des Nachnamens eingeben<br> 
     11&nbsp;oder Nachname (Komma) Vorname<br> 
     12&nbsp;oder Teile des Namens mit Platzhalter *<br> 
     13&nbsp;&nbsp;z.B. *meier<br> 
     14&nbsp;oder Kombination davon<br> 
     15&nbsp;&nbsp;z.B. *meier, Ralf<br><br> 
     16Schritt 2:<br>&nbsp;Auswahl Person<br><br> 
     17Schritt 3:<br>&nbsp;Auswahl Grundbuch-Blatt<br><br> 
     18Schritt 4:<br>&nbsp;Auswahl Flurst&uuml;ck<br><br> 
     19Bei eindeutigen Treffern wird der n&auml;chste Schritt vom Programm sofort mit ausgef&uuml;hrt. 
     20</p> 
    1621</body> 
    1722</html> 
Note: See TracChangeset for help on using the changeset viewer.