Ignore:
Timestamp:
12/30/21 17:49:00 (2 years ago)
Author:
frank.jaeger
Message:

Web-GIS-Auskunft und Mapbender2-Navigation: neue Konfigurations-Parameter und verbessertes Grundbuch-Modul

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/info/info/alkisn/alkisfsnw.php

    r422 r425  
    66 
    77        Version: 
    8         2016-02-24 Version fuer norGIS-ALKIS-Import 
     8        2016-02-24 Version fÃŒr norGIS-ALKIS-Import 
    99        ..... 
    1010        2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 
     
    1414        2020-12-16 Input-Validation und Strict Comparisation (===) 
    1515        2021-03-09 Link zum GebÀudenachweis auch mit "Bauwerke" betiteln 
     16        2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 
    1617 
    1718ToDo: 
     19        - Tabbelle "nutz_21" ist ein Relikt von NorGIS/ALB und könnte in spÀteren Versionen fehlen. 
    1820        - Buchung auf "fiktives Blatt" ist nur mit debug zu sehen: die <tr> in .css grau hinterlegen 
    1921        - "Umschalter" (gleiches Modul) anders darstellen als Links zu ANDEREN Nachweisen 
     
    6971<?php 
    7072$erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 
     73$dbg=$debug; // CONF in Arbeits-Variable 
    7174 
    7275// Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. Blendet z.B. "fiktives Blatt" aus. 
    73 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 
    74 if ($nodebug === "j") {$debug=0;}  
     76// Wirkt temporÀr und wird nicht in Links weiter gereicht. 
     77if ($nodebug === "j") {$dbg=0;}  
    7578 
    7679$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfsnw.php'"); 
     
    99102to_char(cast(f.zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, f.istgebucht, g.gemarkungsnummer, g.bezeichnung, r.bezeichnung AS rbez, k.bezeichnung AS kbez, m.bezeichnung AS mbez  
    100103FROM ax_flurstueck f  
    101 LEFT JOIN ax_gemarkung g ON f.gemeindezugehoerigkeit_land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
    102 LEFT JOIN ax_regierungsbezirk r ON f.gemeindezugehoerigkeit_regierungsbezirk=r.regierungsbezirk  
    103 LEFT JOIN ax_kreisregion k ON f.gemeindezugehoerigkeit_regierungsbezirk=k.regierungsbezirk AND f.gemeindezugehoerigkeit_kreis=k.kreis  
    104 LEFT JOIN ax_gemeinde m ON m.regierungsbezirk=f.gemeindezugehoerigkeit_regierungsbezirk AND m.kreis=f.gemeindezugehoerigkeit_kreis AND m.gemeinde=f.gemeindezugehoerigkeit_gemeinde 
    105 WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL AND m.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL;"; 
     104LEFT JOIN ax_gemarkung g ON f.gemeindezugehoerigkeit_land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 
     105."LEFT JOIN ax_regierungsbezirk r ON f.gemeindezugehoerigkeit_regierungsbezirk=r.regierungsbezirk ".UnqKatAmt("f","r") 
     106."LEFT JOIN ax_kreisregion k ON f.gemeindezugehoerigkeit_regierungsbezirk=k.regierungsbezirk AND f.gemeindezugehoerigkeit_kreis=k.kreis ".UnqKatAmt("f","k") 
     107."LEFT JOIN ax_gemeinde m ON m.regierungsbezirk=f.gemeindezugehoerigkeit_regierungsbezirk AND m.kreis=f.gemeindezugehoerigkeit_kreis AND m.gemeinde=f.gemeindezugehoerigkeit_gemeinde ".UnqKatAmt("f","m") 
     108."WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL AND m.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL;"; 
    106109 
    107110$v = array($gmlid); // mit gml_id suchen 
     
    110113if (!$res) { 
    111114        echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>"; 
    112         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 
     115        if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 
     116} 
     117if ($dbg > 0) { 
     118        $zeianz=pg_num_rows($res); 
     119        if ($zeianz > 1){ 
     120                echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Flurst&uuml;cks-Objekt!</p>"; 
     121                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 
     122        } 
    113123} 
    114124if ($row = pg_fetch_assoc($res)) { 
     
    137147} else { 
    138148        echo "\n<p class='err'>Fehler! Kein Treffer f&uuml;r Flurst&uuml;ck mit gml_id=".$gmlid."</p>"; 
    139         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 
     149        if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 
    140150        echo "\n</body>\n</html>"; 
    141151        return; 
     
    155165if ( ($filtkreis != '' and $filtkreis != $kreis) or ($filtgem != '' and $filtgem != $gemeinde) ) { 
    156166        // Einer der gesetzten Filter passt nicht 
    157         if ($debug > 2) { //++ Schönes Bild? Stop-Zeichen? 
     167        if ($dbg > 2) { //++ Schönes Bild? Stop-Zeichen? 
    158168                echo "\n<p class='err'>Filter Kreis='".$filtkreis."', Gemeinde='".$filtgem."'</p>" 
    159169                ."\n<p class='err'>Flstk. Kreis='".$fskrs."', Gemeinde='".$fsgem."'</p>"; 
     
    180190 
    181191echo "\n<hr>\n<table class='fs'>"; // FS-Teil 6 Spalten 
    182 echo "\n<tr>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>" // 1-5 in erster Zeile kein "colspan" verwenden 
    183         ."\n\t\t<td>\n\t\t<p class='nwlink noprint'>weitere Auskunft:</p></td>" // 6 
     192echo "\n<tr>\n\t<td></td>\n\t<td></td>\n\t<td></td>\n\t<td></td>\n\t<td></td>" // 1-5 in erster Zeile kein "colspan" verwenden 
     193        ."\n\t<td><p class='nwlink noprint'>weitere Auskunft:</p></td>" 
    184194."\n</tr>"; 
    185195 
    186196echo "\n<tr>" // Zeile: G e b i e t s z u g e h o e r i g k e i t  Gemeinde / Kreis / Regierungsbezirk 
    187         ."\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.png' width='16' height='16' alt=''> Gebiet:</td>" // 1 
    188         ."\n\t<td>Gemeinde<br>Kreis<br>Regierungsbezirk</td>" // 2 
     197        ."\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.png' width='16' height='16' alt=''> Gebiet:</td>" 
     198        ."\n\t<td>Gemeinde<br>Kreis<br>Regierungsbezirk</td>" 
    189199        ."\n\t<td class='lr' colspan='3'>"; // 3-5 
    190200                if ($showkey) {echo "<span class='key'>(".$gemeinde.")</span> ";} 
     
    195205                echo $rbez 
    196206        ."</td>" 
    197         ."\n\t<td class='nwlink'>" // 5 
    198                 ."\n\t\t<p class='nwlink noprint'>" 
     207        ."\n\t<td class='nwlink'>"; 
     208        if ($fsHistorie){ // conf 
     209                echo "\n\t\t<p class='nwlink noprint'>" 
    199210                ."\n\t\t\t<a href='alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$gmlid; 
    200211                if ($showkey) {echo "&amp;showkey=j";} 
     
    202213                ."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>" 
    203214                ."</a>" 
    204                 ."\n\t\t</p>" 
    205         ."\n\t</td>" // 6 
     215                ."\n\t\t</p>\n\t"; 
     216        } 
     217        echo "</td>" 
    206218."\n</tr>"; 
    207219 
     
    222234if (!$res) { 
    223235        echo "\n<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer</p>"; 
    224         if ($debug > 1) { 
     236        if ($dbg > 1) { 
    225237                echo "\n<p class='dbg'>Fehler:".pg_last_error()."</p>"; 
    226                 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 
     238                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 
    227239        } 
    228240} else { 
     
    281293if (!$res) { 
    282294        echo "\n<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>"; 
    283         //if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>";} 
    284         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 
     295        //if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>";} 
     296        if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 
    285297} 
    286298$j=0; 
     
    353365if (!$res) { 
    354366        echo "\n<p class='err'>Fehler bei Suche tats. Nutzung</p>"; 
    355         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$fskennzalb."'",$sql), ENT_QUOTES, "UTF-8")."'</p>";} 
     367        if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$fskennzalb."'",$sql), ENT_QUOTES, "UTF-8")."'</p>";} 
    356368} 
    357369$j=0; 
     
    513525 
    514526// Gemeinsame FlÀche suchen: entweder (ST_Intersects and not ST_Touches) oder (2xST_Within OR ST_Overlaps), ST_Intersects liefert auch angrenzende 
    515 $sql_boden="SELECT b.artderfestlegung AS wert, a.beschreibung AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez,  
     527$sql_boden ="SELECT b.artderfestlegung AS wert, a.beschreibung AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez,  
    516528b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key  
    517529FROM ax_flurstueck f  
    518530JOIN ax_bauraumoderbodenordnungsrecht b ON ST_Within(b.wkb_geometry, f.wkb_geometry) OR ST_Within(f.wkb_geometry, b.wkb_geometry) OR ST_Overlaps(b.wkb_geometry, f.wkb_geometry) 
    519531LEFT JOIN ax_artderfestlegung_bauraumoderbodenordnungsrecht a ON b.artderfestlegung=a.wert  
    520 LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle  
    521 WHERE f.gml_id = $1 AND f.endet IS NULL AND b.endet IS NULL AND d.endet IS NULL"; 
     532LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle ".UnqKatAmt("b","d") 
     533."WHERE f.gml_id = $1 AND f.endet IS NULL AND b.endet IS NULL AND d.endet IS NULL"; 
    522534 
    523535pg_prepare($con, "bodeneuordnung", $sql_boden); 
     
    525537if (!$res_bodeneuordnung) { 
    526538        echo "\n<p class='err'>Fehler bei Bau-, Raum- oder Bodenordnungsrecht</p>"; 
    527         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_boden)."</p>";} 
     539        if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_boden)."</p>";} 
    528540} 
    529541$sql_str="SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze)  
     
    534546if (!$res_strittigeGrenze) { 
    535547        echo "\n<p class='err'>Fehler bei strittige Grenze</p>"; 
    536         if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_str)."</p>";} 
     548        if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_str)."</p>";} 
    537549} 
    538550if (pg_num_rows($res_bodeneuordnung) > 0 OR pg_num_rows($res_strittigeGrenze) > 0) { 
     
    609621        $anzber=ber_bs_zaehl($gml_buchungsstelle);      // Anzahl berechtigte Buchungen (nÀchste Stufe) zu dieser Buchung ermitteln 
    610622        $verf_next = array($gml_buchungsstelle);        // Start Recursion mit einem Element 
    611         //if ($debug > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 
     623        //if ($dbg > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 
    612624 
    613625        while ($anzber > 0 ) { // Stufe - recursiv in die Tiefe, solange es was zu verfolgen gibt 
     
    621633                                $verf_neu=ber_bs_anzg($gml_ber_bs, $eig, false, $gmlid, ""); // Anzeige ber. Buchungst., ggf. mit EigentÃŒmer. 
    622634                                $anz_neu=count($verf_neu); // Das Ergebnis zÀhlen 
    623                         //      if ($debug > 2) {echo "<p class='dbg'>Weiter zu verfolgen: Stufe ".$stufe.", Element ".$i.", Anzahl: ".$anz_neu."</p>";} 
     635                        //      if ($dbg > 2) {echo "<p class='dbg'>Weiter zu verfolgen: Stufe ".$stufe.", Element ".$i.", Anzahl: ".$anz_neu."</p>";} 
    624636                                if ($anz_neu > 0) { // wenn neue geliefert 
    625637                                        $verf_next=array_merge($verf_next, $verf_neu); // die neuen an die Sammlung heften 
     
    628640                } // Ende Buchungs-Array in der Stufe 
    629641                $anzber=count($verf_next); // Sammlung auf Stufe zÀhlen, Steuert die Schleife. 
    630                 //if ($debug > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 
    631642        } // Ende Stufe 
    632643 
    633644        echo "\n</table>\n\n"; 
    634         //if ($debug > 1) {echo "<p class='dbg'>Buchung gezeigt = ".$gezeigt."</p>";} 
    635645 
    636646        // Fehler aus "ModellschwÀche" erkennen. 
     
    641651                echo "<p class='err'>Das Grundbuch zur Buchung '".$gml_buchungsstelle."' fehlt in der Datenbank.</p>"; 
    642652                 
    643                 if ($debug > 1) { // fehlt die Buchung?? 
     653                if ($dbg > 1) { // fehlt die Buchung?? 
    644654                        echo "<p class='dbg'>Suchen mit SQL: SELECT * FROM ax_buchungsstelle WHERE gml_id='".$gml_buchungsstelle."'; </p>"; 
    645655                } 
     
    651661 
    652662pg_close($con); 
    653 echo <<<END 
    654 <div class='buttonbereich noprint'> 
    655 <hr> 
    656         <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp; 
    657         <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp; 
    658 END; 
    659 echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport(\"" . $gmlid . "\")'><img src='ico/download_fs.png' width='32' height='16' alt='Export'></a>&nbsp;\n</div>"; 
     663echo "<div class='buttonbereich noprint'>\n<hr>" 
     664        ."\n\t<a title='zur&uuml;ck' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zur&uuml;ck'></a>&nbsp;"; 
     665if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a>&nbsp;";} 
     666echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport(\"".$gmlid."\")'><img src='ico/download_fs.png' width='32' height='16' alt='Export'></a>&nbsp;\n</div>"; 
    660667 
    661668footer($gmlid, selbstverlinkung()."?", "&amp;eig=".$eig); 
Note: See TracChangeset for help on using the changeset viewer.