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

Mapbender-Navigation mit ALKIS-Daten komplett überarbeitet.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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?> 
Note: See TracChangeset for help on using the changeset viewer.