Changeset 126


Ignore:
Timestamp:
11/10/11 09:49:46 (12 years ago)
Author:
frank.jaeger
Message:

ALKIS-Navigation, Suche nach historischen Flurstücken erweitert

Location:
trunk/data/mapbender/http/nav
Files:
2 edited

Legend:

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

    r124 r126  
    22        Version 
    33         2011-04-11 
    4          2011-11-07 Historie 
     4         2011-11-09 Historie, dbg 
    55*/ 
    66body,p,a,.textfield,.sbutton    {font-family: Verdana, Arial, Helvetica, sans-serif;} 
     
    1111p.start         {font-size:  9px; color: gray;} 
    1212p.nam           {font-size: 10px; border: 1px solid navy; padding: 3px; margin: 0px;} 
    13 p.err           {font-size: 11px; color: red;} 
     13p.err           {font-size: 11px; color: red;}  /* Fehler -> Anwender */ 
     14p.dbg           {font-size: 10px; color: gray;} /* Debug -> Entwickler */ 
    1415 
    1516a                       {text-decoration: none;} /* font-size: 11px; */ 
    1617a:hover, a:active       {color: red;} 
     18a.hislnk {color: gray; font-style: italic; text-align: right; padding-left: 50px;}      /* Link zur Historie */ 
     19 
    1720/* abgestuft eingerueckte Treffer in der Suche */ 
    1821div                     {margin: 0px; padding: 0px;} 
     
    4750        background: #6699FF; 
    4851} 
    49 img.nwlink      {border: 0px; margin: 0px; padding: 0px;} /* Icons */ 
     52img.nwlink      {border: 0px; margin: 0px; padding: 0px;} /* Icons mit Link zum Buch-Nachweis */ 
    5053.letter         {cursor: pointer; font-weight: bold;} /* Liste Anfangsbuchstaben */ 
    5154 
  • trunk/data/mapbender/http/nav/alkisnav_fls.php

    r124 r126  
    88        24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 
    99        07.11.2011 optional auch Historische FS suchen, Link auf Buchauskunft-Modul alkisfshis.php 
     10        09.11.2011 "h" hinter Flur oder FlurstÃŒck sucht sofort in Historie 
     11                                        Ausgabe Flur in Varianten aktuell/historisch mit gegenseitigen Verweisen  
    1012        ToDo: 
    11                 Hist: die Nachfolger-Liste gleich in der DB nachschlagen,und aktuelle FS als solche anzeigen 
     13                Hist: Gemarkung entschlÃŒsseln 
     14                Hist: die Nachfolger-Liste gleich in der DB nachschlagen, und aktuelle FS als solche anzeigen 
     15                Hist: Icons fÃŒr Link (mit Pfeil), Icons H/O unterscheiden 
    1216*/ 
    1317import_request_variables("PG"); 
     
    3640} 
    3741 
     42function h_hinten($zahl) { 
     43        // Testen: Wurde an eine Zahl ein "h" angehÀngt? 
     44        // Wenn ja, dann Schalter setzen und nur numerischen Teil zurÃŒck geben. 
     45        global $phist, $debug; 
     46//      if ($debug >= 2) {echo "<p class='dbg'>Teilen '".$zahl."'</p>";}                 
     47        $zahl=trim($zahl);       
     48        $zlen=strlen($zahl) - 1; 
     49        if ($zlen > 0) {  
     50                $hinten = ucfirst(substr($zahl, $zlen, 1)); 
     51                if ($hinten == "H" ) { 
     52                        $vorn=trim(substr($zahl, 0, $zlen)); 
     53                        if (is_ne_zahl($vorn)) { // Zahl *und* "H" 
     54                                $zahl = $vorn; 
     55                                $phist = true; 
     56                        } 
     57                } 
     58        } 
     59//      if ($debug >= 2) {echo "<p class='dbg'>Teile '".$vorn."'/'".$hinten."'</p>";}    
     60        return $zahl; 
     61} 
     62 
    3863function ZerlegungFsKennz($fskennz) { 
    39 // Das eingegebene FlurstÃŒcks-Kennzeichen auseinander nehmen, Erwartet wird gggg-fff-zzzz/nnn 
     64// Das eingegebene FlurstÃŒcks-Kennzeichen auseinander nehmen. Erwartet wird gggg-fff-zzzz/nnn 
    4065        global $debug, $zgemkg, $zflur, $zzaehler, $znenner;     
     66//      if ($debug > 1) {echo "<p class='dbg'>Zerlegen: '".$fskennz."'</p>";} 
    4167        $arr = explode("-", $fskennz, 4); 
    4268        $zgemkg=trim($arr[0]); 
    43         $zflur=trim($arr[1]); 
     69        $zflur=h_hinten($arr[1]); 
    4470        $zfsnr=trim($arr[2]); 
     71        if ($debug > 1) {echo "<p class='dbg'>Gemkg: '".$zgemkg."' Flur: '".$zflur."' NR: '".$zfsnr."'</p>";} 
     72         
    4573        if ($zgemkg == "") { 
    4674                return 0; // Gemeinden oder Gemarkungen listen 
     
    5078                return 2; // G-Nr 
    5179        } elseif ( ! is_ne_zahl($zflur)) { 
    52                 echo "<p class='err>Die Flurnummer '".$zflur."' ist nicht numerisch</p>"; 
     80                echo "<p class='err'>Die Flurnummer '".$zflur."' ist nicht numerisch</p>"; 
    5381                return 9; 
    54         } elseif ($zfsnr == "") {                
     82        } elseif ($zfsnr == "") { 
    5583                return 3; // Flur                                
    5684        } else { 
    5785                $zn=explode("/", $zfsnr, 2); 
    58                 $zzaehler=trim($zn[0]); 
    59                 $znenner=trim($zn[1]);                           
     86                $zzaehler=h_hinten(trim($zn[0])); 
     87                $znenner =h_hinten(trim($zn[1])); 
    6088                if ( ! is_ne_zahl($zzaehler)) { 
    61                         echo "<p class='err>FlurstÃŒcksnummer '".$zzaehler."' ist nicht numerisch</p>"; 
     89                        echo "<p class='err'>FlurstÃŒcksnummer '".$zzaehler."' ist nicht numerisch</p>"; 
    6290                        return 9; 
    6391                } elseif ($znenner == "") { 
     
    6694                        return 5;                                                                
    6795                } else { 
    68                         echo "<p class='err>FlurstÃŒcks-Nenner '".$znenner."' ist nicht numerisch</p>"; 
     96                        echo "<p class='err'>FlurstÃŒcks-Nenner '".$znenner."' ist nicht numerisch</p>"; 
    6997                        return 9; 
    7098                } 
     
    95123        if (!$res) { 
    96124                echo "\n<p class='err'>Fehler bei Gemeinde</p>"; 
    97                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
     125                if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    98126                return 0; 
    99127        } 
     
    131159        if (!$res) { 
    132160                echo "\n<p class='err'>Fehler bei Gemarkungen</p>"; 
    133                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
     161                if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    134162                return 0; 
    135163        } 
     
    188216        if (!$res) { 
    189217                echo "\n<p class='err'>Fehler bei Gemarkung</p>"; 
    190                 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
     218                if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 
    191219                return 0; 
    192220        } 
     
    275303} 
    276304 
    277 function EineFlur() { 
    278         // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben 
    279         global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $zgemkg, $zflur; 
    280         $linelimit=600; // Wie groß kann eine Flur sein? 
     305function gemkg_zeile($zgemkg) { 
     306// Zeile zu Gemarkung ausgeben, gkg-schlÃŒssel ÃŒbergeben 
     307 
     308        global $con, $gkz, $gemeinde, $epsg; 
     309 
    281310        $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; 
    282311        $v=array($zgemkg); 
     
    300329                echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>"; 
    301330        echo "\n</div>"; 
     331        return 0; 
     332} 
     333 
     334function EineFlur() { 
     335        // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, dazu aktuelle FlurstÃŒcke suchen 
     336        global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $zgemkg, $zflur; 
     337        $linelimit=600; // Wie groß kann eine Flur sein? 
     338 
     339        gemkg_zeile($zgemkg); 
    302340        echo "\n<div class='fl' title='Flur'>"; 
    303341                echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 
    304                 echo "Flur <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur."'> ".$zflur."</a>"; 
     342                $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur; 
     343                echo "Flur <a href='".$url."'>".$zflur."</a>"; 
     344                //echo "<span class='hislnk'>"; 
     345                echo " <a class='hislnk' title='Historische Flurst&uuml;cke' href='".$url."&amp;hist=j'>Hist.</a>";              
    305346        echo "\n</div>"; 
    306347 
    307348        $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
    308         //      $sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 
    309         //      $sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y "; 
    310349        if($epsg == "25832") { // Transform nicht notwendig 
    311350                $sql.="x(st_Centroid(f.wkb_geometry)) AS x, "; 
     
    344383        if($zfs == 0) {  
    345384                echo "\n<p class='err'>Kein Flurst&uuml;ck.</p>"; 
     385        } elseif($zfs >= $linelimit) { 
     386                echo "\n<p>... und weitere</p>"; 
     387        } 
     388        return; 
     389} 
     390 
     391function HistFlur() { 
     392        // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben 
     393        // Die Flur nach Historischen FlurstÃŒcken durchsuchen 
     394        global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $land, $zgemkg, $zflur; 
     395        $linelimit=400; 
     396 
     397        gemkg_zeile($zgemkg); 
     398        echo "\n<div class='fl' title='Flur'>"; 
     399                echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur-Historie'> "; 
     400                $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur; 
     401                echo "Historie: Flur<a title='Aktuelle Flurst&uuml;cke suchen' href='".$url."'> ".$zflur." </a>";  
     402        echo "\n</div>"; 
     403 
     404        $whcl.="WHERE flurstueckskennzeichen like $1 "; 
     405        $sql ="SELECT 'h' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 
     406        $sql.="UNION SELECT 'o' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 
     407        $sql.="ORDER BY zaehler, nenner LIMIT $2 ;";  
     408        $fskzwhere =$land.$zgemkg.str_pad($zflur, 3, "0", $STR_PAD_LEFT)."%"; 
     409        $v=array($fskzwhere,   $linelimit); 
     410        $res=pg_prepare("", $sql); 
     411        $res=pg_execute("", $v); 
     412        if (!$res) {echo "\n<p class='err'>Fehler bei Historie Flur.</p>";} 
     413        $zfs=0; 
     414 
     415        // Konst. Teil d.URL (Flur), FS anhÀngen 
     416        $flurl=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;hist=j&amp;fskennz=".$zgemkg."-".$zflur."-"; 
     417 
     418        while($row = pg_fetch_array($res)) {     
     419                $ftyp=$row["ftyp"]; 
     420                $fs_gml=$row["gml_id"]; // fuer Buchausk. 
     421                $fskenn=$row["zaehler"]; 
     422                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
     423 
     424                //++    if ($ftyp == "h") { } else { }  // versch. Icons? h: Karte Pos.? 
     425                echo "\n<div class='hi' title='Historisches Flurst&uuml;ck'>"; // Zeile 
     426                        // Icon -> Bauchauskunft 
     427                        echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."'>"; 
     428                                echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt='Hist'>"; 
     429                        echo "\n\t</a> ";                
     430                        // Kennzeichen -> weiter in die Historie hinein 
     431                        echo "\n\tFlst. <a href='".$flurl.$fskenn."'>".$fskenn."</a>";                                   
     432                echo "\n</div>"; 
     433                $zfs++; 
     434        } 
     435        if($zfs == 0) {  
     436                echo "\n<p class='err'>Kein historisches Flurst&uuml;ck.</p>"; 
     437                if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = ".$fskzwhere."</p>";} 
    346438        } elseif($zfs >= $linelimit) { 
    347439                echo "\n<p>... und weitere</p>"; 
     
    409501 
    410502function HistFlurstueck() { 
    411         // Ein HISTORISCHES FlurstÃŒckskennzeichen oder Nachfolger komplett eingegeben 
     503        // Ein Nachfolger-FS-Kennzeichen soll recherchiert werden. 
     504        // Es ist unbekannt, ob dies aktuell ist oder auch schon historisch. 
    412505        global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $land, $zgemkg, $zflur, $zzaehler, $znenner; 
    413506 
    414 //++++ TEST 300 :  2769-9-5/1 
    415  
    416         // Suche ueber das Flurstueckskennzeichen, gml meist unbekannt 
     507        // Suche ueber das Flurstueckskennzeichen, gml ist meist unbekannt 
    417508        $whcl.="WHERE flurstueckskennzeichen= $1 "; 
    418509 
     
    441532                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
    442533 
    443                 if ($ftyp == "a") { // aktuelles FS gefunden 
    444  
    445                         // noch die Koordinate dazu besorgen 
     534                if ($ftyp == "a") { // aktuelles FS gefunden, Koordinate holen 
    446535                        $sql ="SELECT "; 
    447536                        if($epsg == "25832") { // Transform nicht notwendig 
     
    465554                        if ($zfs == 0) {echo "\n<p class='err'>Kein Treffer bei Koordinate.</p>";} 
    466555                        echo "\n<p>aktueller Nachfolger:</p>";   
    467  
    468                         // Zeile 
    469                         echo "\n<div class='fs' title='Aktuelles Nachfolger-Flurst&uuml;ck'>"; 
     556                        echo "\n<div class='fs' title='Aktuelles Nachfolger-Flurst&uuml;ck'>"; // Zeile 
    470557 
    471558                                // Icon -> Nachweis FS-Hist. in Buchauskunft 
     
    530617        if($zfs == 0) { 
    531618                echo "\n<p class='err'>Kein historisches Flurst&uuml;ck.</p>"; 
    532                 if ($debug > 2) {echo "<p class='err'>".$sql."</p>";} 
     619                if ($debug > 2) {echo "<p class='dbg'>".$sql."</p>";} 
    533620        } 
    534621        return; 
     
    539626// =========== 
    540627if(isset($epsg)) { 
    541         if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";     } // aus MB 
     628        //if ($debug >= 2) {echo "<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB 
    542629        $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);    
    543630} else { 
    544         if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}  
     631        if ($debug >= 1) {echo "<p class='dbg'>kein EPSG gesetzt</p>";}  
    545632        $epsg=$gui_epsg; // aus Conf 
    546633} 
    547 if ($debug >= 2) { 
    548         echo "<p>Filter Gemeinde = ".$gemeinde."</p>"; 
    549 } 
     634//if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde = ".$gemeinde."</p>";} 
    550635if ($gemeinde == "") { 
    551636        $gfilter = 0; // ungefiltert 
     
    555640        $gfilter = 2; // Liste 
    556641} 
    557 if ($hist == "j") { $phist = true;} else {$phist = false;} 
     642if ($hist == "j") {$phist = true;} else {$phist = false;} 
    558643 
    559644if(isset($gm)) { // Self-Link aus Gemeinde-Liste  
     
    562647                $zgemkg=$gnr; 
    563648                EineGemarkung(false); 
    564         };       
     649        } 
    565650} else { 
    566651        // Die Formular-Eingabe interpretieren (kann auch ein Link sein) 
    567         switch (ZerlegungFsKennz($fskennz)) { 
     652        $retzer=ZerlegungFsKennz($fskennz); 
     653//      if ($debug > 1) {echo "<p class='dbg'>Return Zerlegung (case) = '".$retzer."'</p>";}     
     654        switch ($retzer) { 
    568655        case 0: // leere Eingabe 
    569656                if ($gfilter == 1) { // Die GUI ist bereits auf eine Gemeinde gefiltert 
     
    574661        break; 
    575662        case 1: 
    576                 if ($debug >= 2) {echo "<p>Gemarkungsname ".$zgemkg."</p>";} 
     663                if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsname ".$zgemkg."</p>";} 
    577664                $gnr=SuchGmkgName(); 
    578665                if ($gnr > 0) { 
    579666                        $zgemkg=$gnr; 
    580667                        EineGemarkung(false); 
    581                 };       
     668                } 
    582669        break; 
    583670        case 2: 
    584                 if ($debug >= 2) {echo "<p>Gemarkungsnummer ".$zgemkg."</p>";}   
     671                if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsnummer ".$zgemkg."</p>";}       
    585672                EineGemarkung(true); 
    586673        break; 
    587674        case 3: 
    588                 if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";} 
    589                 EineFlur(); 
     675                if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";} 
     676                if ($phist)     {HistFlur();} else {EineFlur();} 
    590677        break; 
    591678        case 4: 
    592                 if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";} 
     679                if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";} 
    593680                if ($phist)     {HistFlurstueck();} else {EinFlurstueck();} 
    594681        break; 
    595682        case 5: 
    596                 if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."</p>";} 
     683                if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."</p>";} 
    597684                if ($phist) {HistFlurstueck();} else {EinFlurstueck();}          
    598685        break; 
Note: See TracChangeset for help on using the changeset viewer.