Ignore:
Timestamp:
06/24/21 15:59:16 (3 years ago)
Author:
frank.jaeger
Message:

Aktualisierungen der ALKIS-Buchauskunft, neues Modul für Bauwerke, Härtung

File:
1 edited

Legend:

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

    r412 r422  
    55        Version: 
    66        2016-02-24 Version fuer norGIS-ALKIS-Import 
    7         2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 
    8         2017-06-08 Validierung Eingabeparameter, Feinkorrekturen 
    9         2017-10-09 Sauber filtern auf endet IS NULL 
    10         2018-04-23 &nodebug 
    11         2018-11-09 Umstellung Full-Schema 
     7        .... 
     8        2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 
     9        2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 
     10        2020-12-15 Input-Validation und Strict Comparisation (===) 
    1211*/ 
     12ini_set("session.cookie_httponly", 1); 
    1313session_start(); 
    1414$showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren 
     
    1616 
    1717// strikte Validierung aller Parameter 
    18 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 
    19 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 
     18if (isset($gmlid)) { 
     19        if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 
     20} else { 
     21        die("Fehlender Parameter"); 
     22} 
     23if (isset($gkz)) { 
     24        if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 
     25} else { 
     26        die("Fehlender Parameter"); 
     27} 
    2028if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 
    21 if ($showkey == "j") {$showkey=true;} else {$showkey=false;} 
     29if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 
    2230if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 
    2331 
    24 require_once("alkis_conf_location.php"); 
    25 if ($auth == "mapbender") {require_once($mapbender);} 
    26 include("alkisfkt.php"); // f. Footer 
     32include "alkis_conf_location.php"; 
     33include "alkisfkt.php"; 
     34 
    2735echo <<<END 
    2836<!doctype html> 
     
    3846END; 
    3947 
     48$erlaubnis = darf_ich(); if ($erlaubnis === 0) {die('<p class="stop1">Abbruch</p></body>');} 
     49 
    4050// Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 
    41 // Manuell an die URL anfügen, wirkt nur temporär und wird nicht in Links weiter gereicht. 
    42 if ($nodebug == "j") {$debug=0;}  
     51// Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 
     52if ($nodebug === "j") {$debug=0;}  
    4353 
    4454$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbaurecht.php'"); 
     
    5969if (!$res) { 
    6070        echo "\n<p class='err'>Fehler bei Baurecht.</p>"; 
    61         if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid."</p>";} 
     71        if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 
    6272} 
    6373if ($row = pg_fetch_assoc($res)) { 
     
    6777        $stellb=$row["stellbez"]; 
    6878        $stella=$row["stellenart"]; 
     79        $behb=$row["beschreibung"]; 
     80        $behd=$row["dokumentation"]; 
    6981 
    7082        // Balken 
    71         echo "<p class='recht'>ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr."&nbsp;</p>"; 
     83        echo "<p class='balken recht'>ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr."&nbsp;</p>"; 
    7284 
    7385        echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>"; 
     
    102114                                        ."\n\t<td class='li'>Art der Dienststelle:</td>" 
    103115                                        ."\n\t<td>"; 
    104                                                 if ($showkey) {echo " <span class='key'>(".$stella.")</span>";} 
    105                                                 echo "<span title='".$row["d"]."'>".$row["v"]."</span>";  
     116                                                if ($showkey) {echo " <span class='key'>(".$stella.")</span>&nbsp;";} 
     117                                                echo "<span title='".$behd."'>".$behb."</span>"; 
    106118                                        echo "</td>" 
    107119                                ."\n</tr>"; 
     
    124136FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r 
    125137WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL "; 
    126 if ($filtgem == '' ) { // ungefiltert 
     138if ($filtgem === '' ) { // ungefiltert 
    127139        $v=array($gmlid); 
    128140} else { 
    129         $sql.="AND f.gemeindezugehoerigkeit_kreis = $2 AND f.gemeindezugehoerigkeit_gemeinde = $3 "; // Zuständiges Gebiet 
     141        $sql.="AND f.gemeindezugehoerigkeit_kreis = $2 AND f.gemeindezugehoerigkeit_gemeinde = $3 "; // ZustÀndiges Gebiet 
    130142        $v=array($gmlid, $filtkreis, $filtgem); 
    131143} 
    132144$sql.="AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true  
    133145AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05  
    134 ORDER BY schnittflae DESC LIMIT 50;";  
     146ORDER BY schnittflae DESC LIMIT 100;";  
    135147// > 0.0 ist gemeint, Ungenauigkeit durch st_simplify 
    136148// Limit: Flurbereinig. kann gross werden! 
     
    140152$res=pg_execute("", $v); 
    141153if (!$res) { 
    142         echo "\n<p class='err'>Keine Flurst&uuml;cke ermittelt.<br>\nSQL=<br></p>"; 
    143 //      if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid."</p>";} 
     154        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! 
    144156} 
    145157 
     
    172184echo "\n</table>"; 
    173185 
    174 if ($fscnt == 0) { // nicht gefunden 
    175         if ($filtgem == '' ) { // ungefiltert 
     186if ($fscnt === 0) { // nicht gefunden 
     187        if ($filtgem === '' ) { // ungefiltert 
    176188                echo "\n<p class='err'>Kein Flurst&uuml;ck gefunden.</p>"; 
    177189        } else { // Wahrscheinliche Ursache = Filter 
     
    179191        //      if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."</p>";} 
    180192        } 
    181 } elseif ($fscnt == 50) { 
    182         echo "<p>... und weitere Flurst&uuml;cke (Limit 50 erreicht).</p>"; 
     193} elseif ($fscnt === 100) { 
     194        echo "<p>... und weitere Flurst&uuml;cke (Limit 100 erreicht).</p>"; 
    183195} 
    184196 
     
    193205END; 
    194206 
    195 footer($gmlid, $_SERVER['PHP_SELF']."?", ""); 
     207footer($gmlid, selbstverlinkung()."?", ""); 
    196208 
    197209?> 
Note: See TracChangeset for help on using the changeset viewer.