Ignore:
Timestamp:
05/08/13 09:04:34 (11 years ago)
Author:
frank.jaeger
Message:

Mapbender-ALKIS-Navigation korrigiert und verbessert.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mapbender/http/nav/alkisnav_fls.php

    r280 r282  
    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 
    6                                         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 
    123        2013-04-16      "import_request_variables" entfÀllt in PHP 5.4,  
    134                                        Fehlerkorrektur Komma in SQL bei FS-Suche. 
     
    156                                        ZurÃŒck-Link, Titel der Transaktion anzeigen 
    167        2013-04-29      Test mit IE 
     8        2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen 
    179*/ 
    1810$cntget = extract($_GET); 
    1911include("../../conf/alkisnav_conf.php"); 
     12include("alkisnav_fkt.php"); // Funktionen 
    2013$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
    2114$con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname.$dbvers.$gkz); 
     
    2922        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    3023        <title>ALKIS-Suche Flurst&uuml;ck</title> 
    31         <link rel="stylesheet" type="text/css" href="alkisnav.css"></link> 
     24        <link rel="stylesheet" type="text/css" href="alkisnav.css"> 
    3225        <script type="text/javascript"> 
    3326                function imFenster(dieURL) { 
     
    4235<body> 
    4336<a href='javascript:history.back()'> 
    44         <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck" /> 
     37        <img src="ico/zurueck.ico" width="16" height="16" alt="&lt;&lt;" title="zur&uuml;ck"> 
    4538</a> 
    4639<dfn class='title' id='transaktiontitle'></dfn> 
     
    7568// Das eingegebene FlurstÃŒcks-Kennzeichen auseinander nehmen. Erwartet wird gggg-fff-zzzz/nnn 
    7669        global $debug, $zgemkg, $zflur, $zzaehler, $znenner;     
    77 //      if ($debug > 1) {echo "<p class='dbg'>Zerlegen: '".$fskennz."'</p>";} 
    7870        $arr = explode("-", $fskennz, 4); 
    7971        $zgemkg=trim($arr[0]); 
     
    111103} 
    112104 
    113 function gemkg_zeile($zgemkg) { 
    114 // Eine Zeile zu Gemarkung ausgeben, SchlÃŒssel wird ÃŒbergeben, Name in DB nachschlagen 
    115         global $con, $gkz, $gemeinde, $epsg; 
    116         $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; 
    117         $v=array($zgemkg); 
    118         $res=pg_prepare("", $sql); 
    119         $res=pg_execute("", $v); 
    120         if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";} 
    121         $zgmk=0; 
    122         while($row = pg_fetch_array($res)) { // eigentlich nur EINE 
    123                 $gmkg=$row["bezeichnung"]; 
    124                 $zgmk++; 
    125                 echo "\n<div class='gk' title='Gemarkung'>"; 
    126                         echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    127                         echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>"; 
    128                 echo "\n</div>"; 
    129         } 
    130         if ($zgmk == 0) { 
    131                 echo "\n<div class='gk' title='Gemarkung'>"; 
    132                         echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    133                                 echo  " Gemarkung ".$zgemkg." ist unbekannt.</p>"; 
    134                 echo "\n</div>"; 
     105function flurstueckskoordinaten($gml) { 
     106        // Die Koordinaten zu einem FlurstÃŒck aus der Datenbank liefern 
     107        global $epsg; 
     108        $sqlk ="SELECT "; 
     109        if($epsg == "25832") { // Transform nicht notwendig 
     110                $sqlk.="x(st_Centroid(wkb_geometry)) AS x, "; 
     111                $sqlk.="y(st_Centroid(wkb_geometry)) AS y "; 
     112        } else {   
     113                $sqlk.="x(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS x, "; 
     114                $sqlk.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y ";                    
     115        } 
     116   $sqlk.="FROM ax_flurstueck WHERE gml_id= $1 "; 
     117        $v=array($gml); 
     118        $resk=pg_prepare("", $sqlk); 
     119        $resk=pg_execute("", $v); 
     120        if (!$resk) {echo "\n<p class='err'>Fehler bei Koordinate.</p>";} 
     121        $rowk = pg_fetch_array($resk); 
     122        $koor=array("x" => $rowk["x"], "y" => $rowk["y"]); 
     123        return $koor; 
     124} 
     125 
     126function zeile_gemeinde ($gnr, $gemeindename) { 
     127        // Eine Zeile zu Gemeinde ausgeben, SchlÃŒssel und Name wird ÃŒbergeben 
     128        global $gkz, $gemeinde, $epsg; 
     129        $stadt=htmlentities($gemeindename, ENT_QUOTES, "UTF-8"); 
     130        $bez=urlencode($gemeindename); 
     131        echo "\n<div class='gm' title='Gemeinde'>"; 
     132                echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 
     133                echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gm=".$gnr."&amp;bez=".$bez."'>";                 
     134                echo  " ".$stadt."</a> (".$gnr.")"; 
     135        echo "\n</div>"; 
     136        return; 
     137} 
     138 
     139function zeile_gemarkung($gnr, $gemkgname) { 
     140        // Eine Zeile zu Gemarkung ausgeben 
     141        global $con, $gkz, $gemeinde, $epsg, $gfilter; 
     142        if ($gemkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen 
     143                $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 LIMIT 1;"; 
     144                $v=array($gnr); 
     145                $res=pg_prepare("", $sql); 
     146                $res=pg_execute("", $v); 
     147                if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkungsname.</p>";} 
     148                $row = pg_fetch_array($res); 
     149                $gemkgname=$row["gemarkungsname"]; 
     150        } 
     151        if ($gemkgname == "") {$gemkgname = "(unbekannt)";} 
     152        $gnam=htmlentities($gemkgname, ENT_QUOTES, "UTF-8"); 
     153        echo "\n<div class='gk' title='Gemarkung'>"; 
     154        echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
     155        echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gnr."'>";               
     156        echo  " ".$gnam."</a> (".$gnr.")"; 
     157        echo "\n</div>"; 
     158        return; 
     159} 
     160 
     161function zeile_flur($zgemkg, $zflur, $historie) { // Eine Zeile zur Flur ausgeben 
     162        global $gkz, $gemeinde, $epsg; 
     163        echo "\n<div class='fl' title='Flur'>"; 
     164        echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 
     165        $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur; 
     166        echo "<a title='Aktuelle Flurst&uuml;cke suchen' href='".$url."'>Flur ".$zflur." </a>";  
     167        If ($historie) { // Link zur hist. Suche anbieten 
     168                echo " <a class='hislnk' title='Historische Flurst&uuml;cke der Flur' href='".$url."&amp;hist=j'>Hist.</a>"; 
     169        } 
     170        echo "\n</div>";         
     171        return; 
     172} 
     173 
     174function zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur) { 
     175        // Eine Zeile fÃŒr ein historisches FlurstÃŒck ausgeben  
     176        global $gkz, $gemeinde, $epsg, $auskpath; 
     177        if ($ftyp == "h") { 
     178                $ico="Flurstueck_Historisch_Lnk.ico"; 
     179                $titl="Historisches Flurst&uuml;ck"; 
     180        } else { 
     181                $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
     182                $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
     183        } 
     184        echo "\n<div class='hi' title='".$titl."'>"; 
     185 
     186        // Icon -> Buchnachweis 
     187        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
     188                echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 
     189        echo "\n\t</a>"; 
     190 
     191        // Zeile -> tiefer in die Historie 
     192        $flurl =$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;hist=j"; 
     193        $flurl.="&amp;fskennz=".$gknr."-".$flur."-"; 
     194        echo "\n\thist. Flst. <a href='".$flurl.$fskenn."'>".$fskenn."</a>";             
     195 
     196        echo "\n</div>"; 
     197        return; 
     198} 
     199 
     200function zeile_nachf_fs($gml, $gknr, $flur, $fskenn, $ftyp) { 
     201        // Eine Zeile fÃŒr ein Nachfolger-FlurstÃŒck eines hist. Fs. ausgeben  
     202        global $gkz, $gemeinde, $epsg, $auskpath; 
     203        $fs=$gknr."-".$flur."-".$fskenn; 
     204        switch ($ftyp) { 
     205 
     206        #case "a": 
     207        #       // Fuer ein akt. FS wird hier ein Link auf FS-Kennzeichen-Eingabe angeboten. 
     208        #       // Erst aus der nÀchsten Anzeige kann dann positioniert werden. 
     209        #       $ico="Flurstueck_Link.ico"; 
     210        #       $titl="Aktuelles Flurst&uuml;ck"; 
     211        #       $hisparm=""; 
     212        #       $auskprog="alkisfsnw"; 
     213        #       break; 
     214                 
     215        case "a": // Alternativ: hier gleich eine FS-Zeile mit Link ausgeben (EinrÃŒckung css passt nicht) 
     216                $koor=flurstueckskoordinaten($gml); 
     217                zeile_flurstueck($gml, $fskenn, $koor["x"], $koor["y"], "", ""); 
    135218                return; 
    136         } 
    137         return 0; 
    138 } 
    139  
    140 function flur_zeile($zgemkg, $zflur) { 
    141 //      Eine Zeile zur Flur ausgeben 
    142         global $con, $gkz, $gemeinde, $epsg; 
    143         echo "\n<div class='fl' title='Flur'>"; 
    144                 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 
    145                 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur; 
    146                 echo "Flur <a href='".$url."'>".$zflur."</a>"; 
    147                 //echo "<span class='hislnk'>"; 
    148                 echo " <a class='hislnk' title='Historische Flurst&uuml;cke' href='".$url."&amp;hist=j'>Hist.</a>";              
     219                break; 
     220 
     221        case "h": 
     222                $ico="Flurstueck_Historisch_Lnk.ico"; 
     223                $titl="Historisches Flurst&uuml;ck"; 
     224                $hisparm="&amp;hist=j"; 
     225                $auskprog="alkisfshist"; 
     226                break; 
     227        case "o": 
     228                $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
     229                $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
     230                $hisparm="&amp;hist=j"; 
     231                $auskprog="alkisfshist"; 
     232                break; 
     233        } 
     234        // fÃŒr die Hist.-FÀlle: 
     235        echo "\n<div class='hn' title='Nachfolger: ".$titl."'>";                         
     236                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath.$auskprog.".php?gkz=".$gkz."&amp;gmlid=".$gml."\")'>"; 
     237                        echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS'>"; 
     238                echo "\n\t</a> ";                
     239                echo "Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fs.$hisparm."'>".$fskenn."</a>";                                      
    149240        echo "\n</div>"; 
    150         return 0; 
     241        return; 
    151242} 
    152243 
    153244function ListGemeinden() { 
    154 // bei Leereingabe die Gemeinden anlisten 
     245        // Bei Leereingabe im Formular die Gemeinden auflisten 
    155246        global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 
    156         $linelimit=50; 
     247        $linelimit=60; 
    157248        $sql ="SELECT gemeinde, gemeindename FROM pp_gemeinde "; 
    158249        switch ($gfilter) { 
    159250                case 1: // Einzelwert 
    160                         $sql.="WHERE gemeinde=".$gemeinde." "; 
    161                         break; 
     251                        $sql.="WHERE gemeinde=".$gemeinde." "; break; 
    162252                case 2: // Liste 
    163                         $sql.="WHERE gemeinde in (".$gemeinde.") "; 
    164                         break; 
    165                 default: // kein Filter 
    166                         break; 
     253                        $sql.="WHERE gemeinde in (".$gemeinde.") "; break; 
     254                default: break; 
    167255        } 
    168256        $sql.=" ORDER BY gemeindename LIMIT $1 ;"; 
     
    171259        if (!$res) { 
    172260                echo "\n<p class='err'>Fehler bei Gemeinde</p>"; 
    173                 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
     261                #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    174262                return 0; 
    175263        } 
    176264        $cnt = 0; 
    177265        while($row = pg_fetch_array($res)) { 
     266                $gnr=$row["gemeinde"]; 
    178267                $gemeindename=$row["gemeindename"]; 
    179                 $stadt=htmlentities($gemeindename, ENT_QUOTES, "UTF-8"); 
    180                 $bez=urlencode($gemeindename);  // Uebergeben an ListGmkgInGemeinde 
    181                 $gnr=$row["gemeinde"]; 
    182                 echo "\n<div class='gm' title='Gemeinde'>"; 
    183                         echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 
    184                         echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gm=".$gnr."&amp;bez=".$bez."'>";                 
    185                         echo  " ".$stadt."</a> (".$gnr.")"; 
    186                 echo "\n</div>"; 
     268                zeile_gemeinde($gnr, $gemeindename); 
    187269                $cnt++; 
    188270        } 
    189         if($cnt == 0){  
     271        // Foot 
     272        if($cnt == 0) {  
    190273                echo "\n<p class='anz'>Keine Gemeinde.</p>"; 
    191274        } elseif($cnt >= $linelimit) { 
    192275                echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemeinden ... und weitere</p>"; 
    193                 // +++ BlÀttern ? 
    194276        } elseif($cnt == 1) { // Eindeutig! 
    195277                return $gnr;  
     
    197279                echo "\n<p class='anz'>".$cnt." Gemeinden</p>"; 
    198280        } 
    199         return 0; 
    200 } 
    201  
    202 function ListGmkgInGemeinde($gkey) { 
    203 // Die (gefuellten) Gemarkungen zu einem Gemeinde-Key (aus Link) listen 
    204         global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter, $bez; 
     281        return; 
     282} 
     283 
     284function ListGmkgInGemeinde($gkey, $bez) { 
     285        // Die Gemarkungen zu einem Gemeinde-Key (aus Link) listen 
     286        global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 
    205287        $linelimit=70; 
    206         $sql ="SELECT gemarkung, gemarkungsname FROM pp_gemarkung "; 
    207    $sql.="WHERE gemeinde= $1 ORDER BY gemarkungsname LIMIT $2 ;"; 
     288 
     289        // Head 
     290        zeile_gemeinde($gkey, $bez); 
     291 
     292        // Body 
     293        $sql ="SELECT gemarkung, gemarkungsname FROM pp_gemarkung WHERE gemeinde= $1 ORDER BY gemarkungsname LIMIT $2 ;"; 
    208294        $res=pg_prepare("", $sql); 
    209295        $res=pg_execute("", array($gkey, $linelimit)); 
    210296        if (!$res) { 
    211297                echo "\n<p class='err'>Fehler bei Gemarkungen</p>"; 
    212                 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    213                 return 0; 
    214         } 
    215         // Hierarchie Dokumentieren, Gemeinde-Name? 
    216         echo "\n<div class='gm' title='Gemeinde'>"; 
    217                 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>";     
    218                 echo  " Gem. ".$bez." (".$gkey.")"; // .urldecode($bez). ?? 
    219         echo "\n</div>"; 
     298                return 1; 
     299        } 
    220300        $cnt = 0; 
    221301        while($row = pg_fetch_array($res)) { 
    222                 $gnam=htmlentities($row["gemarkungsname"], ENT_QUOTES, "UTF-8"); 
    223302                $gnr=$row["gemarkung"]; 
    224                 echo "\n<div class='gk' title='Gemarkung'>"; 
    225                         echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    226                         echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gnr."'>";               
    227                         echo  " ".$gnam."</a> (".$gnr.")"; 
    228                 echo "\n</div>"; 
     303                $gnam=$row["gemarkungsname"]; 
     304                zeile_gemarkung($gnr, $gnam, ""); 
    229305                $cnt++; 
    230306        } 
    231         if($cnt == 0){  
    232                 echo "\n<p class='anz'>Keine Gemarkung.</p>"; 
    233         } elseif($cnt >= $linelimit) { 
    234                 echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemarkungen ... und weitere</p>"; 
    235                 // +++ BlÀttern ? 
    236         } elseif($cnt == 1) { // Eindeutig! 
    237                 return $gnr;  
    238         } else { 
    239                 echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 
    240         } 
    241         return 0; 
    242 } 
    243  
    244 function SuchGmkgName() { 
    245 // Gemarkung suchen nach Name(-nsanfang) 
    246         global $con, $gkz, $gemeinde, $epsg, $debug, $fskennz, $gfilter; 
    247         $linelimit=120; 
    248         if(preg_match("/\*/",$fskennz)){ 
    249                 $match = trim(preg_replace("/\*/i","%", strtoupper($fskennz))); 
    250         } else { 
    251                 $match = trim($fskennz)."%"; 
    252         }        
    253         $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname "; 
    254         If ($gfilter == 0 OR $gfilter == 2) { // Stadt anzeigen 
    255                 $sql.=", s.gemeindename FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde = s.gemeinde "; 
    256         } else { 
    257                 $sql.="FROM pp_gemarkung g "; 
    258         } 
    259         $sql.="WHERE g.gemarkungsname ILIKE $1 "; 
    260         switch ($gfilter) { 
    261                 case 1: // Einzelwert 
    262                         $sql.="AND g.gemeinde = ".$gemeinde." "; 
    263                         break; 
    264                 case 2: // Liste 
    265                         $sql.="AND g.gemeinde in (".$gemeinde.") "; 
    266                         break; 
    267                 default: // kein Filter 
    268                         break; 
    269         } 
    270         $sql.=" ORDER BY g.gemarkungsname LIMIT $2 ;"; 
    271         $v=array($match, $linelimit); 
    272         $res=pg_prepare("", $sql); 
    273         $res=pg_execute("", $v); 
    274         if (!$res) { 
    275                 echo "\n<p class='err'>Fehler bei Gemarkung</p>"; 
    276                 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    277                 return 0; 
    278         } 
    279         $cnt = 0; 
    280         while($row = pg_fetch_array($res)) { 
    281                 $gnam=htmlentities($row["gemarkungsname"], ENT_QUOTES, "UTF-8"); 
    282                 $gnr=$row["gemarkung"]; 
    283  
    284                 echo "\n<div class='gk' title='Gemarkung'>"; 
    285                         echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    286                         echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gnr."'>";               
    287                         echo  " ".$gnam."</a> (".$gnr.")"; 
    288                         switch ($gfilter) { 
    289                                 case 0: // Kein Filter 
    290                                         echo " ".$row["gemeindename"]; 
    291                                         break; 
    292                                 case 2: // Liste 
    293                                         echo " ".$row["gemeindename"]; 
    294                                         break; 
    295                                 default: // Einzelwert 
    296                                         break; 
    297                         } 
    298                 echo "\n</div>"; 
    299                 $cnt++; 
    300         } 
     307        // Foot 
    301308        if($cnt == 0){  
    302309                echo "\n<p class='anz'>Keine Gemarkung.</p>"; 
     
    308315                echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 
    309316        } 
    310         return 0; 
     317        return; 
     318} 
     319 
     320function SuchGmkgName() { 
     321        // Gemarkung suchen nach Name(-nsanfang) 
     322        global $con, $gkz, $gemeinde, $epsg, $debug, $fskennz, $gfilter; 
     323        $linelimit=120; 
     324        if(preg_match("/\*/",$fskennz)){ 
     325                $match = trim(preg_replace("/\*/i","%", strtoupper($fskennz))); 
     326        } else { 
     327                $match = trim($fskennz)."%"; 
     328        }        
     329        $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname, s.gemeindename "; 
     330        $sql.="FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde = s.gemeinde "; 
     331        $sql.="WHERE g.gemarkungsname ILIKE $1 "; 
     332        switch ($gfilter) { 
     333                case 1: // Einzelwert 
     334                        $sql.="AND g.gemeinde = ".$gemeinde." "; break; 
     335                case 2: // Liste 
     336                        $sql.="AND g.gemeinde in (".$gemeinde.") "; break; 
     337        } 
     338        $sql.=" ORDER BY s.gemeindename, g.gemarkungsname LIMIT $2 ;"; 
     339        $v=array($match, $linelimit); 
     340        $res=pg_prepare("", $sql); 
     341        $res=pg_execute("", $v); 
     342        if (!$res) { 
     343                echo "\n<p class='err'>Fehler bei Gemarkung</p>"; 
     344                return; 
     345        } 
     346        $cnt = 0; 
     347        $gwgem=""; 
     348        while($row = pg_fetch_array($res)) { 
     349                $gemeindename=$row["gemeindename"]; 
     350                if ($gwgem != $gemeindename) { // Gruppierung Gemeinde 
     351                        $gwgem = $gemeindename; 
     352                        $skey=$row["gemeinde"]; 
     353                        zeile_gemeinde($skey, $gemeindename); 
     354                } 
     355                $gnam=$row["gemarkungsname"]; 
     356                $gnr=$row["gemarkung"]; 
     357                zeile_gemarkung($gnr, $gnam, $gemeindename); 
     358                $cnt++; 
     359        } 
     360        // Foot 
     361        if($cnt == 0){  
     362                echo "\n<p class='anz'>Keine Gemarkung.</p>"; 
     363        } elseif($cnt >= $linelimit) { 
     364                echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemarkungen ... und weitere</p>"; 
     365        } elseif($cnt == 1) { // Eindeutig! 
     366                return $gnr;  
     367        } else { 
     368                echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 
     369        } 
     370        return; 
     371} 
     372 
     373function gg_head($gkgnr) { 
     374        // Übergeordnete Zeilen (Head) fÃŒr Gemeinde und Gemarkung ausgeben 
     375        // Parameter = Gemarkungsnummer 
     376        $sqlh ="SELECT g.gemarkungsname, s.gemeinde, s.gemeindename FROM pp_gemarkung g "; 
     377        $sqlh.="JOIN pp_gemeinde s ON g.gemeinde=s.gemeinde AND g.land=s.land "; 
     378        $sqlh.="WHERE g.gemarkung = $1 ;"; 
     379        $v=array($gkgnr); 
     380        $resh=pg_prepare("", $sqlh); 
     381        $resh=pg_execute("", $v); 
     382        if (!$resh) {echo "\n<p class='err'>Fehler bei Gemeinde und Gemarkung.</p>";} 
     383        $rowh = pg_fetch_array($resh); 
     384        $gmkg=$rowh["gemarkungsname"]; 
     385        $skey=$rowh["gemeinde"]; 
     386        $snam=$rowh["gemeindename"]; 
     387        zeile_gemeinde($skey, $snam); 
     388        zeile_gemarkung($gkgnr, $gmkg); 
     389        return; 
    311390} 
    312391 
    313392function EineGemarkung($AuchGemkZeile) { 
    314 // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 
     393        // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 
     394        // Parameter = $zgemkg 
    315395        global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg; 
    316         $linelimit=120; // max. Fluren je Gemarkung 
    317         if ($AuchGemkZeile) { 
    318                 $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; // WHERE f.land= ? 
    319                 $v=array($zgemkg); 
    320                 $res=pg_prepare("", $sql); 
    321                 $res=pg_execute("", $v); 
    322                 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";} 
    323                 $zgmk=0; 
    324                 while($row = pg_fetch_array($res)) {     
    325                         $gmkg=$row["bezeichnung"]; 
    326                         $zgmk++; 
    327                 } 
    328                 if ($zgmk == 0) { 
    329                         echo "\n<div class='gk' title='Gemarkung'>"; 
    330                                 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 
    331                                         echo  " Gemarkung ".$zgemkg." ist unbekannt.</p>"; 
    332                         echo "\n</div>"; 
    333                         return; 
    334                 } 
    335                 // > 1 auch möglich? 
    336                 echo "\n<div class='gk' title='Gemarkung'>"; 
    337                         echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'> "; 
    338                         echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."'>";            
    339                         echo $gmkg."</a>  (".$zgemkg.")"; // in Gemeinde? 
    340                 echo "\n</div>"; 
    341         } 
     396        $linelimit=120; // max.Fluren/Gemkg 
     397 
     398        // Head 
     399        if ($AuchGemkZeile) {gg_head($zgemkg);} 
     400        // Body 
    342401        $sql ="SELECT gemarkungsteilflur AS flur FROM ax_gemarkungsteilflur f "; 
    343         $sql.="WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;";     // WHERE f.land= ? 
     402        $sql.="WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;"; //WHERE f.land=? 
    344403        $v=array($zgemkg, $linelimit); 
    345404        $res=pg_prepare("", $sql); 
     
    348407        $zfl=0; 
    349408        while($row = pg_fetch_array($res)) {     
    350                 $flur=$row["flur"]; 
    351                 echo "\n<div class='fl' title='Flur'>"; 
    352                         echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'>&nbsp;"; 
    353                         echo "Flur<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$flur."'>&nbsp;".$flur."&nbsp;</a>"; 
    354                 echo "\n</div>"; 
     409                $zflur=$row["flur"]; 
     410                zeile_flur($zgemkg, $zflur, false); 
    355411                $zfl++; 
    356412        } 
     413        // Foot 
    357414        if($zfl == 0) {  
    358415                echo "\n<p class='anz'>Keine Flur.</p>"; 
     
    366423 
    367424function EineFlur() { 
    368 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, dazu aktuelle FlurstÃŒcke suchen 
    369         global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $zgemkg, $zflur; 
     425        // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, dazu aktuelle FlurstÃŒcke suchen 
     426        global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg, $zflur; 
    370427        $linelimit=600; // Wie groß kann eine Flur sein? 
    371         gemkg_zeile($zgemkg); 
    372         flur_zeile($zgemkg, $zflur); 
    373  
     428 
     429        // Head 
     430        gg_head($zgemkg); 
     431        zeile_flur($zgemkg, $zflur, true); 
     432 
     433        // Body 
    374434        $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
    375435        if($epsg == "25832") { // Transform nicht notwendig 
     
    381441        } 
    382442   $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 "; 
    383         $sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land= ? 
     443        $sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land=? 
    384444        $v=array($zgemkg, $zflur, $linelimit); 
    385445        $res=pg_prepare("", $sql); 
     
    394454                $x=$row["x"]; 
    395455                $y=$row["y"]; 
    396                 echo "\n<div class='fs'>"; 
    397                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    398                                 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    399                         echo "\n\t</a> ";                        
    400                         echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    401                                         echo "javascript:"; 
    402                                         echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
    403                                         echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    404                                         echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    405                                 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    406                                 echo "onmouseout='parent.parent.hideHighlight()'>&nbsp;".$fskenn."&nbsp;</a>"; 
    407                 echo "\n</div>"; 
     456                zeile_flurstueck ($fs_gml, $fskenn, $x, $y, "", ""); 
    408457                $zfs++; 
    409458        } 
    410         if($zfs == 0) {  
     459        if($zfs == 0) { 
    411460                echo "\n<p class='anz'>Kein Flurst&uuml;ck.</p>"; 
    412461        } elseif($zfs >= $linelimit) { 
     
    419468 
    420469function HistFlur() { 
    421 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben 
    422 // Die Flur nach historischen FlurstÃŒcken durchsuchen 
     470        // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben 
     471        // Die Flur nach historischen FlurstÃŒcken durchsuchen 
    423472        global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $land, $zgemkg, $zflur; 
    424473        $linelimit=500; 
    425474 
    426         gemkg_zeile($zgemkg); 
    427         echo "\n<div class='fl' title='Flur'>"; 
    428                 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur-Historie'> "; 
    429                 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur; 
    430                 echo "Historie: Flur<a title='Aktuelle Flurst&uuml;cke suchen' href='".$url."'> ".$zflur." </a>";  
    431         echo "\n</div>"; 
    432  
     475        // Head  
     476        gg_head($zgemkg); 
     477        zeile_flur($zgemkg, $zflur, true); 
     478 
     479        // Body 
    433480        $whcl.="WHERE flurstueckskennzeichen like $1 "; 
    434481        $sql ="SELECT 'h' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 
     
    441488        if (!$res) {echo "\n<p class='err'>Fehler bei Historie Flur.</p>";} 
    442489        $zfs=0; 
    443  
    444         // Konst. Teil d.URL (Flur), FS anhÀngen 
    445         $flurl=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;hist=j&amp;fskennz=".$zgemkg."-".$zflur."-"; 
    446  
    447490        while($row = pg_fetch_array($res)) {     
    448491                $ftyp=$row["ftyp"]; 
     
    450493                $fskenn=$row["zaehler"]; 
    451494                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    452                 if ($ftyp == "h") { 
    453                         $ico="Flurstueck_Historisch_Lnk.ico"; 
    454                         $titl="Historisches Flurst&uuml;ck";             
    455                 } else { 
    456                         $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
    457                         $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
    458                 }  // h: Karte Pos.? 
    459                 echo "\n<div class='hi' title='".$titl."'>"; // Zeile 
    460                         // Icon -> Bauchauskunft 
    461                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    462                                 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 
    463                         echo "\n\t</a> ";                
    464                         // Kennzeichen -> weiter in die Historie hinein 
    465                         echo "\n\tFlst. <a href='".$flurl.$fskenn."'>".$fskenn."</a>";                                   
    466                 echo "\n</div>"; 
     495                zeile_hist_fs($fs_gml, $fskenn, $ftyp, $zgemkg, $zflur); 
    467496                $zfs++; 
    468497        } 
     498 
     499        // Foot 
    469500        if($zfs == 0) {  
    470501                echo "\n<p class='anz'>Kein historisches Flurst&uuml;ck.</p>"; 
     
    479510 
    480511function EinFlurstueck() { 
    481 // FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler eingegeben 
    482 // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler 
    483         global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $fskennz, $zgemkg, $zflur, $zzaehler, $znenner; 
    484  
    485         gemkg_zeile($zgemkg); 
    486         flur_zeile($zgemkg, $zflur); 
    487  
     512        // FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler eingegeben 
     513        // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler 
     514        global $con, $gkz, $debug, $epsg, $gemeinde, $fskennz, $zgemkg, $zflur, $zzaehler, $znenner; 
     515 
     516        // Head 
     517        gg_head($zgemkg); 
     518        zeile_flur($zgemkg, $zflur, true); 
     519 
     520        // Body 
    488521        $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 
    489522        if($epsg == "25832") { // Transform nicht notwendig 
    490523                $sql.="x(st_Centroid(f.wkb_geometry)) AS x, "; 
    491524                $sql.="y(st_Centroid(f.wkb_geometry)) AS y "; 
    492         } 
    493         else {   
     525        } else {   
    494526                $sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 
    495527                $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y ";                   
     
    508540                $flur=$row["flurnummer"]; 
    509541                $fskenn=$row["zaehler"]; 
    510                 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    511                 $x=$row["x"]; 
    512                 $y=$row["y"]; 
    513                 echo "\n<div class='fs'>"; 
    514                         echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    515                                 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    516                         echo "\n\t</a> ";                
    517                         echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    518                                         echo "javascript:"; 
    519                                         echo "transtitle(\"auf Flurst&uuml;ck positioniert\"); "; 
    520                                         echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    521                                         echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    522                                 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    523                                 echo "onmouseout='parent.parent.hideHighlight()'>"; 
    524                         echo $fskenn."</a>"; 
    525                 echo "\n</div>"; 
     542                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 
     543                zeile_flurstueck($fs_gml, $fskenn, $row["x"], $row["y"], "", ""); 
    526544                $zfs++; 
    527545        } 
     546        // Foot 
    528547        if($zfs == 0) { 
    529                 echo "\n<p class='err'>Kein aktuelles Flurst&uuml;ck.</p>"; 
    530                 // Soll in der Historie weiter gesucht werden? 
    531                 echo "\n<div class='hi' title='Historie'>"; 
     548                echo "\n<p class='anz'>Kein aktuelles Flurst&uuml;ck.</p>"; 
     549                echo "\n<div class='hi' title='in Historie suchen'>"; 
    532550                        echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt='Historisches Flurst&uuml;ck'>&nbsp;"; 
    533                         echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fskennz."&amp;hist=j'>in Historie suchen</a>"; 
     551                        echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fskennz."&amp;hist=j'>"; 
     552                        echo $zgemkg."-".$zflur."-".$zzaehler; 
     553                        if ($znenner != "") {echo "/".$znenner;} 
     554                        echo " h - suchen</a>"; 
    534555                echo "\n</div>";                 
    535556        } 
     
    538559 
    539560function HistFlurstueck() { 
    540         // Ein Nachfolger-FS-Kennzeichen soll recherchiert werden. 
    541         // Es ist unbekannt, ob dies aktuell ist oder auch schon historisch. 
    542         global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $land, $zgemkg, $zflur, $zzaehler, $znenner; 
    543  
    544         gemkg_zeile($zgemkg); 
    545         flur_zeile($zgemkg, $zflur); 
    546  
    547         // Suche ueber das Flurstueckskennzeichen, gml ist meist unbekannt 
     561        // Die Nachfolger-FS-Kennzeichen sollen recherchiert werden. 
     562        global $debug, $land, $zgemkg, $zflur, $zzaehler, $znenner; 
     563 
     564        // Head 
     565        gg_head($zgemkg); 
     566        zeile_flur($zgemkg, $zflur, true); 
     567 
     568        // Body 
     569        // Suche ueber das Flurstueckskennzeichen, gml unbekannt 
     570        $fldlist=" AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, "; 
    548571        $whcl.="WHERE flurstueckskennzeichen= $1 "; 
    549         $sql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, null as nachf FROM ax_flurstueck ".$whcl; 
    550         $sql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 
    551         $sql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 
    552  
     572        $sql ="SELECT 'a'".$fldlist."null as nachf FROM ax_flurstueck ".$whcl; 
     573        $sql.="UNION SELECT 'h'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 
     574        $sql.="UNION SELECT 'o'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 
    553575        $fskzwhere =$land.$zgemkg; // Flurst-Kennz. f. Where 
    554576        $fskzwhere.=str_pad($zflur, 3, "0", $STR_PAD_LEFT); 
     
    556578        if ($znenner == "") {$fskzwhere.="______";} 
    557579        else {$fskzwhere.=str_pad($znenner, 4, "0", $STR_PAD_LEFT)."__";} 
    558  
    559580        $v=array($fskzwhere); 
     581 
    560582        $res=pg_prepare("", $sql); 
    561583        $res=pg_execute("", $v); 
    562584        if (!$res) {echo "\n<p class='err'>Fehler bei hist. Flurst&uuml;ck.</p>";} 
    563585        $zfs=0; 
     586 
    564587        while($row = pg_fetch_array($res)) { 
    565588                $ftyp=$row["ftyp"]; 
     
    569592                $fskenn=$row["zaehler"]; 
    570593                $nachf=$row["nachf"]; 
    571                 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    572  
    573                 if ($ftyp == "a") { // aktuelles FS gefunden, Koordinate holen 
    574  
    575                         // BEGINN +++ als function ? 
    576                         $sqlk ="SELECT "; 
    577                         if($epsg == "25832") { // Transform nicht notwendig 
    578                                 $sqlk.="x(st_Centroid(wkb_geometry)) AS x, "; 
    579                                 $sqlk.="y(st_Centroid(wkb_geometry)) AS y "; 
    580                         } else {   
    581                                 $sqlk.="x(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS x, "; 
    582                                 $sqlk.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y ";                    
    583                         } 
    584                    $sqlk.="FROM ax_flurstueck WHERE gml_id= $1 "; 
    585                         $v=array($fs_gml); 
    586                         $resk=pg_prepare("", $sqlk); 
    587                         $resk=pg_execute("", $v); 
    588                         if (!$resk) {echo "\n<p class='err'>Fehler bei Koordinate.</p>";} 
    589                         $zfsk=0; 
    590                         while($rowk = pg_fetch_array($resk)) {   
    591                                 $x=$rowk["x"]; 
    592                                 $y=$rowk["y"]; 
    593                                 $zfsk++; 
    594                         } 
    595                         if ($zfsk == 0) {echo "\n<p class='err'>Kein Treffer bei Koordinate.</p>";} 
    596                         // ENDE +++ als function ? 
    597  
    598                         echo "\n<p>aktueller Nachfolger:</p>";   
    599                         echo "\n<div class='fs' title='Aktuelles Nachfolger-Flurst&uuml;ck'>"; // Zeile 
    600  
    601                                 // Icon -> Nachweis FS-Hist. in Buchauskunft 
    602                                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    603                                         echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
    604                                 echo "\n\t</a> ";        
    605  
    606                                 // Kennzeichen -> Karte positionieren 
    607                                 echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
    608                                                 echo "javascript:"; 
    609                                                 echo "transtitle(\"auf H-Flurst&uuml;ck positioniert\"); "; 
    610                                                 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
    611                                                 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
    612                                         echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    613                                         echo "onmouseout='parent.parent.hideHighlight()'>"; 
    614                         //      echo $flur."-".$fskenn."</a>"; 
    615                                 echo $fskenn."</a>"; 
    616  
    617                         echo "\n</div>"; 
    618  
     594                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 
     595                if ($ftyp == "a") { // als aktuelles FS gefunden, das "h" war also unnötig! 
     596                        $koor=flurstueckskoordinaten($fs_gml); 
     597                        echo "\n<p>Flurst&uuml;ck ".$fskenn." ist aktuell, nicht historisch</p>";        
     598                        zeile_flurstueck ($fs_gml, $fskenn, $koor["x"], $koor["y"], $gknr, $flur); 
    619599                } else { // Historisches FS gefunden (h oder o) 
    620                 //      echo "\n<p>Historisches Flurst&uuml;ck:</p>"; 
    621  
    622                         if ($ftyp == "h") { 
    623                                 $ico="Flurstueck_Historisch_Lnk.ico"; 
    624                                 $titl="Historisches Flurst&uuml;ck"; 
    625                         } else { 
    626                                 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
    627                                 $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
    628                         }  // h: Karte Pos.? 
    629                         echo "\n<div class='hi' title='".$titl."'>"; 
    630                                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
    631                                         echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 
    632                                 echo "\n\t</a> Historisches Flst. ".$fskenn."</a>"; 
    633                         echo "\n</div>"; 
    634  
     600                        zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur); 
    635601                        if ($nachf == "") { 
    636602                                echo "\n<p class='err'>keine Nachfolger</p>";    
    637603                        } else { 
    638604                                echo "\n<p>Nachfolger-Flurst&uuml;cke:</p>"; 
    639                                 // Die direkten Nachfolger ermitteln 
     605                                // Direkte Nachfolger ermitteln. In $nachf steht ein Array von FS-Kennzeichen. 
     606                                // Von den einzelnen Kennz. ist unbekannt, ob diese noch aktuell sind  
     607                                // oder auch schon wieder historisch. 
    640608                                // Nachfolger in DB suchen um den Status aktuell/historisch zu ermitteln 
    641609                                $stri=trim($nachf, "{}"); 
    642610                                $stri="'".str_replace(",", "','", $stri)."'"; 
    643                         //      $whcln.="WHERE flurstueckskennzeichen IN ( $1 ) "; 
    644611                                $whcln.="WHERE flurstueckskennzeichen IN ( ".$stri." ) "; 
    645                                 $sqln ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$whcln; 
    646                                 $sqln.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$whcln; 
    647                                 $sqln.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$whcln; 
    648                 //              $v=array($stri); 
     612                                $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$whcln; 
     613                                $nasql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$whcln; 
     614                                $nasql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$whcln; 
    649615                                $v=array(); 
    650                                 $resn=pg_prepare("", $sqln); 
    651                                 $resn=pg_execute("", $v); 
    652                                 if (!$resn) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";} 
     616                                $nares=pg_prepare("", $nasql); 
     617                                $nares=pg_execute("", $v); 
     618                                if (!$nares) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";} 
    653619                                $zfsn=0; 
    654                                 while($rown = pg_fetch_array($resn)) { 
    655                                         $ftypn=$rown["ftyp"]; 
    656                                         $na_gml=$rown["gml_id"]; 
    657                                         $gknrn=$rown["gemarkungsnummer"]; 
    658                                         $flurn=$rown["flurnummer"]; 
    659                                         $fskennn=$rown["zaehler"]; 
    660                                         if ($rown["nenner"] != "") {$fskennn.="/".$rown["nenner"];} 
    661  
    662                                         switch ($ftypn) { 
    663                                         case "a": 
    664                                                 $ico="Flurstueck_Link.ico"; 
    665                                                 $titl="Aktuelles Flurst&uuml;ck"; 
    666                                                 $hisparm=""; 
    667                                                 $auskprog="alkisfsnw"; 
    668                                                 // ++ Koordinaten holen? siehe oben "als function" 
    669                                         break; 
    670                                         case "h": 
    671                                                 $ico="Flurstueck_Historisch_Lnk.ico"; 
    672                                                 $titl="Historisches Flurst&uuml;ck"; 
    673                                                 $hisparm="&amp;hist=j"; 
    674                                                 $auskprog="alkisfshist"; 
    675                                         break; 
    676                                         case "o": 
    677                                                 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 
    678                                                 $titl="Historisches Flurst&uuml;ck ohne Raumbezug"; 
    679                                                 $hisparm="&amp;hist=j"; 
    680                                                 $auskprog="alkisfshist"; 
    681                                         break; 
    682                                         } 
    683                                         $fs=$gknrn."-".$flurn."-".$fskennn; 
    684                                         echo "\n<div class='hn' title='Nachfolger: ".$titl."'>";                         
    685                                                 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath.$auskprog.".php?gkz=".$gkz."&amp;gmlid=".$na_gml."\")'>"; 
    686                                                         echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS'>"; 
    687                                                 echo "\n\t</a> ";                
    688                                                 echo "Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fs.$hisparm."'>".$fskennn."</a>";                                     
    689                                         echo "\n</div>"; 
    690  
     620                                while($narow = pg_fetch_array($nares)) { 
     621                                        $naftyp=$narow["ftyp"]; 
     622                                        $nagml=$narow["gml_id"]; 
     623                                        $nagknr=$narow["gemarkungsnummer"]; 
     624                                        $naflur=$narow["flurnummer"]; 
     625                                        $nafskenn=$narow["zaehler"]; 
     626                                        if ($narow["nenner"] != "") {$nafskenn.="/".$narow["nenner"];} 
     627                                        zeile_nachf_fs ($nagml, $nagknr, $naflur, $nafskenn, $naftyp); 
    691628                                        $zfsn++; 
    692                                         // Kontrollieren: Wurden auch so viele FS in DB gefunden, wie im Array "Where in()" standen? 
    693629                                } 
    694630                                if ($zfsn == 0) { 
    695                                         echo "\n<p class='err'>keine Nachfolger gefunden</p>"; 
    696                                         if ($debug > 1) {echo "\n<p class='dbg'>SQL=<br>".$sqln."<br>Liste=<br> ".$stri."</p>";} 
    697                                 }                
     631                                        echo "\n<p class='anz'>keine Nachfolger gefunden</p>"; 
     632                                } else { // if($zfsn > 1) 
     633                                        echo "\n<p class='anz'>".$zfsn." Nachfolger-Flurst&uuml;cke</p>"; 
     634                                } 
    698635                        } 
    699636                } 
    700637                $zfs++; 
    701638        } 
     639        // Foot 
    702640        if($zfs == 0) { 
    703                 echo "\n<p class='err'>Kein historisches Flurst&uuml;ck.</p>"; 
    704                 #if ($debug > 2) {echo "\n<p class='dbg'>".$sql."</p>";} 
     641                echo "\n<p class='anz'>Kein historisches Flurst&uuml;ck.</p>"; 
     642                #if ($debug > 2) {echo  "\n<p class='dbg'> SQL= ".$sql."\n<br> $1 = FS-Kennz = '".$fskzwhere."'</p>";} 
    705643        } 
    706644        return; 
     
    711649// =========== 
    712650if(isset($epsg)) { 
    713         //if ($debug >= 2) {echo "<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB 
    714651        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);    
    715652} else { 
    716         if ($debug >= 1) {echo "\n<p class='dbg'>kein EPSG gesetzt</p>";}        
    717         $epsg=$gui_epsg; // aus Conf 
    718 } 
    719 //if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde = ".$gemeinde."</p>";} 
     653        #if ($debug >= 1) {echo "\n<p class='dbg'>kein EPSG gesetzt</p>";}       
     654        $epsg=$gui_epsg; // Conf 
     655} 
    720656if ($gemeinde == "") { 
    721         $gfilter = 0; // ungefiltert 
     657        $gfilter = 0; 
    722658} elseif(strpos($gemeinde, ",") === false) { 
    723659        $gfilter = 1; // Einzelwert 
     
    727663if ($hist == "j") {$phist = true;} else {$phist = false;} 
    728664 
    729 if(isset($gm)) { // Self-Link aus Gemeinde-Liste 
     665if($gm != "") { // Self-Link aus Gemeinde-Liste 
    730666        $trans="Gemarkungen zur Gemeinde"; 
    731         $gnr=ListGmkgInGemeinde($gm); 
     667        $gnr=ListGmkgInGemeinde($gm, $bez); 
    732668        if ($gnr > 0) { 
    733669                $zgemkg=$gnr; 
     
    736672} else { // Die Formular-Eingabe interpretieren (kann auch ein Link sein) 
    737673        $retzer=ZerlegungFsKennz($fskennz); 
    738         #if ($debug > 1) {echo "<p class='dbg'>Return Zerlegung (case) = '".$retzer."'</p>";}    
    739674        switch ($retzer) { 
    740675        case 0: // leere Eingabe 
    741                 if ($gfilter == 1) { // Die GUI ist bereits auf eine Gemeinde gefiltert 
     676                if ($gfilter == 1) { // Die GUI ist bereits auf EINE Gemeinde gefiltert 
    742677                        $trans="Liste der Gemarkungen"; 
    743678                        SuchGmkgName(); 
     
    746681                        ListGemeinden(); 
    747682                } 
    748         break; 
     683                break; 
    749684        case 1: 
    750                 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsname ".$zgemkg."</p>";} 
    751685                $trans="Suche Gemarkungsname"; 
    752686                $gnr=SuchGmkgName(); 
     
    756690                        EineGemarkung(false); 
    757691                } 
    758         break; 
     692                break; 
    759693        case 2: 
    760                 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsnummer ".$zgemkg."</p>";} 
    761694                $trans="Fluren in Gemarkung"; 
    762695                EineGemarkung(true); 
    763         break; 
     696                break; 
    764697        case 3: 
    765                 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";} 
    766698                if ($phist)     { 
    767699                        $trans="historische Flurst. in Flur"; 
     
    771703                        EineFlur(); 
    772704                } 
    773         break; 
     705                break; 
    774706        case 4: 
    775                 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";} 
    776707                if ($phist)     { 
    777708                        $trans="historisches Flurst&uuml;ck"; 
     
    781712                        EinFlurstueck(); 
    782713                } 
    783         break; 
     714                break; 
    784715        case 5: 
    785716                if ($phist) { 
     
    789720                        $trans="Flurst&uuml;ck"; 
    790721                        EinFlurstueck(); 
    791                 }                
    792         break; 
     722                }        
     723                break; 
    793724        case 9: 
    794725                $trans="falsche Eingabe"; 
    795726                echo "\n<p class='err'>Bitte ein Flurst&uuml;ckskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>"; 
    796         break; 
    797         } 
    798 } 
     727                break; 
     728        } 
     729} 
     730 
    799731// Titel im Kopf anzeigen 
    800732echo "\n<script type='text/javascript'>\n\ttranstitle('".$trans."')\n</script>"; 
Note: See TracChangeset for help on using the changeset viewer.