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

    r355 r376  
    44 
    55        Version: 
    6         2013-06-27Neu als Variante von alkis*inlay*baurecht.ph (mit Footer, Balken und Umschaltung Key) 
    7         2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    8         2015-12-09 Austausch .ico durch .png 
    9  
    10         ToDo: id-Anzeige hinzufÃŒgen fÃŒr Baurecht und FlurstÃŒck 
     6        2016-02-24 Version fuer norGIS-ALKIS-Import 
     7        2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 
    118*/ 
    129session_start(); 
     
    1512if ($auth == "mapbender") {require_once($mapbender);} 
    1613include("alkisfkt.php"); // f. Footer 
    17 if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;} 
    1814$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 
    1915if ($keys == "j") {$showkey=true;} else {$showkey=false;} 
    20  
    21 ?> 
    22 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    23 <html> 
     16echo <<<END 
     17<!doctype html> 
     18<html lang="de"> 
    2419<head> 
    25         <meta name="author" content="b600352" > 
    26         <meta http-equiv="cache-control" content="no-cache"> 
    27         <meta http-equiv="pragma" content="no-cache"> 
    28         <meta http-equiv="expires" content="0"> 
    29         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     20        <meta charset="utf-8"> 
    3021        <title>ALKIS Bau-, Raum- oder Bodenordnungsrecht</title> 
    3122        <link rel="stylesheet" type="text/css" href="alkisauszug.css"> 
     
    3324</head> 
    3425<body> 
     26END; 
    3527 
    36 <?php 
    37 $con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass); 
     28 
     29$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbaurecht.php'"); 
    3830if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n"; 
    3931 
    40 // wie View "baurecht" 
    41 $sql ="SELECT r.ogc_fid, r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez, a.bezeichner AS adfbez, d.bezeichnung AS stellbez, d.stellenart, round(st_area(r.wkb_geometry)::numeric,0) AS flae  
     32// Spalte "a.d" ist immer leer 
     33$sql ="SELECT r.ogc_fid, r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez,  
     34a.v AS adfbez, d.bezeichnung AS stellbez, d.stellenart, wd.v, wd.d, round(st_area(r.wkb_geometry)::numeric,0) AS flae  
    4235FROM ax_bauraumoderbodenordnungsrecht r  
    43 LEFT JOIN v_baurecht_adf a ON r.artderfestlegung=a.wert  
    44 LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;"; 
     36LEFT JOIN alkis_wertearten a ON cast(r.artderfestlegung AS character varying)=a.k AND a.element='ax_bauraumoderbodenordnungsrecht' AND a.bezeichnung='artderfestlegung' 
     37LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle  
     38LEFT JOIN alkis_wertearten wd ON cast(d.stellenart AS character varying)=wd.k AND wd.element='ax_dienststelle' AND wd.bezeichnung='stellenart' 
     39WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;"; 
    4540 
    4641$v = array($gmlid); 
    4742$res = pg_prepare("", $sql); 
    4843$res = pg_execute("", $v); 
    49  
    5044if (!$res) { 
    5145        echo "\n<p class='err'>Fehler bei Baurecht.</p>\n"; 
    52         if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";} 
     46        if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";} 
    5347} 
    54  
    5548if ($row = pg_fetch_array($res)) { 
    5649        $artfest=$row["adfkey"];  // Art der Festlegung, Key 
    5750        $verfnr=$row["rechtbez"]; // Verfahrens-Nummer 
    5851        $enam=$row["name"]; 
    59         $stellk=$row["stelle"]; // LEFT JOIN ! 
    6052        $stellb=$row["stellbez"]; 
    6153        $stella=$row["stellenart"]; 
     
    6658        echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>\n"; 
    6759 
    68         echo "\n<table>"; 
    69  
    70                 echo "\n<tr>"; 
    71                         echo "\n\t<td class='li'>Art der Festlegung:</td>\n\t<td>"; 
    72                         if ($showkey) { 
    73                                 echo "<span class='key'>(".$artfest.")</span> "; 
    74                         } 
    75                         echo "<span class='wichtig'>".$row["adfbez"]."</span></td>"; 
    76                 echo "\n</tr>"; 
    77  
     60        echo "\n<table>" 
     61                ."\n<tr>" 
     62                        ."\n\t<td class='li'>Art der Festlegung:</td>\n\t<td>"; 
     63                        if ($showkey) {echo "<span class='key'>(".$artfest.")</span> ";} 
     64                        echo "<span class='wichtig'>".$row["adfbez"]."</span></td>" 
     65                ."\n</tr>"; 
    7866                if ($enam != "") { 
    79                         echo "\n<tr>"; 
    80                                 echo "\n\t<td class='li'>Eigenname des Gebietes:</td>\n\t<td>".$enam."</td>"; 
    81                         echo "\n</tr>"; 
     67                        echo "\n<tr>" 
     68                                ."\n\t<td class='li'>Eigenname des Gebietes:</td>" 
     69                                ."\n\t<td>".$enam."</td>" 
     70                        . "\n</tr>"; 
    8271                } 
    83  
    8472                if ($verfnr != "") { 
    85                         echo "\n<tr>"; 
    86                                 echo "\n\t<td class='li'>Verfahrensnummer:</td>"; 
    87                                 echo "\n\t<td>".$verfnr."</td>"; 
    88                                 // if ($idanzeige) {linkgml($gkz, $gmlid, "Verfahren", ""); } // KEINE Bez.! 
    89                         echo "\n</tr>"; 
     73                        echo "\n<tr>" 
     74                                ."\n\t<td class='li'>Verfahrensnummer:</td>" 
     75                                ."\n\t<td>".$verfnr."</td>" 
     76                        ."\n</tr>"; 
    9077                } 
    91  
    92                 if ($stellb != "") { // z.B. Umlegung mit und Baulast ohne Dienststelle 
    93                         echo "\n<tr>"; 
    94                                 echo "\n\t<td class='li'>Dienststelle:</td>\n\t<td>"; 
    95                                         if ($showkey) {echo "<span class='key'>(".$stellk.")</span> ";} 
    96                                         echo $stellb; 
    97                                 echo "</td>"; 
    98                         echo "\n</tr>"; 
     78                if ($stellb != "") { // z.B. Umlegung *mit* und Baulast *ohne* Dienststelle, darum bezirk testen 
     79                        echo "\n<tr>" 
     80                                ."\n\t<td class='li'>Dienststelle:</td>\n\t<td>"; 
     81                                        if ($showkey) {echo "<span class='key'>(".$row["stelle"].")</span> ";} 
     82                                        echo $stellb 
     83                                ."</td>" 
     84                        ."\n</tr>"; 
    9985                        if ($stella != "") { 
    100                                 echo "\n<tr>"; 
    101                                         echo "\n\t<td class='li'>Art der Dienststelle:</td>"; 
    102                                         echo "\n\t<td>"; 
     86                                echo "\n<tr>" 
     87                                        ."\n\t<td class='li'>Art der Dienststelle:</td>" 
     88                                        ."\n\t<td>"; 
    10389                                                if ($showkey) {echo " <span class='key'>(".$stella.")</span>";} 
    104                                                 // d.stellenart -- weiter entschluesseln 1000, 1200, 1300 
    105                                                 // Dazu SchlÃŒsseltabelle aus GeoInfoDok erfassen 
    106                                                 echo "&nbsp;"; // Platzhalter 
    107                                         echo "</td>"; 
    108                                 echo "\n</tr>"; 
     90                                                echo "<span title='".$row["d"]."'>".$row["v"]."</span>";  
     91                                        echo "</td>" 
     92                                ."\n</tr>"; 
    10993                        } 
    11094                } 
    111  
    112                 echo "\n<tr>"; 
    113                         echo "\n\t<td class='li'>Fl&auml;che:</td>"; 
     95                echo "\n<tr>" 
     96                        ."\n\t<td class='li'>Fl&auml;che:</td>"; 
    11497                        $flae=number_format($row["flae"],0,",",".")." m&#178;"; 
    115                         echo "\n\t<td>".$flae."</td>"; 
    116                 echo "\n</tr>"; 
    117  
    118         echo "\n</table>"; 
     98                        echo "\n\t<td>".$flae."</td>" 
     99                ."\n</tr>" 
     100        . "\n</table>"; 
    119101} else { 
    120102        echo "\n<p class='err'>Fehler! Kein Treffer bei gml_id=".$gmlid."</p>"; 
    121103} 
    122104 
    123 echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> betroffene Flurst&uuml;cke</h2>\n"; 
    124 echo "\n<p>Ermittelt durch geometrische Verschneidung. Nach Gr&ouml;&szlig;e absteigend.</p>"; 
     105echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> betroffene Flurst&uuml;cke</h2>\n" 
     106."\n<p>Ermittelt durch geometrische Verschneidung. Nach Gr&ouml;&szlig;e absteigend.</p>"; 
    125107 
    126108$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  
    127109FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r 
    128 WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL 
    129 AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true  
     110WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL "; 
     111if ($filtgem == '' ) { // ungefiltert 
     112        $v=array($gmlid); 
     113} else { 
     114        $sql.="AND f.kreis = $2 AND f.gemeinde = $3 "; // Zuständiges Gebiet 
     115        $v=array($gmlid, $filtkreis, $filtgem); 
     116} 
     117$sql.="AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true  
    130118AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05  
    131 ORDER BY schnittflae DESC LIMIT 40;";  
     119ORDER BY schnittflae DESC LIMIT 50;";  
    132120// > 0.0 ist gemeint, Ungenauigkeit durch st_simplify 
    133121// Limit: Flurbereinig. kann gross werden! 
    134122// Trotz Limit lange Antwortzeit, wegen OrderBy -> intersection 
    135 $v = array($gmlid); 
    136 $res = pg_prepare("", $sql); 
    137 $res = pg_execute("", $v); 
    138123 
     124$res=pg_prepare("", $sql); 
     125$res=pg_execute("", $v); 
    139126if (!$res) { 
    140127        echo "\n<p class='err'>Keine Flurst&uuml;cke ermittelt.<br>\nSQL=<br></p>\n"; 
    141         if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";} 
     128//      if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";} 
    142129} 
    143130 
    144 echo "\n<table class='fs'>"; 
    145         echo "\n<tr>"; // Header 
    146                 echo "\n\t<td class='head' title='Flur- und Flurst&uuml;cksnummer'>Flurst&uuml;ck</td>"; 
    147                 echo "\n\t<td class='head fla' title='geometrische Schnittfl&auml;che'>Fl&auml;che</td>"; 
    148                 echo "\n\t<td class='head fla' title='amtliche Flurst&uuml;cksfl&auml;che, Buchfl&auml;che'>von</td>"; 
    149                 echo "\n\t<td class='head nwlink' title='Link zum Flurst&uuml;ck'>weitere Auskunft</td>"; 
    150         echo "\n</tr>"; 
     131echo "\n<table class='fs'>" 
     132        ."\n<tr>" 
     133                ."\n\t<td class='head' title='Flur- und Flurst&uuml;cksnummer'>Flurst&uuml;ck</td>" 
     134                ."\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>" 
     135                ."\n\t<td class='head fla' title='amtliche Flurst&uuml;cksfl&auml;che, Buchfl&auml;che'>von</td>" 
     136                ."\n\t<td class='head nwlink' title='Link zum Flurst&uuml;ck'>weitere Auskunft</td>" 
     137        ."\n</tr>"; 
    151138 
    152139        $fscnt=0; 
    153140        while($row = pg_fetch_array($res)) { 
    154141                $fscnt++; 
    155                 echo "\n<tr>"; 
    156                         echo "\n\t<td>".$row["flurnummer"]."-<span class='wichtig'>".$row["zaehler"]; 
    157                         $nen=$row["nenner"]; 
    158                         if ($nen != "") { 
    159                                 echo "/".$nen; 
    160                         } 
    161                         echo "</span></td>"; 
    162                         echo "\n\t<td class='fla'>".$row["schnittflae"]." m&#178;</td>";  
    163                         echo "\n\t<td class='fla'>".$row["amtlicheflaeche"]." m&#178;</td>"; 
    164                         echo "\n\t<td class='nwlink noprint'>"; 
    165                                 echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$row["gml_id"]."&amp;eig=n' " ; 
    166                                         echo "title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck "; 
    167                                         echo "\n\t\t\t<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"; 
    168                                 echo "\n\t\t</a>"; 
    169                         echo "\n\t</td>"; 
    170                 echo "\n</tr>"; 
     142                echo "\n<tr>" 
     143                        ."\n\t<td>".$row["flurnummer"]."-<span class='wichtig'>".$row["zaehler"]; 
     144                                $nen=$row["nenner"]; 
     145                                if ($nen != "") {echo "/".$nen;} 
     146                        echo "</span></td>" 
     147                        ."\n\t<td class='fla'>".$row["schnittflae"]." m&#178;</td>" 
     148                        ."\n\t<td class='fla'>".$row["amtlicheflaeche"]." m&#178;</td>" 
     149                        ."\n\t<td class='nwlink noprint'>" 
     150                                ."\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$row["gml_id"]."&amp;eig=n' " 
     151                                        ."title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck " 
     152                                        ."\n\t\t\t<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>" 
     153                                ."\n\t\t</a>" 
     154                        ."\n\t</td>" 
     155                ."\n</tr>"; 
    171156        } 
    172157echo "\n</table>"; 
    173158 
    174 if ($fscnt == 40) { 
    175         echo "<p>... und weitere Flurst&uuml;cke (Limit 40 erreicht).</p>"; 
     159if ($fscnt == 0) { // nicht gefunden 
     160        if ($filtgem == '' ) { // ungefiltert 
     161                echo "<p class='err'>Kein Flurst&uuml;ck gefunden.</p>"; 
     162        } else { // Wahrscheinliche Ursache = Filter 
     163                echo "<p class='err'>Kein Flurst&uuml;ck im berechtigten Bereich.</p>"; 
     164        //      if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."</p>\n";} 
     165        } 
     166} elseif ($fscnt == 50) { 
     167        echo "<p>... und weitere Flurst&uuml;cke (Limit 50 erreicht).</p>"; 
    176168} 
    177169 
     
    179171echo <<<END 
    180172 
    181 <form action=''> 
    182         <div class='buttonbereich noprint'> 
    183         <hr> 
    184                 <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp; 
    185                 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken" /></a>&nbsp; 
    186         </div> 
    187 </form> 
     173<div class='buttonbereich noprint'> 
     174<hr> 
     175        <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp; 
     176        <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken" /></a>&nbsp; 
     177</div> 
    188178END; 
    189179 
Note: See TracChangeset for help on using the changeset viewer.