Ignore:
Timestamp:
11/08/11 14:17:35 (12 years ago)
Author:
frank.jaeger
Message:

ALKIS-Mapbender-Navigation erweitert um die Suche in Flurstücks-Historie

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

Legend:

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

    r86 r124  
    11/* Style fuer ALKIS-Navigation  
    2         Version 2011-04-11 
     2        Version 
     3         2011-04-11 
     4         2011-11-07 Historie 
    35*/ 
    46body,p,a,.textfield,.sbutton    {font-family: Verdana, Arial, Helvetica, sans-serif;} 
     
    2426div.gs          {color: olive;          margin-left: 15px; margin-top: 2px;} /* Grundstueck, BVNR */ 
    2527div.fs          {color: navy;           margin-left: 20px; margin-top: 0px;} /* Flurstueck */ 
     28div.hi          {color: gray;           margin-left: 20px; margin-top: 0px;} /* Historie */ 
     29div.hn          {color: gray;           margin-left: 25px; margin-top: 0px;} /* Historie-Nachfolger */ 
    2630 
    2731div.stu         {color: maroon; font-size: 13px;} /* Strasse - Ueberschrift */ 
  • trunk/data/mapbender/http/nav/alkisnav_fls.php

    r115 r124  
    77        25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden 
    88        24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 
     9        07.11.2011 optional auch Historische FS suchen, Link auf Buchauskunft-Modul alkisfshis.php 
     10        ToDo: 
     11                Hist: die Nachfolger-Liste gleich in der DB nachschlagen,und aktuelle FS als solche anzeigen 
    912*/ 
    1013import_request_variables("PG"); 
     
    259262                $flur=$row["flur"]; 
    260263                echo "\n<div class='fl' title='Flur'>"; 
    261                         echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 
     264                        echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'>&nbsp;"; 
    262265                        echo "Flur<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$flur."'>&nbsp;".$flur."&nbsp;</a>"; 
    263266                echo "\n</div>"; 
     
    350353        // FlurstÃŒckskennzeichen komplett bis zum Zaehler eingegeben 
    351354        // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler 
    352         global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $zgemkg, $zflur, $zzaehler, $znenner; 
    353  
    354         $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
    355         //      $sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 
    356         //      $sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 
     355        global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $fskennz, $zgemkg, $zflur, $zzaehler, $znenner; 
     356 
     357        $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 
    357358        if($epsg == "25832") { // Transform nicht notwendig 
    358359                $sql.="x(st_Centroid(f.wkb_geometry)) AS x, "; 
     
    364365        } 
    365366 
    366         $sql.="g.gemarkungsnummer, g.bezeichnung "; 
     367        $sql.="g.bezeichnung "; 
    367368   $sql.="FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    368369        $sql.="WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; 
     
    395396                $zfs++; 
    396397        } 
    397         if($zfs == 0) {echo "\n<p class='err'>Kein Flurst&uuml;ck.</p>";} 
     398        if($zfs == 0) { 
     399                echo "\n<p class='err'>Kein aktuelles Flurst&uuml;ck.</p>"; 
     400 
     401                // Soll in der Historie weiter gesucht werden? 
     402                echo "\n<div class='hi' title='Historie'>"; 
     403                        echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt='Historisches Flurst&uuml;ck'>&nbsp;"; 
     404                        echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fskennz."&amp;hist=j'>in Historie suchen</a>"; 
     405                echo "\n</div>";                 
     406        } 
     407        return; 
     408} 
     409 
     410function HistFlurstueck() { 
     411        // Ein HISTORISCHES FlurstÃŒckskennzeichen oder Nachfolger komplett eingegeben 
     412        global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $land, $zgemkg, $zflur, $zzaehler, $znenner; 
     413 
     414//++++ TEST 300 :  2769-9-5/1 
     415 
     416        // Suche ueber das Flurstueckskennzeichen, gml meist unbekannt 
     417        $whcl.="WHERE flurstueckskennzeichen= $1 "; 
     418 
     419        $sql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, null as nachf FROM ax_flurstueck ".$whcl; 
     420        $sql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 
     421        $sql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 
     422 
     423        $fskzwhere =$land.$zgemkg; // Flurst-Kennz. f. Where 
     424        $fskzwhere.=str_pad($zflur, 3, "0", $STR_PAD_LEFT); 
     425        $fskzwhere.=str_pad($zzaehler, 5, "0", $STR_PAD_LEFT); 
     426        if ($znenner == "") {$fskzwhere.="______";} 
     427        else {$fskzwhere.=str_pad($znenner, 4, "0", $STR_PAD_LEFT)."__";} 
     428 
     429        $v=array($fskzwhere); 
     430        $res=pg_prepare("", $sql); 
     431        $res=pg_execute("", $v); 
     432        if (!$res) {echo "\n<p class='err'>Fehler bei hist. Flurst&uuml;ck.</p>";} 
     433        $zfs=0; 
     434        while($row = pg_fetch_array($res)) { 
     435                $ftyp=$row["ftyp"]; 
     436                $fs_gml=$row["gml_id"]; 
     437                $gknr=$row["gemarkungsnummer"]; 
     438                $flur=$row["flurnummer"]; 
     439                $fskenn=$row["zaehler"]; 
     440                $nachf=$row["nachf"]; 
     441                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
     442 
     443                if ($ftyp == "a") { // aktuelles FS gefunden 
     444 
     445                        // noch die Koordinate dazu besorgen 
     446                        $sql ="SELECT "; 
     447                        if($epsg == "25832") { // Transform nicht notwendig 
     448                                $sql.="x(st_Centroid(wkb_geometry)) AS x, "; 
     449                                $sql.="y(st_Centroid(wkb_geometry)) AS y "; 
     450                        } else {   
     451                                $sql.="x(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS x, "; 
     452                                $sql.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y ";                     
     453                        } 
     454                   $sql.="FROM ax_flurstueck WHERE gml_id= $1 "; 
     455                        $v=array($fs_gml); 
     456                        $res=pg_prepare("", $sql); 
     457                        $res=pg_execute("", $v); 
     458                        if (!$res) {echo "\n<p class='err'>Fehler bei Koordinate.</p>";} 
     459                        $zfs=0; 
     460                        while($row = pg_fetch_array($res)) {     
     461                                $x=$row["x"]; 
     462                                $y=$row["y"]; 
     463                                $zfs++; 
     464                        } 
     465                        if ($zfs == 0) {echo "\n<p class='err'>Kein Treffer bei Koordinate.</p>";} 
     466                        echo "\n<p>aktueller Nachfolger:</p>";   
     467 
     468                        // Zeile 
     469                        echo "\n<div class='fs' title='Aktuelles Nachfolger-Flurst&uuml;ck'>"; 
     470 
     471                                // Icon -> Nachweis FS-Hist. in Buchauskunft 
     472                                echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."'>"; 
     473                                        echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
     474                                echo "\n\t</a> ";        
     475 
     476                                // Kennzeichen -> Karte positionieren 
     477                                echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
     478                                                echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
     479                                                echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
     480                                        echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     481                                        echo "onmouseout='parent.parent.hideHighlight()'>"; 
     482                                echo $gmkg." ".$flur."-".$fskenn."</a>"; 
     483 
     484                        echo "\n</div>"; 
     485 
     486                } else { // Historisches FS gefunden (h oder o) 
     487                        echo "\n<p>Historisches Flurst&uuml;ck:</p>"; 
     488 
     489                        // Zeile 
     490                        echo "\n<div class='hi' title='Historisches Flurst&uuml;ck'>"; 
     491                                echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."'>"; 
     492                                        echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt='Hist'>"; 
     493                                echo "\n\t</a> ";                
     494                                echo "\n\t ".$gknr."-".$flur."-".$fskenn."</a>"; 
     495                        echo "\n</div>"; 
     496 
     497                        // Nachfolger ermitteln 
     498                        if ($nachf == "") { 
     499                                echo "\n<p class='err'>keine Nachfolger</p>";    
     500                        } else { 
     501                                echo "\n<p>Nachfolger-Flurst&uuml;cke:</p>";     
     502                                $stri=trim($nachf, "{}"); 
     503                                $arr = split(",",$stri); 
     504                                foreach($arr AS $val){ 
     505                                        $fst=rtrim($val,"_");    
     506                                        $zer=substr ($fst, 2, 4)."-".ltrim(substr($fst, 6, 3), "0")."-".ltrim(substr($fst, 9, 5),"0"); 
     507                                        $nenn=ltrim(substr($fst, 14), "0"); 
     508                                        if ($nenn != "") {$zer.="/".$nenn;} 
     509 
     510// +++ besser: array in Where kennz in ( , , ) umwandeln 
     511// aktuelle FS gleich als solche anzeigen 
     512 
     513                                        // Zeile Nachfolger 
     514                                        echo "\n<div class='hn' title='Historie Nachfolger'>"; 
     515 
     516                                                // Icon -> Nachweis                                      
     517                                                echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;fskennz=".$val."'>"; 
     518                                                        echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt='Hist'>"; 
     519                                                echo "\n\t</a> ";                
     520 
     521                                                // Kennzeichen -> weiter in die Historie hinein 
     522                                                echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zer."&amp;hist=j'>".$zer."</a>";                                    
     523 
     524                                        echo "\n</div><br>"; 
     525                                } 
     526                        } 
     527                } 
     528                $zfs++; 
     529        } 
     530        if($zfs == 0) { 
     531                echo "\n<p class='err'>Kein historisches Flurst&uuml;ck.</p>"; 
     532                if ($debug > 2) {echo "<p class='err'>".$sql."</p>";} 
     533        } 
    398534        return; 
    399535} 
     
    419555        $gfilter = 2; // Liste 
    420556} 
     557if ($hist == "j") { $phist = true;} else {$phist = false;} 
    421558 
    422559if(isset($gm)) { // Self-Link aus Gemeinde-Liste  
     
    435572                        ListGemeinden(); // alle Gemeinden Listen 
    436573                } 
    437                 break; 
     574        break; 
    438575        case 1: 
    439576                if ($debug >= 2) {echo "<p>Gemarkungsname ".$zgemkg."</p>";} 
     
    443580                        EineGemarkung(false); 
    444581                };       
    445                 break; 
     582        break; 
    446583        case 2: 
    447584                if ($debug >= 2) {echo "<p>Gemarkungsnummer ".$zgemkg."</p>";}   
    448585                EineGemarkung(true); 
    449                 break; 
     586        break; 
    450587        case 3: 
    451588                if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";} 
    452589                EineFlur(); 
    453                 break; 
     590        break; 
    454591        case 4: 
    455592                if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";} 
    456                 EinFlurstueck(); 
    457                 break; 
     593                if ($phist)     {HistFlurstueck();} else {EinFlurstueck();} 
     594        break; 
    458595        case 5: 
    459596                if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."</p>";} 
    460                 EinFlurstueck(); 
    461                 break; 
     597                if ($phist) {HistFlurstueck();} else {EinFlurstueck();}          
     598        break; 
    462599        case 9: 
    463600                echo "<p class='err'>Bitte ein Flurst&uuml;ckskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>"; 
    464                 break; 
     601        break; 
    465602        } 
    466603} 
Note: See TracChangeset for help on using the changeset viewer.