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/alkisbaurecht.php

    r422 r425  
    44 
    55        Version: 
    6         2016-02-24 Version fuer norGIS-ALKIS-Import 
     6        2016-02-24 Version fÃŒr norGIS-ALKIS-Import 
    77        .... 
    88        2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 
    99        2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 
    1010        2020-12-15 Input-Validation und Strict Comparisation (===) 
     11        2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche) 
    1112*/ 
    1213ini_set("session.cookie_httponly", 1); 
     
    4849$erlaubnis = darf_ich(); if ($erlaubnis === 0) {die('<p class="stop1">Abbruch</p></body>');} 
    4950 
     51$dbg=$debug; // CONF in Arbeits-Variable 
    5052// Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 
    51 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 
    52 if ($nodebug === "j") {$debug=0;}  
     53// Wirkt temporÀr und wird nicht in Links weiter gereicht. 
     54if ($nodebug === "j") {$dbg=0;}  
    5355 
    5456$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbaurecht.php'"); 
     
    6062FROM ax_bauraumoderbodenordnungsrecht r  
    6163LEFT JOIN ax_artderfestlegung_bauraumoderbodenordnungsrecht a ON r.artderfestlegung = a.wert 
    62 LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle  
    63 LEFT JOIN ax_behoerde wd ON d.stellenart = wd.wert 
     64LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle ".UnqKatAmt("r","d") 
     65."LEFT JOIN ax_behoerde wd ON d.stellenart = wd.wert 
    6466WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;"; 
    6567 
     
    6971if (!$res) { 
    7072        echo "\n<p class='err'>Fehler bei Baurecht.</p>"; 
    71         if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 
     73        if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 
     74} 
     75if ($dbg > 0) { 
     76        $zeianz=pg_num_rows($res); 
     77        if ($zeianz > 1){ 
     78                echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Baurecht-Objekt!</p>"; 
     79                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 
     80        } 
    7281} 
    7382if ($row = pg_fetch_assoc($res)) { 
     
    8089        $behd=$row["dokumentation"]; 
    8190 
    82         // Balken 
    83         echo "<p class='balken recht'>ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr."&nbsp;</p>"; 
    84  
     91        echo "<p class='balken recht'>ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr."&nbsp;</p>"; // Balken 
    8592        echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>"; 
    86  
    8793        echo "\n<table>" 
    8894                ."\n<tr>" 
     
    133139."\n<p>Ermittelt durch geometrische Verschneidung. Nach Gr&ouml;&szlig;e absteigend.</p>"; 
    134140 
    135 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, round(st_area(ST_Intersection(r.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae  
    136 FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r 
     141$sql ="SELECT f.gml_id, g.bezeichnung, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, round(st_area(ST_Intersection(r.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae  
     142FROM ax_flurstueck f   
     143JOIN ax_gemarkung g ON f.gemeindezugehoerigkeit_land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ".UnqKatAmt("f","g") 
     144."JOIN ax_bauraumoderbodenordnungsrecht r 
     145ON st_intersects(r.wkb_geometry,f.wkb_geometry) = true AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05  
    137146WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL "; 
    138 if ($filtgem === '' ) { // ungefiltert 
     147if ($filtgem === '' ) { 
    139148        $v=array($gmlid); 
    140149} else { 
     
    142151        $v=array($gmlid, $filtkreis, $filtgem); 
    143152} 
    144 $sql.="AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true  
    145 AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05  
    146 ORDER BY schnittflae DESC LIMIT 100;";  
     153$sql.="ORDER BY schnittflae DESC LIMIT 100;";  
    147154// > 0.0 ist gemeint, Ungenauigkeit durch st_simplify 
    148 // Limit: Flurbereinig. kann gross werden! 
     155// Limit: Flurbereinig. kann groß werden! 
    149156// Trotz Limit lange Antwortzeit, wegen OrderBy -> intersection 
    150157 
     
    153160if (!$res) { 
    154161        echo "\n<p class='err'>Keine Flurst&uuml;cke ermittelt.<br></p>"; 
    155         //if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} // ggf. mehrere Parameter! 
     162        //if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} // ggf. mehrere Parameter! 
    156163} 
    157164 
    158165echo "\n<table class='fs'>" 
    159166        ."\n<tr>" 
    160                 ."\n\t<td class='head' title='Flur- und Flurst&uuml;cksnummer'>Flurst&uuml;ck</td>" 
     167                ."\n\t<td class='head' title='Gemarkung'>Gemarkung</td>" 
     168                ."\n\t<td class='head' title='Flurnummer'>Flur</td>" 
     169                ."\n\t<td class='head' title='Flurst&uuml;cksnummer Z&auml;hler / Nenner'>Flurst&uuml;ck</td>" 
    161170                ."\n\t<td class='heads fla' title='geometrische Schnittfl&auml;che'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Fl&auml;che</td>" 
    162171                ."\n\t<td class='head fla' title='amtliche Flurst&uuml;cksfl&auml;che, Buchfl&auml;che'>von</td>" 
     
    167176        while($row = pg_fetch_assoc($res)) { 
    168177                $fscnt++; 
     178                $gmkgnr=$row["gemarkungsnummer"]; 
     179                $gemarkung=$row["bezeichnung"]; 
     180                $nen=$row["nenner"]; 
    169181                echo "\n<tr>" 
    170                         ."\n\t<td>".$row["flurnummer"]."-<span class='wichtig'>".$row["zaehler"]; 
    171                                 $nen=$row["nenner"]; 
     182                        ."\n\t<td>"; 
     183                        if ($showkey) {echo "<span class='key'>(".$gmkgnr.")</span> ";} 
     184                        echo $gemarkung."</td>" 
     185                        ."\n\t<td>".$row["flurnummer"]."</td>" 
     186                        ."\n\t<td><span class='wichtig'>".$row["zaehler"]; 
    172187                                if ($nen != "") {echo "/".$nen;} 
    173188                        echo "</span></td>" 
     
    189204        } else { // Wahrscheinliche Ursache = Filter 
    190205                echo "\n<p class='err'>Kein Flurst&uuml;ck im berechtigten Bereich.</p>"; 
    191         //      if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."</p>";} 
     206        //      if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."</p>";} 
    192207        } 
    193208} elseif ($fscnt === 100) { 
     
    196211 
    197212pg_close($con); 
    198 echo <<<END 
    199  
    200 <div class='buttonbereich noprint'> 
    201 <hr> 
    202         <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp; 
    203         <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken" /></a>&nbsp; 
    204 </div> 
    205 END; 
     213echo " 
     214<div class='buttonbereich noprint'>\n<hr>" 
     215        ."\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;"; 
     216if ($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;";} 
     217echo "\n</div>"; 
    206218 
    207219footer($gmlid, selbstverlinkung()."?", ""); 
    208  
    209220?> 
    210221 
Note: See TracChangeset for help on using the changeset viewer.