Ignore:
Timestamp:
12/01/16 12:43:03 (7 years ago)
Author:
frank.jaeger
Message:

Verbesserungen an der ALKIS-Buchauskunft (Geschwindigkeit, Fehlerkorrekturen, Mandantenfähigkeit) und an der Mapbender2-Navigation.

File:
1 edited

Legend:

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

    r356 r376  
    11<?php 
    2 /* Version vom  
    3         2013-05-07      Strukturierung des Programms, redundanten Code in Functions zusammen fassen 
    4         2013-05-14      Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar. 
    5         2013-05-15      Function verlegt 
    6         2014-02-06      Korrektur zeile_person 
    7         2014-09-03      PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    8         2014-09-15      Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL" 
    9         2014-09-30      RÃŒckbau substring(gml_id) 
    10         2015-12-10      Umstellen .ico auf .png, Vermeidung nicht initialisierter Variable 
     2/*      Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil "Funktionen" 
     3        (Wird nicht direkt aufgerufen sonden in den anderen Modulen eingebunden). 
     4        Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 
     5 
     6Version vom  
     7        2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 
     8        2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 
    119*/ 
    1210 
     
    8785// Hierin die Encodierung fÃŒr url und HTML. 
    8886 
    89 function zeile_ag ($ag, $anr, $aktuell) {       // Zeile  A m t s g e r i c h t 
     87function zeile_ag ($ag, $anr, $aktuell) { 
     88        // Zeile  A m t s g e r i c h t 
    9089        global $gkz, $gemeinde, $epsg, $auskpath; 
    9190        if ($ag == "") { 
     
    103102} 
    104103 
    105 function zeile_gbbez ($gnam, $zgbbez, $aktuell) {       // Zeile Grundbuch - B e z i r k 
     104function zeile_gbbez ($gnam, $zgbbez, $aktuell) { 
     105        // Zeile Grundbuch - B e z i r k 
    106106        // Parameter: aktuell = Bool fÃŒr farbliche Markierung der Zeile als aktuell angeklicktes Obj. 
    107107        global $gkz, $gemeinde, $epsg, $person; 
     
    124124 
    125125function zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, $dienend, $person, $aktuell) { 
     126        // Zeile Grundbuch - B l a t t 
     127        // Aufruf aus Teil "Grundbuch" und Teil "EigentÃŒmer" 
     128        // Parameter $beznam = Name des GB-Bezirks. Sollte nur gefÃŒllt sein, bei dienendem Blatt ("Recht an"). 
     129        //              sonst steht der Bezirk als Header-Zeile darÃŒber. 
    126130        global $gkz, $gemeinde, $epsg, $auskpath; 
    127         // Zeile Grundbuch - B l a t t 
     131 
    128132        $blattd=ltrim($blatt, "0"); // Display-Version ohne fÃŒhrende Nullen 
    129133        if ($dienend) {$dientxt="dienendes ";} else {$dientxt="";} 
     
    136140        // Icon / Nachweis 
    137141        if ($blattgml == "") { // Link zum Nachweis nur wenn GML bekannt 
    138                 echo "\n\t<img class='nwlink' src='ico/GBBlatt_link.png' width='16' height='16' alt='Blatt' title='".$dientxt."GB-Blatt'>"; 
     142                echo "\n\t<img class='nwlink' src='ico/GBBlatt.png' width='16' height='16' alt='Blatt' title='".$dientxt."GB-Blatt'>"; 
    139143        } else { 
    140144                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>"; 
     
    156160function zeile_buchung($buchunggml, $bvnr, $blattkennz, $dienend, $aktuell) { 
    157161        // Zeile  B u c h u n g s s t e l l e  -  GrundstÃŒck ausgeben 
    158         global $gkz, $gemeinde, $epsg, $auskpath; 
    159         if ($bvnr == 0) { 
    160                 $bvnra = "-"; 
     162        global $gkz, $gemeinde, $epsg, $auskpath, $debug; 
     163        //if ($debug > 1) {echo "<p class='dbg'>function zeile_buchung()<p>";} // Ablauf-Verfolgung 
     164 
     165        if ($bvnr == 0) { // Keine echten BVNR vergeben (z.B. Lippe) 
     166                $bvnra = "-"; // Fehlanzeige 
    161167        } else { 
    162168                $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 
     
    184190 
    185191function zeile_gemeinde ($gmdnr, $gmdname, $aktuell) { 
    186         // Eine Zeile zu Gemeinde ausgeben, SchlÃŒssel und Name wird ÃŒbergeben 
     192        // Eine Kopf-Zeile zu Gemeinde ausgeben 
    187193        global $gkz, $gemeinde, $epsg; 
    188194        $stadt=htmlentities($gmdname, ENT_QUOTES, "UTF-8"); 
     
    192198                echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.png' width='16' height='16' alt='Stadt'>"; 
    193199                echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gm=".$gmdnr."&amp;bez=".$bez."'>";               
    194                 echo  " ".$stadt."</a> (".$gmdnr.")"; 
     200                echo  " ".$stadt."</a> (".substr($gmdnr, 5).")"; 
     201        echo "\n</div>"; 
     202        return; 
     203} 
     204 
     205function zeile_gemarkung($gkgnr, $gkgname, $aktuell) { 
     206        // Eine Kopf-Zeile zur Gemarkung ausgeben 
     207        global $con, $gkz, $gemeinde, $epsg, $gfilter; 
     208 
     209        if ($gkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen 
     210                $sql ="SELECT bezeichnung FROM ax_gemarkung WHERE gemarkungsnummer = $1 LIMIT 1;"; 
     211                $v=array($gnr); 
     212                $res=pg_prepare("", $sql); 
     213                $res=pg_execute("", $v); 
     214                if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkungsname.</p>";} 
     215                $row = pg_fetch_array($res); 
     216                $gkgname=$row["bezeichnung"]; 
     217        } 
     218 
     219        if ($gkgname == "") {$gkgname = "(unbekannt)";} 
     220        $gnam=htmlentities($gkgname, ENT_QUOTES, "UTF-8"); 
     221        if ($aktuell) {$cls=" aktuell";} else {$cls="";} 
     222 
     223        echo "\n<div class='gk".$cls."' title='Gemarkung'>"; 
     224        echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.png' width='16' height='16' alt='GKG' title='Gemarkung'>"; 
     225        echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gkgnr."'>";             
     226        echo  " ".$gnam."</a> (".substr($gkgnr, 2).")"; 
    195227        echo "\n</div>"; 
    196228        return; 
     
    226258 
    227259function zeile_person ($persongml, $nachname, $vorname) { 
     260        // Zeile  P e r s o n (oder Firma) 
    228261        global $gkz, $gemeinde, $epsg, $auskpath; 
    229         // Zeile  P e r s o n (oder Firma) 
     262 
    230263        $nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8"); 
    231264        $namlnk=urlencode($nachname); 
     
    240273</div>"; 
    241274return; 
     275} 
     276 
     277function zeile_strasse ($gkey, $skey, $sname, $kgml, $gemname) { 
     278        // Listen-Zeile (nicht Kopfzeile) fÃŒr eine gefundenen Straße ausgeben. 
     279        // Die Kopfzeile ÃŒber den Hausnummern hat einen zusÀtzlichen Koordinaten-Map-Link, das ist in der Liste zu aufwÀndig? 
     280        global $gkz, $gemeinde, $epsg, $auskpath, $gfilter, $debug; 
     281        //if ($debug > 1) {echo "<p class='dbg'>function zeile_strasse()<p>";} // Ablauf-Verfolgung 
     282 
     283        echo "\n\t<div class='stl' title='Stra&szlig;enschl&uuml;ssel ".$skey."'>"; 
     284 
     285        // Icon -> Buchnachweis 
     286        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$kgml."\")'>"; 
     287                echo "\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.png' width='16' height='16' alt='STR' title='Auskunft Stra&szlig;e'>"; 
     288        echo "\n\t</a>"; 
     289        // Zeile -> Suche HsNr 
     290        echo " <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$gkey."' title='in ".$gemname."'>".$sname; 
     291        echo "</a> (".$skey.")"; 
     292 
     293        // Die Gemeinde dahinter falls mehrere möglich 
     294        switch ($gfilter) { 
     295                case 0: // Kein Filter 
     296                        echo " in ".$gemname; break; 
     297                case 2: // Liste 
     298                        echo " in ".$gemname; break; 
     299        } 
     300        echo "</div>"; 
     301        return; 
    242302} 
    243303 
     
    257317                $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";                      
    258318        } 
    259         $sql1.="g.gemarkung, g.gemarkungsname FROM ax_buchungsstelle s1 ";  
     319        $sql1.="g.bezeichnung FROM ax_buchungsstelle s1 ";  
    260320 
    261321        // zwischen, Variante 1. 
     
    267327 
    268328        // hinten gleich 
    269         $sql2="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung  
     329        $sql2="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
    270330        WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL "; 
     331 
    271332        switch ($gfilter) { 
    272333                case 1: // Einzelwert 
    273                         $sql2.="AND g.gemeinde='".$gemeinde."' "; break; 
     334                        $sql2.="AND f.gemeinde='".$gemeinde."' "; break; 
    274335                case 2: // Liste 
    275                         $sql2.="AND g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 
     336                        $sql2.="AND f.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 
    276337        } 
    277338 
     
    301362                } 
    302363                $fs_gml=$row["gml_id"]; 
    303                 $gmkg=$row["gemarkungsname"]; 
     364                $gmkg=$row["bezeichnung"]; 
    304365                $flur=$row["flurnummer"]; 
    305366                $fskenn=$row["zaehler"]; 
     
    339400                } 
    340401                $fs_gml=$row["gml_id"]; 
    341                 $gmkg=$row["gemarkungsname"]; 
     402                $gmkg=$row["bezeichnung"]; 
    342403                $flur=$row["flurnummer"]; 
    343404                $fskenn=$row["zaehler"]; 
Note: See TracChangeset for help on using the changeset viewer.