Changeset 330 for trunk/info/info/alkis


Ignore:
Timestamp:
09/10/14 12:08:18 (10 years ago)
Author:
frank.jaeger
Message:

Umstellung von PostNAS 0.7 auf PostNAS 0.8, ohne Tabelle "alkis_beziehungen".

Location:
trunk/info/info/alkis
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/info/info/alkis/alkisausk.php

    r313 r330  
    1515        2013-04-08 deprecated "import_request_variables" ersetzt 
    1616        2014-01-28 Link zu alkisstrasse.php 
     17        2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     18 
     19+++ NOCH UMSTELLEN:  alkis_beziehungen 
     20 
    1721*/ 
    1822session_start(); 
     
    97101        echo "\n\t</table>"; 
    98102echo "\n</td>\n<td>"; 
    99 if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck"); } 
     103if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); } 
    100104echo "\n\t<p class='nwlink'>weitere Auskunft:<br>"; 
    101105 
     
    137141$sql ="SELECT DISTINCT l.gml_id, s.gml_id AS kgml, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung "; 
    138142$sql.="FROM alkis_beziehungen v "; 
    139 $sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN 
     143$sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=substring(l.gml_id,1,16) "; // Strassennamen JOIN 
    140144$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    141145$sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart='weistAuf' ";// id FS"; 
     
    234238                } 
    235239                echo "\n</td>\n<td>"; 
    236                 if ($idanzeige) {linkgml($gkz, $rowg[0], "Buchungsblatt");} 
     240                if ($idanzeige) {linkgml($gkz, $rowg[0], "Buchungsblatt", "");} 
    237241                echo "\n\t<p class='nwlink'>weitere Auskunft:<br>"; 
    238242                        echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$rowg[0]; 
     
    261265                        echo "\n<p class='err'>Keine Eigent&uuml;mer gefunden.</p>"; 
    262266                        echo "\n<p class='err'>Bezirk ".$rowg["bezirk"]." Blatt ".$rowg["blatt"]." Blattart ".$blattkey." (".$blattart.")</p>"; 
    263                         linkgml($gkz, $gmlid, "Buchungsblatt"); 
     267                        linkgml($gkz, $gmlid, "Buchungsblatt", ""); 
    264268                } 
    265269        } 
  • trunk/info/info/alkis/alkisbaurecht.php

    r288 r330  
    44 
    55        Version: 
    6         2013-06-27      Neu als Variante von alkis*inlay*baurecht.ph (mit Footer, Balken und Umschaltung Key) 
     6        2013-06-27Neu als Variante von alkis*inlay*baurecht.ph (mit Footer, Balken und Umschaltung Key) 
     7        2014-09-10 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     8 
     9        ToDo: id-Anzeige hinzufÃŒgen fÃŒr Baurecht und FlurstÃŒck 
    710*/ 
    811session_start(); 
     
    3538 
    3639// wie View "baurecht" 
    37 $sql ="SELECT r.ogc_fid, r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez, "; 
    38 $sql.="a.bezeichner AS adfbez, d.bezeichnung AS stellbez, d.stellenart, "; 
    39 $sql.="round(st_area(r.wkb_geometry)::numeric,0) AS flae "; 
    40 $sql.="FROM ax_bauraumoderbodenordnungsrecht r "; 
    41 $sql.="LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON r.artderfestlegung = a.wert "; 
    42 $sql.="LEFT JOIN ax_dienststelle d ON r.land = d.land AND r.stelle = d.stelle "; 
    43 $sql.="WHERE r.gml_id= $1 ;"; 
     40$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  
     41FROM ax_bauraumoderbodenordnungsrecht r  
     42LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON r.artderfestlegung=a.wert  
     43LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle WHERE r.gml_id= $1 ;"; 
    4444 
    4545$v = array($gmlid); 
     
    8585                                echo "\n\t<td class='li'>Verfahrensnummer:</td>"; 
    8686                                echo "\n\t<td>".$verfnr."</td>"; 
    87                                 // if ($idanzeige) {linkgml($gkz, $gmlid, "Verfahren"); } // KEINE Bez.! 
     87                                // if ($idanzeige) {linkgml($gkz, $gmlid, "Verfahren", ""); } // KEINE Bez.! 
    8888                        echo "\n</tr>"; 
    8989                } 
     
    123123echo "\n<p>Ermittelt durch geometrische Verschneidung. Nach Gr&ouml;&szlig;e absteigend.</p>"; 
    124124 
    125 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, "; 
    126 $sql.="round(st_area(ST_Intersection(r.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae "; 
    127 $sql.="FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r  "; 
    128 $sql.="WHERE r.gml_id= $1 ";  
    129 $sql.="AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true "; 
    130 $sql.="AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05 ";  // > 0.0 ist gemeint, Ungenauigkeit durch st_simplify 
    131 $sql.="ORDER BY schnittflae DESC "; 
    132 $sql.="LIMIT 40;"; // Limit: Flurbereinig. kann gross werden! 
     125$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  
     126FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r 
     127WHERE r.gml_id= $1 AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true  
     128AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05  
     129ORDER BY schnittflae DESC LIMIT 40;";  
     130// > 0.0 ist gemeint, Ungenauigkeit durch st_simplify 
     131// Limit: Flurbereinig. kann gross werden! 
    133132// Trotz Limit lange Antwortzeit, wegen OrderBy -> intersection 
    134133$v = array($gmlid); 
  • trunk/info/info/alkis/alkisbestnw.php

    r315 r330  
    33 
    44        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo). 
    5         Bestandsnachweis fuer ein Grundbuch aus ALKIS PostNAS 
     5        Bestandsnachweis fÃŒr ein Grundbuch aus ALKIS PostNAS 
    66 
    77        Version: 
    8         2011-11-17  Parameter der Functions geÀndert 
    9         2011-11-22  Feldname land in ax_buchungsblattbezirk geÀndert 
    10         2011-11-30  import_request_variables 
    11         2012-07-24  Export CSV 
    12         2013-04-08  deprecated "import_request_variables" ersetzt 
    13  
    14         ToDo: 
    15         Zahler fuer Anzahl GB und FS in der Liste (ausgeben wenn > 10) 
     8        2011-11-17 Parameter der Functions geÀndert 
     9        2011-11-22 Feldname land in ax_buchungsblattbezirk geÀndert 
     10        2011-11-30 import_request_variables 
     11        2012-07-24 Export CSV 
     12        2013-04-08 deprecated "import_request_variables" ersetzt 
     13        2014-09-10 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     14        2014-09-10 Bei Relationen den Timestamp abschneiden 
     15 
     16        ToDo: ZÀhler fuer Anzahl FS in der Liste 
    1617*/ 
    1718session_start(); 
     
    5152 
    5253// G R U N D B U C H 
    53 // Direkter JOIN zwischen den "ax_buchungsblattbezirk" und "ax_dienststelle". 
    54 // Ueber Feld "gehoertzu|ax_dienststelle_schluessel|land" und "stelle". 
    55 //      Bei JOIN ueber alkis_beziehungen entgegen Dokumentation keine Verbindung gefunden. 
    56 $sql ="SELECT g.gml_id, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung AS nr, g.blattart, "; // GB-Blatt 
    57 $sql.="b.gml_id, b.bezirk, b.bezeichnung AS beznam, "; // Bezirk 
    58 $sql.="a.gml_id, a.land, a.bezeichnung, a.stelle, a.stellenart "; // Amtsgericht 
    59 $sql.="FROM ax_buchungsblatt g "; 
    60 $sql.="LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk ";  // BBZ 
    61 $sql.="LEFT JOIN ax_dienststelle a ON b.land = a.land AND b.stelle = a.stelle "; 
    62 $sql.="WHERE g.gml_id= $1 "; 
    63 $sql.="AND a.stellenart=1000;"; // Amtsgericht 
     54$sql="SELECT g.gml_id, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung AS nr, g.blattart,  
     55b.gml_id, b.bezirk, b.bezeichnung AS beznam, a.gml_id, a.land, a.bezeichnung, a.stelle, a.stellenart  
     56FROM ax_buchungsblatt g LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk  
     57LEFT JOIN ax_dienststelle a ON b.land=a.land AND b.stelle=a.stelle  
     58WHERE g.gml_id= $1 AND a.stellenart=1000 AND g.endet IS NULL AND a.endet IS NULL;"; 
    6459 
    6560$v = array($gmlid); 
     
    7267} 
    7368if ($row = pg_fetch_array($res)) { 
    74         $blattkey=$row["blattart"]; // Schluessel 
     69        $blattkey=$row["blattart"]; 
    7570        $blattart=blattart($blattkey); 
    7671        echo "<p class='gbkennz'>ALKIS Bestand ".$row["bezirk"]." - ".$row["nr"]."&nbsp;</p>\n"; // Balken 
    7772        echo "\n<h2><img src='ico/Grundbuch.ico' width='16' height='16' alt=''> Grundbuch</h2>"; 
    78         echo "\n<table class='outer'>\n<tr>\n\t<td>"; // Kennzeichen im Rahmen 
     73        echo "\n<table class='outer'>\n<tr>\n\t<td>"; // Kennz. im Rahmen 
    7974                if ($blattkey == 1000) { 
    8075                        echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>"; 
     
    10297 
    10398                echo "\n\n\t</td>\n\t<td>"; 
    104                 if ($idanzeige) {linkgml($gkz, $gmlid, "Buchungsblatt");} 
     99                if ($idanzeige) {linkgml($gkz, $gmlid, "Buchungsblatt", "");} 
    105100        echo "\n\t</td>\n</tr>\n</table>"; 
    106101} 
     
    111106        echo "\n<h3><img src='ico/Eigentuemer_2.ico' width='16' height='16' alt=''> Angaben zum Eigentum</h3>\n"; 
    112107        $n = eigentuemer($con, $gmlid, true, ""); // MIT Adressen. 
    113         if ($n == 0) { // keine Namensnummer, kein Eigentuemer 
     108        if ($n == 0) { // keine NamensNr, kein Eigentuemer 
    114109                echo "\n<p class='err'>Keine Namensnummer gefunden.</p>"; 
    115110                echo "\n<p>Bezirk: ".$row["bezirk"].", Blatt: ".$row["nr"].", Blattart ".$blattkey." (".$blattart.")</p>"; 
    116                 linkgml($gkz, $gmlid, "Buchungsblatt"); 
     111                linkgml($gkz, $gmlid, "Buchungsblatt", ""); 
    117112        } 
    118113} 
    119114 
    120115// Vorab pruefen, ob Sonderfall "Rechte an .." vorliegt. 
    121 if ($blattkey == 1000) { // Grundbuchblatt 
    122         $sql ="SELECT count(z.laufendenummer) AS anzahl "; 
    123         $sql.="FROM alkis_beziehungen v "; 
    124         $sql.="JOIN ax_buchungsstelle s ON v.beziehung_von=s.gml_id "; // Blatt 
    125         $sql.="JOIN alkis_beziehungen x ON x.beziehung_von=s.gml_id ";  
    126         $sql.="JOIN ax_buchungsstelle z ON x.beziehung_zu=z.gml_id "; // andere B-Stelle 
    127         $sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart='istBestandteilVon' AND (x.beziehungsart='an' OR x.beziehungsart='zu');"; 
    128         $v=array($gmlid); 
     116if ($blattkey == 1000) { // GB-Blatt  <istBestandteilVon<  sh=herrschend  >an>  sd=dienend 
     117        $sql="SELECT count(sd.laufendenummer) AS anzahl 
     118        FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (substring(sd.gml_id,1,16)=ANY(sh.an) OR substring(sd.gml_id,1,16)=ANY(sh.zu))  
     119        WHERE sh.istbestandteilvon= $1 AND sd.endet IS NULL AND sh.endet IS NULL;"; 
     120 
     121        $v=array($gmlid); // GB-Blatt 
    129122        $res=pg_prepare("", $sql); 
    130123        $res=pg_execute("", $v); 
     
    166159 
    167160// Blatt ->  B u c h u n g s s t e l l e 
    168 // ax_buchungsblatt <istBestandteilVon< ax_buchungsstelle  
    169 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer AS lfd, s.beschreibungdesumfangsderbuchung AS udb, "; 
    170 $sql.="s.zaehler, s.nenner, s.nummerimaufteilungsplan AS nrap, s.beschreibungdessondereigentums AS sond, b.bezeichner as bart "; 
    171 $sql.="FROM ax_buchungsstelle s "; 
    172 $sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_von ";  
    173 $sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert "; 
    174 $sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart='istBestandteilVon' "; 
    175 $sql.="ORDER BY s.laufendenummer;"; 
     161// aktuelles ax_buchungsblatt <istBestandteilVon< ax_buchungsstelle  
     162$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer AS lfd, s.beschreibungdesumfangsderbuchung AS udb, s.zaehler, s.nenner, s.nummerimaufteilungsplan AS nrap, s.beschreibungdessondereigentums AS sond, b.bezeichner as bart  
     163FROM ax_buchungsstelle s LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart=b.wert  
     164WHERE s.istbestandteilvon= $1 AND s.endet IS NULL ORDER BY cast(s.laufendenummer AS integer);"; 
    176165 
    177166$v=array($gmlid); 
     
    184173} 
    185174$i=0; 
     175$fscnt=0; 
    186176while($row = pg_fetch_array($res)) { 
    187177        $lfdnr  = $row["lfd"]; 
     
    196186        } 
    197187        // F l u r s t u e c k s d a t e n  zur direkten Buchungsstelle 
    198    $j = bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, true); // return = Anzahl der FS 
    199  
     188        $j = bnw_fsdaten($con, $lfdnr, $gml_bs, $ba, $anteil, true); // return=Anzahl der FS 
     189        $fscnt=$fscnt + $j; 
    200190        if ($j == 0) { //  k e i n e  Flurstuecke gefunden (Miteigentumsnteil usw.) 
    201191                // Bei "normalen" Grundstuecken wurden Flurstuecksdaten gefunden und ausgegeben. 
    202192                // Bei Miteigentumsanteil, Erbbaurecht usw. muss nach weiteren Buchungsstellen gesucht werden: 
    203                 //  Buchungsstelle >an/zu> (andere)Buchungsstelle >istBestandTeilVon>  "FiktivesBlatt (ohne) Eigentuemer" 
     193                //  Buchungsstelle >an/zu> (andere)Buchungsstelle >istBestandTeilVon> "FiktivesBlatt (ohne) Eigentuemer" 
    204194 
    205195                // andere Buchungsstellen 
    206                 //  ax_buchungsstelle  >zu>  ax_buchungsstelle (des gleichen Blattes) 
    207                 //  ax_buchungsstelle  >an>  ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an) 
    208  
    209                 // aktuelles Blatt (herrschendes GB) hat Recht "an" fiktives Blatt (dienendes GB-Blatt) 
    210                 // a n d e r e  Buchungsstelle 
    211                 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer AS lfd, s.beschreibungdesumfangsderbuchung AS udb, "; 
    212                 $sql.="v.beziehungsart, s.nummerimaufteilungsplan AS nrap, s.beschreibungdessondereigentums AS sond, b.bezeichner AS bart "; 
    213                 $sql.="FROM ax_buchungsstelle s "; 
    214                 $sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_zu ";  
    215                 $sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert "; 
    216                 $sql.="WHERE v.beziehung_von= $1 "; // id buchungsstelle (fiktives Blatt) 
    217                 $sql.="AND (v.beziehungsart='an' OR v.beziehungsart='zu') "; 
    218                 $sql.="ORDER BY s.laufendenummer;"; 
     196                //  ax_buchungsstelle >zu> ax_buchungsstelle (des gleichen Blattes) 
     197                //  ax_buchungsstelle >an> ax_buchungsstelle (anderes Blatt, z.B Erbbaurecht an) 
     198                //  sh=herrschend          sd=dienend 
     199                $sql ="SELECT sd.gml_id, sd.buchungsart, sd.laufendenummer AS lfd, sd.beschreibungdesumfangsderbuchung AS udb, sd.nummerimaufteilungsplan AS nrap, sd.beschreibungdessondereigentums AS sond, b.bezeichner AS bart "; 
     200                $sql.="FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (sd.gml_id=ANY(sh.an) OR sd.gml_id=ANY(sh.zu)) ";  
     201                $sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON sd.buchungsart=b.wert "; 
     202                $sql.="WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL ORDER BY sd.laufendenummer;"; 
     203 
    219204                $v=array($gml_bs); 
    220205                $resan=pg_prepare("", $sql); 
    221206                $resan=pg_execute("", $v); 
    222                 //$resan=pg_query($con,$sql); 
    223207                if (!$resan) { 
    224208                        echo "<p class='err'>Fehler bei 'andere Buchungsstelle'.</p>\n"; 
    225                         if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";} 
     209                        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    226210                } 
    227                 $a=0; // count: andere BS 
     211                $a=0; // count 
    228212                $altbvnr=""; // Gruppenwechsel 
    229213                while($rowan = pg_fetch_array($resan)) { 
     
    235219                        // dienendes Grundbuch 
    236220                        $sql ="SELECT b.gml_id, b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, b.blattart, z.bezeichnung AS beznam "; 
    237                         $sql.="FROM ax_buchungsblatt  b "; 
    238                         $sql.="JOIN alkis_beziehungen v ON b.gml_id=v.beziehung_zu "; 
     221                        $sql.="FROM ax_buchungsblatt b JOIN ax_buchungsstelle s ON substring(b.gml_id,1,16)=s.istbestandteilvon "; 
    239222                        $sql.="LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk "; 
    240                         $sql.="WHERE v.beziehung_von= $1 "; 
    241                         $sql.="AND v.beziehungsart='istBestandteilVon' "; 
    242                         $sql.="ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 
     223                        $sql.="WHERE s.gml_id= $1 AND b.endet IS NULL ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 
    243224                        $v=array($gml_bsan); 
    244225                        $fbres=pg_prepare("", $sql); 
    245226                        $fbres=pg_execute("", $v); 
    246                         //$fbres=pg_query($con,$sql); 
    247227                        if (!$fbres) { 
    248228                                echo "<p class='err'>Fehler bei fiktivem Blatt.</p>\n"; 
    249                                 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";}                    
     229                                if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}                      
    250230                        } 
    251231                        $b=0; 
     
    271251                                                echo "<a name='bvnr".$lfdnr."'></a>"; // Sprungmarke 
    272252                                                echo "<span class='wichtig'>".$bvnr."</span>"; // Sp.1 Erbbau BVNR 
    273                                                 if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle");} 
     253                                                if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle", "ax_buchungsstelle");} 
    274254                                                $altbvnr = $bvnr; // Gruppenwechsel merken 
    275255                                        } 
     
    290270                                        echo $fbblatt; // Sp.6 BVNR 
    291271                                        if ($idanzeige) { 
    292                                                 linkgml($gkz, $fbgml, "Buchungsblatt"); 
     272                                                linkgml($gkz, $fbgml, "Buchungsblatt", ""); 
    293273                                        } 
    294274                                echo "</td>"; 
     
    296276                                        echo str_pad($lfdnran, 4, "0", STR_PAD_LEFT); 
    297277                                        if ($idanzeige) { 
    298                                                 linkgml($gkz, $gml_bsan, "Buchungsstelle"); 
     278                                                linkgml($gkz, $gml_bsan, "Buchungsstelle", "ax_buchungsstelle"); 
    299279                                        } 
    300280 
     
    307287                                echo "</td>"; 
    308288                                echo "\n\t<td>";  // Sp.8 Link ("an" oder "zu" ?) 
    309                                         echo "<p class='nwlink'>".$rowan["beziehungsart"]; 
     289                                        echo "<p class='nwlink'>an/zu"; //.$rowan["beziehungsart"] Feld gibt es nicht mehr 
    310290                                        echo " <a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$fbgml; 
    311291                                                if ($idanzeige) {echo "&amp;id=j";} 
     
    320300                        // F l u r s t u e c k s d a t e n  zur  a n d e r e n  Buchungsstelle 
    321301                        // Buchungsart wird nur in erster Zeile ausgegeben, hier leer 
    322                    $aj = bnw_fsdaten($con, $lfdnran, $gml_bsan, "", $anteil, false); // return = Anzahl der FS 
    323                                     
    324                         // +++ Gibt es ueberhaupt Sondereigentum beim fiktiven Blatt?? 
     302                        $aj = bnw_fsdaten($con, $lfdnran, $gml_bsan, "", $anteil, false); // return=Anz.FS 
     303                        $fscnt=$fscnt + $aj; 
     304                        // +++ Gibt es Sondereigentum beim fiktiven Blatt? 
    325305                        if ($rowan["nrap"] != "") { 
    326306                                echo "\n<tr>"; 
     
    339319                                echo "\n\t<td><span class='wichtig'>".$bvnr."</span>"; 
    340320                                if ($idanzeige) { 
    341                                         linkgml($gkz, $gml_bs, "Buchungsstelle"); 
     321                                        linkgml($gkz, $gml_bs, "Buchungsstelle", "ax_buchungsstelle"); 
    342322                                } 
    343323                                echo "</td>"; 
     
    349329        } 
    350330        $i++;  
    351         if ($row["nrap"] != "") { // Nummer im Aufteilungsplan 
     331        if ($row["nrap"] != "") { // Nr im Auft.Plan 
    352332                echo "\n<tr>"; 
    353333                        echo "\n\t<td class='nrap' colspan=8>Nummer <span class='wichtig'>".$row["nrap"]."</span> im Aufteilungsplan.</td>"; 
     
    358338                        echo "\n\t<td class='sond' colspan=8>Verbunden mit dem Sondereigentum an: ".$row["sond"]."</td>"; 
    359339                echo "\n</tr>"; 
    360         } 
    361 } // Ende Buchungsstelle 
     340        } // Ende Buchungsstelle/BVNR 
     341} // Ende Loop 
    362342echo "\n</table>"; 
    363343 
    364344if ($i == 0) { 
    365345        echo "\n<p class='err'>Keine Buchung gefunden.</p>\n"; 
    366         linkgml($gkz, $gmlid, "Buchungsblatt"); 
    367 } 
    368         // b e r e c h t i g t e  Grundbuecher (Buchungsblatt)  
    369         // mit Recht "an"/"zu" dem aktuellen fiktiven GB 
    370  
    371         // bf              vf          sf       vs   sb                 vb            bb 
    372         // Blatt   <istBestandteilVon< Stelle  <an<  Stelle      >istBestandteilVon>  Blatt 
    373         // Fiktiv                      Fiktiv  <zu<  Berechtigt                       Berechtigt 
    374         $sql ="SELECT bb.gml_id, bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung AS blatt, bb.blattart, "; 
    375         $sql.="vs.beziehungsart, "; 
    376         $sql.="sb.gml_id AS gml_s, sb.laufendenummer AS lfdnr, sb.buchungsart, ba.bezeichner AS bart, ";  // berechtigte Buchungsstelle 
    377         $sql.=" bz.bezeichnung AS beznam, ag.bezeichnung, ag.stelle, ag.stellenart "; // Bezirk, Amtsgericht 
    378         $sql.="FROM alkis_beziehungen vf ";     // Verbindung fiktiv 
    379         $sql.="JOIN ax_buchungsstelle sf ON sf.gml_id = vf.beziehung_von ";     // Stelle fiktiv 
    380         $sql.="JOIN alkis_beziehungen vs ON sf.gml_id = vs.beziehung_zu ";      // Verbindung Stellen 
    381         $sql.="JOIN ax_buchungsstelle sb ON sb.gml_id = vs.beziehung_von ";     // Stelle berechtigt 
    382         $sql.="JOIN alkis_beziehungen vb ON sb.gml_id = vb.beziehung_von ";     // Verbindung berechtigt 
    383         $sql.="JOIN ax_buchungsblatt  bb ON bb.gml_id = vb.beziehung_zu ";      // Blatt berechtigt 
    384         $sql.="LEFT JOIN ax_buchungsblattbezirk bz ON bb.land = bz.land AND bb.bezirk = bz.bezirk "; 
    385 //      $sql.="LEFT JOIN ax_dienststelle ag ON bz.\"gehoertzu|ax_dienststelle_schluessel|land\" = ag.land AND bz.stelle=ag.stelle "; 
    386         $sql.="LEFT JOIN ax_dienststelle ag ON bz.land = ag.land AND bz.stelle=ag.stelle ";      
    387         $sql.="LEFT JOIN ax_buchungsstelle_buchungsart ba ON sb.buchungsart = ba.wert "; 
    388         $sql.="WHERE vf.beziehung_zu= $1 "; 
    389         $sql.="AND  vf.beziehungsart='istBestandteilVon' "; 
    390         $sql.="AND (vs.beziehungsart='an' OR vs.beziehungsart='zu') "; 
    391         $sql.="AND  vb.beziehungsart= 'istBestandteilVon' "; 
    392         $sql.="ORDER BY bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung;"; 
    393  
    394         $v = array($gmlid); 
    395         $resb = pg_prepare("", $sql); 
    396         $resb = pg_execute("", $v); 
    397         if (!$resb) { 
    398                 echo "<p class='err'>Fehler bei 'andere Berechtigte Bl&auml;tter:'<br>".$sql."</p>\n"; 
    399                 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    400         } 
    401         $b=0; // count: Blaetter 
    402         while($rowb = pg_fetch_array($resb)) { 
    403                 if ($b == 0) { // Ueberschrift und Tabelle nur ausgeben, wenn etwas gefunden wurde 
    404                         echo "\n<h3><img src='ico/Grundbuch_zu.ico' width='16' height='16' alt=''> Berechtigte Grundb&uuml;cher</h3>\n"; 
    405                         echo "\n<table class='outer'>"; 
    406                         echo "\n<tr>"; // Tabelle Kopf 
    407                                 echo "\n\t<td class='head'>Land</td>"; 
    408                                 echo "\n\t<td class='head'>Dienststelle</td>"; 
    409                                 echo "\n\t<td class='head'>Bezirk</td>"; 
    410                                 echo "\n\t<td class='head'>Blatt</td>"; 
    411                                 echo "\n\t<td class='head'>BVNR</td>"; // Neu 
    412                                 echo "\n\t<td class='head'>Buchungsart</td>"; // Neu 
    413                                 echo "\n\t<td class='head nwlink noprint'>Weitere Auskunft</td>"; 
    414                         echo "\n</tr>"; 
    415                 } 
    416                 $gml_b=$rowb["gml_id"];         // id des berechtigten Blattes 
    417                 $gml_s=$rowb["gml_s"];          // id der berechtigten Buchungsstelle 
    418                 $blart=$rowb["blattart"]; 
    419                 $buch=$rowb["buchungsart"]; // Buchungsart Stelle berechtigt 
    420                 $bart=$rowb["bart"];                    // Buchungsart entschluesselt 
    421                 $lfdnr=$rowb["lfdnr"]; 
    422                 $bvnr   = str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 
    423  
    424                 echo "\n<tr>"; 
    425                         echo "\n\t<td>".$rowb["land"]."</td>"; 
    426                         echo "\n\t<td>"; // Amtsgericht 
    427                                 echo dienststellenart($rowb["stellenart"])." "; 
    428                                 if ($showkey) { 
    429                                         echo "<span class='key'>".$rowb["stelle"]."</span> "; 
    430                                 } 
    431                                 echo $rowb["bezeichnung"]; 
    432                         echo "</td>"; 
    433                         echo "\n\t<td>"; 
    434                                 if ($showkey) { 
    435                                         echo "<span class='key'>".$rowb["bezirk"]."</span> "; 
    436                                 } 
    437                                 echo $rowb["beznam"]; 
    438                         echo "</td>"; 
    439                         echo "\n\t<td><span class='wichtig'>".$rowb["blatt"]."</span>"; 
    440                                 if ($idanzeige) {linkgml($gkz, $gml_b, "Buchungsblatt");} 
    441                         echo "</td>"; 
    442                         echo "\n\t<td>".$bvnr; 
    443                                 if ($idanzeige) {linkgml($gkz, $gml_s, "Buchungsstelle");} 
    444                         echo "</td>"; 
    445                         echo "\n\t<td>"; 
    446                                 if ($showkey) { 
    447                                         echo "<span class='key'>".$buch."</span> "; 
    448                                 } 
    449                                 echo $bart; 
    450                         echo "</td>"; 
    451                         echo "\n\t<td>"; 
    452                                 echo "\n\t\t<p class='nwlink'>"; 
    453                         //      echo $rowb["beziehungsart"]." "; // "an"/"zu" ? 
    454                                 echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gml_b."#bvnr".$lfdnr; 
    455                                         if ($idanzeige) {echo "&amp;id=j";} 
    456                                         if ($showkey)   {echo "&amp;showkey=j";} 
    457                                         echo "' title='Nachweis des berechtigten Blattes ".$rowb["beziehungsart"]." ".$blattart."'>"; 
    458                                         echo blattart($blart); 
    459                                         echo " \n\t\t\t<img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''></a>"; 
    460                                 echo "\n\t\t</p>"; 
    461                         echo "</td>"; 
     346        linkgml($gkz, $gmlid, "Buchungsblatt", ""); 
     347} else { 
     348        if ($i > 5 and $fscnt > 5) { // nur wenn nicht auf einen Blick zu erkennen 
     349                echo "\n<p class='dbg'>".$i." Buchungen mit ".$fscnt." Flurst&uuml;cken</p>\n"; 
     350        } 
     351} 
     352 
     353// b e r e c h t i g t e  Grundbuecher (Buchungsblatt)  
     354// mit Recht "an"/"zu" dem aktuellen fiktiven GB 
     355 
     356// bf              vf          sf       vs   sb                 vb            bb 
     357// Blatt   <istBestandteilVon< Stelle  <an<  Stelle      >istBestandteilVon>  Blatt 
     358// Fiktiv                      Fiktiv  <zu<  Berechtigt                       Berechtigt 
     359$sql ="SELECT bb.gml_id, bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung AS blatt, bb.blattart,  
     360sb.gml_id AS gml_s, sb.laufendenummer AS lfdnr, sb.buchungsart, ba.bezeichner AS bart, bz.bezeichnung AS beznam, ag.bezeichnung, ag.stelle, ag.stellenart  
     361FROM ax_buchungsstelle sf JOIN ax_buchungsstelle sb ON (substring(sf.gml_id,1,16)=ANY(sb.an) OR substring(sf.gml_id,1,16)=ANY(sb.zu))  
     362JOIN ax_buchungsblatt bb ON substring(bb.gml_id,1,16)=sb.istbestandteilvon  
     363LEFT JOIN ax_buchungsblattbezirk bz ON bb.land=bz.land AND bb.bezirk=bz.bezirk  
     364LEFT JOIN ax_dienststelle ag ON bz.land=ag.land AND bz.stelle=ag.stelle  
     365LEFT JOIN ax_buchungsstelle_buchungsart ba ON sb.buchungsart=ba.wert  
     366WHERE sf.istbestandteilvon = $1 AND sf.endet IS NULL AND sb.endet IS NULL AND bb.endet IS NULL ORDER BY bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung;"; 
     367 
     368$v = array($gmlid); 
     369$resb = pg_prepare("", $sql); 
     370$resb = pg_execute("", $v); 
     371if (!$resb) { 
     372        echo "<p class='err'>Fehler bei 'andere Berechtigte Bl&auml;tter.</p>\n"; 
     373        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
     374} 
     375$b=0; // count: Blaetter 
     376while($rowb = pg_fetch_array($resb)) { 
     377        if ($b == 0) { // Ueberschrift und Tabelle nur ausgeben, wenn etwas gefunden wurde 
     378                echo "\n<h3><img src='ico/Grundbuch_zu.ico' width='16' height='16' alt=''> Berechtigte Grundb&uuml;cher</h3>\n"; 
     379                echo "\n<table class='outer'>"; 
     380                echo "\n<tr>"; // Tabelle Kopf 
     381                        echo "\n\t<td class='head'>Land</td>"; 
     382                        echo "\n\t<td class='head'>Dienststelle</td>"; 
     383                        echo "\n\t<td class='head'>Bezirk</td>"; 
     384                        echo "\n\t<td class='head'>Blatt</td>"; 
     385                        echo "\n\t<td class='head'>BVNR</td>"; // Neu 
     386                        echo "\n\t<td class='head'>Buchungsart</td>"; // Neu 
     387                        echo "\n\t<td class='head nwlink noprint'>Weitere Auskunft</td>"; 
    462388                echo "\n</tr>"; 
    463                 $b++; 
    464         } 
    465         if ($b == 0) { 
    466                 if ($blattkey > 2000 ) { // Warnung nicht bei Grundbuchblatt 1000 und Katasterblatt 2000 
    467                         echo "<p class='err'>Keine berechtigten Bl&auml;tter zu ".$blattart." (".$blattkey.") gefunden.</p>"; 
    468                 } 
    469         } else { 
    470                 echo "\n</table>"; 
    471         } 
    472  
     389        } 
     390        $gml_b=$rowb["gml_id"]; // id des berechtigten Blattes 
     391        $gml_s=$rowb["gml_s"]; // id der berechtigten Buchungsstelle 
     392        $blart=$rowb["blattart"]; 
     393        $buch=$rowb["buchungsart"]; // Buchungsart Stelle berechtigt 
     394        $bart=$rowb["bart"]; // Buchungsart entschluesselt 
     395        $lfdnr=$rowb["lfdnr"]; 
     396        $bvnr=str_pad($lfdnr, 4, "0", STR_PAD_LEFT); 
     397 
     398        echo "\n<tr>"; 
     399                echo "\n\t<td>".$rowb["land"]."</td>"; 
     400                echo "\n\t<td>"; // Amtsgericht 
     401                        echo dienststellenart($rowb["stellenart"])." "; 
     402                        if ($showkey) { 
     403                                echo "<span class='key'>".$rowb["stelle"]."</span> "; 
     404                        } 
     405                        echo $rowb["bezeichnung"]; 
     406                echo "</td>"; 
     407                echo "\n\t<td>"; 
     408                        if ($showkey) { 
     409                                echo "<span class='key'>".$rowb["bezirk"]."</span> "; 
     410                        } 
     411                        echo $rowb["beznam"]; 
     412                echo "</td>"; 
     413                echo "\n\t<td><span class='wichtig'>".$rowb["blatt"]."</span>"; 
     414                        if ($idanzeige) {linkgml($gkz, $gml_b, "Buchungsblatt", "");} 
     415                echo "</td>"; 
     416                echo "\n\t<td>".$bvnr; 
     417                        if ($idanzeige) {linkgml($gkz, $gml_s, "Buchungsstelle", "ax_buchungssstelle");} 
     418                echo "</td>"; 
     419                echo "\n\t<td>"; 
     420                        if ($showkey) { 
     421                                echo "<span class='key'>".$buch."</span> "; 
     422                        } 
     423                        echo $bart; 
     424                echo "</td>"; 
     425                echo "\n\t<td>"; 
     426                        echo "\n\t\t<p class='nwlink'>"; 
     427                        echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gml_b."#bvnr".$lfdnr; 
     428                                if ($idanzeige) {echo "&amp;id=j";} 
     429                                if ($showkey)   {echo "&amp;showkey=j";} 
     430                                echo "' title='Nachweis des berechtigten Blattes an ".$blattart."'>"; // oder "zu" statt "an" 
     431                                echo blattart($blart); 
     432                                echo " \n\t\t\t<img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''></a>"; 
     433                        echo "\n\t\t</p>"; 
     434                echo "</td>"; 
     435        echo "\n</tr>"; 
     436        $b++; 
     437} 
     438if ($b == 0) { 
     439        if ($blattkey > 2000 ) { // Warnung nicht bei Grundbuchblatt 1000 und Katasterblatt 2000 
     440                echo "<p class='err'>Keine berechtigten Bl&auml;tter zu ".$blattart." (".$blattkey.") gefunden.</p>"; 
     441        } 
     442} else { 
     443        echo "\n</table>"; 
     444} 
    473445?> 
    474446 
  • trunk/info/info/alkis/alkisexport.php

    r308 r330  
    11<?php 
    22/*      Modul alkisexport.php 
    3         CSV-Export von ALKIS-Daten zu einem Flurstueck, Grundbuch oder Eigentümer. 
    4         Es wird eine GML-ID übergeben. 
     3        CSV-Export von ALKIS-Daten zu einem Flurstueck, Grundbuch oder EigentÃŒmer. 
     4        Es wird eine GML-ID ÃŒbergeben. 
    55        Es wird ein gespeicherter View verwendet, der nach der gml_id gefiltert wird.  
    66        Der View verkettet Flurstueck - Buchungsstelle - Grundbuch - Eigentuemer 
    7         Die Lagebezeichnung des Flurstücks wird in ein Feld komprimiert. 
     7        Die Lagebezeichnung des FlurstÃŒcks wird in ein Feld komprimiert. 
    88        Parameter: gkz=mandant&gmlid=DE...&tabtyp=flurstueck/grundbuch/person 
    99 
    1010        2014-01-17 krz f.j. 
    1111        2014-01-20 weitere Spalten und verbesserte Formatierung 
    12         2014-01-21 Der View liefert "Rechtsgemeinschaft" nun als Feld in allen Personen-Sätzen  
     12        2014-01-21 Der View liefert "Rechtsgemeinschaft" nun als Feld in allen Personen-SÀtzen  
    1313                        eines GB-Blattes statt als eigenen "Satz ohne Person". 
    1414        2014-01-27 Erweiterung auf Filter "strasse" ("gml_id" aus "ax_lagebezeichnungkatalogeintrag") 
     15        2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     16        2014-09-10 Bei Relationen den Timestamp abschneiden 
    1517*/ 
    1618 
    1719function lage_zum_fs($gmlid) { 
    18         // Zu einem Flurstück die Lagebezeichnungen (mit Hausnummer) so aufbereiten,  
     20        // Zu einem FlurstÃŒck die Lagebezeichnungen (mit Hausnummer) so aufbereiten,  
    1921        // dass ggf. mehrere Lagebezeichnungen in eine Zelle der Tabelle passen. 
    20         $sql ="SELECT DISTINCT s.bezeichnung, l.hausnummer FROM alkis_beziehungen v "; 
    21         $sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; 
    22         $sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage = s.lage "; 
    23         $sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart='weistAuf' "; 
    24         $sql.="ORDER BY s.bezeichnung, l.hausnummer;"; 
     22        // FS >westAuf> Lage >> Katalog 
     23        $sql ="SELECT DISTINCT s.bezeichnung, l.hausnummer  
     24        FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(f.weistauf) 
     25        JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
     26        WHERE f.gml_id= $1 ORDER BY s.bezeichnung, l.hausnummer;"; 
     27 
    2528        $v=array($gmlid); 
    2629        $res=pg_prepare("", $sql); 
    2730        $res=pg_execute("", $v); 
    2831        if (!$res) { 
    29                 echo "Fehler bei Lagebezeichnung \n"; 
    30                 //echo $sql."\n"; 
     32                return "** Fehler bei Lagebezeichnung **"; //.$sql; 
    3133        } 
    3234        $j=0; 
     
    4749} 
    4850 
     51// HIER START // 
     52 
    4953$cntget = extract($_GET); // Parameter aus URL lesen 
    5054header('Content-type: application/octet-stream'); 
     
    6165        exit("Fehler beim Verbinden der DB"); 
    6266} 
    63 pg_set_client_encoding($con, LATIN1); // Für Excel kein UTF8 ausgeben 
     67pg_set_client_encoding($con, LATIN1); // FÃŒr Excel kein UTF8 ausgeben 
    6468 
    6569// Der Parameter "Tabellentyp" bestimmt den Namen des Filter-Feldes aus dem View "exp_csv". 
     
    6872        case 'grundbuch':  $filter = "gbgml"; break; // ax_buchungsblatt.gml_id 
    6973        case 'person':     $filter = "psgml"; break; // ax_person.gml_id 
    70         case 'strasse':    $filter = "stgml"; break; // ax_lagebezeichnungkatalogeintrag.gml_id = Straße-GML-ID 
     74        case 'strasse':    $filter = "stgml"; break; // ax_lagebezeichnungkatalogeintrag.gml_id = Straße-GML-ID 
    7175        default: exit("Falscher Parameter '".$tabtyp."'"); break; 
    7276} 
     
    8387$res=pg_execute("", $v); 
    8488if (!$res) {exit("Fehler bei Datenbankabfrage");} 
    85 $i=1; // Kopfzeile zählt mit 
     89$i=1; // Kopfzeile zÀhlt mit 
    8690$fsalt=''; 
    8791 
     
    110114        $bu_lfd=$row["bu_lfd"]; // BVNR 
    111115        $bu_ant=$row["bu_ant"]; // '=zaehler/nenner' oder NULL 
    112         $bu_key=$row["buchungsart"]; // Schlüssel 
    113         $bu_art=$row["bu_art"]; // entschlüsselt (Umlaute in ANSI!) 
     116        $bu_key=$row["buchungsart"]; // SchlÃŒssel 
     117        $bu_art=$row["bu_art"]; // entschlÃŒsselt (Umlaute in ANSI!) 
    114118        if($bu_ant == '') { // Keine Bruch-Zahl 
    115119                $bu_ant = '1'; // "voller Anteil" (Faktor 1) 
     
    121125        $nam_lfd="'".kurz_namnr($row["nam_lfd"])."'"; // In Hochkomma, wird sonst wie Datum dargestellt. 
    122126        $nam_ant=$row["nam_ant"]; 
    123         $nam_adr=$row["nam_adr"]; // Art der Rechtsgemeischaft (Schlüssel) 
     127        $nam_adr=$row["nam_adr"]; // Art der Rechtsgemeischaft (SchlÃŒssel) 
    124128 
    125129        if ($nam_adr == '') {     // keine Rechtsgemeinschaft 
     
    133137                        $rechtsg=$row["nam_bes"]; // Beschrieb der Rechtsgemeinschaft 
    134138                } else { 
    135                         $rechtsg=rechtsgemeinschaft($nam_adr); // Entschlüsseln 
     139                        $rechtsg=rechtsgemeinschaft($nam_adr); // EntschlÃŒsseln 
    136140                } 
    137141        } 
     
    154158        } else {  
    155159                $adresse=$row["strasse"]." ".$row["hausnummer"].", ".$row["plz"]." ".$ort; 
    156                 $land=$row["land"]; // nur andere Länder anzeigen 
     160                $land=$row["land"]; // nur andere LÀnder anzeigen 
    157161                if (($land != "DEUTSCHLAND") and ($land != "")) { 
    158162                        $adresse.=" (".$land.")"; 
     
    161165 
    162166        // Adressen (Lage) zum FS 
    163         if($fsgml != $fsalt) { // nur bei geändertem Kennz. 
     167        if($fsgml != $fsalt) { // nur bei geÀndertem Kennz. 
    164168                $lage=lage_zum_fs($fsgml); // die Lage neu ermitteln 
    165169                $fsalt=$fsgml; 
    166170        } 
    167171 
    168         // Den Ausgabe-Satz montieren aus Flurstücks-, Grundbuch- und Namens-Teil 
     172        // Den Ausgabe-Satz montieren aus FlurstÃŒcks-, Grundbuch- und Namens-Teil 
    169173        //      A             B           C             D               E               F            G 
    170174        $fsteil=$fs_kennz.";".$gmkgnr.";".$gemkname.";".$flurnummer.";".$flstnummer.";".$fs_flae.";".$lage.";"; 
     
    181185        } 
    182186 
    183         // Ausgabe in CSV-Datei 
     187        // Ausgabe in die CSV-Datei -> Download -> Tabellenkalkulation 
    184188        echo "\n".$fsteil.$gbteil.$namteil.$formelteil; 
    185189} 
  • trunk/info/info/alkis/alkisfkt.php

    r315 r330  
    1111        2014-01-22 Eigentuemerart: Mehr Werte und Zugriff auf DB-SchlÃŒssel-Tabelle 
    1212        2014-02-06 Korrektur EigentÃŒmerart 
     13        2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     14        2014-09-10 Bei Relationen den Timestamp abschneiden 
    1315*/ 
    1416 
     
    6365} 
    6466 
    65 function linkgml($gkz, $gml, $typ)  { 
     67function linkgml($gkz, $gml, $typ, $tabelle)  { 
    6668        // Einen Link zur Verfolgung der Beziehungen mit dem Modul alkisrelationen.php 
    67         $kurzid=substr($gml, 12); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich 
     69        // tabelle = nur angeben fÃŒr Tabellen, die Relationen-Spalten besitzen, sonst leer 
     70        $kurzid=substr($gml, 12, 4); // ID in Anzeige kuerzen (4 Zeichen), der Anfang ist immer gleich 
     71        // PostNAS 0.8: Timestamp abschneiden 
    6872        echo "\n\t\t<a target='_blank' title='ID ".$typ."' class='gmlid noprint' "; 
    69         echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."'>"; 
     73        echo "href='alkisrelationen.php?gkz=".$gkz."&amp;gmlid=".$gml."&amp;otyp=".$typ."&amp;tabelle=".$tabelle."'>"; 
    7074        echo "<img src='ico/Beziehung_link.ico' width='16' height='16' alt=''>".$kurzid."</a>"; 
    7175        return 0; 
     
    7377 
    7478function kurz_namnr($lang) { 
    75         // Namensnummer kuerzen. Nicht benoetigte Stufen der Dezimalklassifikation abschneiden 
     79        // Namensnummer kÃŒrzen. Nicht benötigte Stufen der Dezimalklassifikation abschneiden 
    7680        $kurz=str_replace(".00","",$lang); // leere Stufen (nur am Ende) 
    7781        $kurz=str_replace("0000","",$kurz); // ganz leer (am Anfang) 
     
    8993*/ 
    9094        global $gkz, $idanzeige, $showkey; 
     95 
    9196        // F L U R S T U E C K 
    92         $sql="SELECT g.gemarkungsnummer, g.bezeichnung, "; 
    93         $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche "; 
    94         $sql.="FROM ax_flurstueck f "; 
    95         $sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von ";  
     97        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche "; 
     98        $sql.="FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16) ";  
    9699        $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    97         $sql.="WHERE v.beziehung_zu= $1 "; // id buchungsstelle 
    98         $sql.="AND v.beziehungsart='istGebucht' "; 
    99         $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     100        $sql.="WHERE s.gml_id= $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
    100101 
    101102        $v = array($gml_bs); 
     
    116117                if ($rowf["nenner"] != "") { // Bruchnummer 
    117118                        $fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT); 
    118                 } */ 
    119  
     119                } 
     120*/ 
    120121                // ohne fuehrende Nullen? 
    121122                $fskenn=$rowf["zaehler"]; 
     
    136137                                        echo "<a name='bvnr".$lfdnr."'></a>"; // Sprungmarke 
    137138                                        echo "<span class='wichtig'>".$bvnr."</span>";  // BVNR 
    138                                         if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle");} 
     139                                        if ($idanzeige) {linkgml($gkz, $gml_bs, "Buchungsstelle", "ax_buchungsstelle");} 
    139140                                echo "</td>"; 
    140141 
     
    154155                        echo "\n\t<td>".$flur."</td>"; 
    155156                        echo "\n\t<td><span class='wichtig'>".$fskenn."</span>"; 
    156                                 if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");} 
     157                                if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");} 
    157158                        echo "</td>"; 
    158159                        echo "\n\t<td class='fla'>".$flae."</td>"; 
     
    178179        // Sp.1 = Namennummer, Sp. 2 = Name / Adresse, Sp. 3 = Link 
    179180        // Parameter: 
    180         //      $gmlid = ID des GB-Blattes 
    181         //      $mitadresse = Option (true/false) ob auch die Adresszeile ausgegeben werden soll 
     181        //      $gmlid = ID GB-Blattes 
     182        //      $mitadresse = Option (true/false) ob die Adresszeile ausgegeben werden soll 
    182183        // Return = Anzahl Namensnummern 
    183184 
    184185        // Schleife 1: N a m e n s n u m m e r 
    185         // Beziehung: ax_namensnummer  >istBestandteilVon> ax_buchungsblatt 
     186        // Beziehung: ax_namensnummer >istBestandteilVon> ax_buchungsblatt 
    186187        global $debug, $gkz, $idanzeige, $showkey; 
    187188 
     
    195196        } // Beispiel-Link href='javascript:imFenster(\"alkislage.php?gkz= ... ."\")'>xxx "; 
    196197 
    197         $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, "; 
    198         $sqln.="n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass "; 
    199         $sqln.="FROM ax_namensnummer n JOIN alkis_beziehungen b ON b.beziehung_von=n.gml_id "; 
    200         $sqln.="WHERE b.beziehung_zu= $1 AND b.beziehungsart='istBestandteilVon' ORDER BY laufendenummernachdin1421;"; 
     198        $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass "; 
     199        $sqln.="FROM ax_namensnummer n WHERE n.istbestandteilvon= $1 ORDER BY n.laufendenummernachdin1421;"; 
    201200 
    202201        $v = array($gmlid); 
     
    219218                                $namnum=kurz_namnr($rown["lfd"]); 
    220219                                echo $namnum."&nbsp;"; 
    221                                 if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer");} 
     220                                if ($idanzeige) {linkgml($gkz, $rown["gml_id"], "Namensnummer", "ax_namensnummer");} 
    222221                        echo "</p>\n\t</td>"; 
    223222 
     
    247246                // Beziehung: ax_person  <benennt<  ax_namensnummer 
    248247                $sqlp ="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad "; 
    249                 $sqlp.="FROM ax_person p JOIN alkis_beziehungen v ON v.beziehung_zu=p.gml_id "; 
    250                 $sqlp.="WHERE v.beziehung_von= $1 AND v.beziehungsart='benennt';"; 
     248                $sqlp.="FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=substring(p.gml_id,1,16) WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;"; 
     249                // Timestamp an ID abschneiden! 
    251250 
    252251                $v = array($gmlnn); 
     
    260259 
    261260                $i=0; // cnt Person 
    262                 while($rowp = pg_fetch_array($resp)) { 
     261                while($rowp = pg_fetch_array($resp)) {  // ++ Schleife? nn >benennt> Person ist kein Array! 
    263262                        $diePerson=""; 
    264263                        if ($rowp["akademischergrad"] <> "") {$diePerson=$rowp["akademischergrad"]." ";} 
     
    281280                        // Spalte 3 = Link 
    282281                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
    283                                 if ($idanzeige) {linkgml($gkz, $rowp["gml_id"], "Person"); echo "&nbsp";} 
    284                                 if ($showkey) {echo "<span class='key'>(".$eiartkey.")</span> ";} 
     282                                if ($idanzeige) {linkgml($gkz, $rowp["gml_id"], "Person", "ax_person"); echo "&nbsp";} 
     283                                if ($showkey AND $eiartkey != '') { // oft leer 
     284                                                echo "<span class='key'>(".$eiartkey.")</span> "; 
     285                                } 
    285286                                echo "\n\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&amp;gmlid=".$rowp[0]; 
    286287                                if ($idanzeige) {echo "&amp;id=j";} 
     
    293294                                // Schleife 3:  A d r e s s e  (OPTIONAL) 
    294295                                $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland "; 
    295                                 $sqla.="FROM ax_anschrift a JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu "; 
    296                                 $sqla.="WHERE b.beziehung_von= $1 AND b.beziehungsart='hat';"; // ORDER? 
     296                                $sqla.="FROM ax_anschrift a JOIN ax_person p ON substring(a.gml_id,1,16) = ANY(p.hat) WHERE p.gml_id= $1 ;"; // ORDER? 
    297297                                $gmlp=$rowp["gml_id"]; // Person 
    298298                                $v = array($gmlp); 
     
    332332                                        if ($idanzeige) { 
    333333                                                echo "<p class='nwlink noprint'>"; 
    334                                                 linkgml($gkz, $gmla, "Adresse"); 
     334                                                linkgml($gkz, $gmla, "Adresse", "ax_adresse"); 
    335335                                                echo "</p>"; 
    336336                                        } else {  
     
    342342                                pg_free_result($resa); 
    343343                        } // End if 
    344  
    345344                        // 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG" 
     345 
    346346                        $i++; // cnt Person 
    347347                        // als eigene Tab-Zeile? 
     
    353353                        } 
    354354                } // End Loop Person 
    355                 if ($i == 0) { // kommt vor hinter Zeile Erbengemeinschaft, dann kein Fehler 
     355                if ($i == 0) { // kommt vor hinter Zeile Erbengemeinschaft, ist dann kein Fehler 
    356356                        if ($debug > 0) { 
    357357                                echo "\n<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>"; 
    358358                                if ($rechtsg != 9999) { 
    359                                         echo "\n<p class='dbg'>Keine Person zur Namensnummer ".$namnum."</p>"; 
     359                                        echo "\n<p class='dbg'>Fehler: Keine Person zur Namensnummer ".$namnum."</p>"; 
    360360                                } 
    361                                 //if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1=gml(NamNum)= '".$gmlnn."'</p>";} 
     361                                if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1 = gml(NamNum) = '".$gmlnn."'</p>";} 
    362362                        } 
    363363                        echo "</td>\n\t<td>&nbsp;</td>\n<tr>"; 
     
    367367        echo "\n</table>\n"; 
    368368        if ($n == 0) { 
     369                // kommt vor bei "Fiktives Blatt", kein Fehler  
    369370                if ($debug > 0) {echo "<p class='dbg'>keine Namensnummern zum Blatt</p>";} 
     371 
    370372                if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";} 
    371373        } 
  • trunk/info/info/alkis/alkisfshist.php

    r315 r330  
    1010        2012-11-27  Function split deprecated: explode 
    1111        2013-04-08  deprecated "import_request_variables" ersetzt 
     12        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    1213*/ 
    1314 
     
    249250                echo "\n\t</tr>"; 
    250251        echo "\n\t</table>"; 
    251         if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck"); } 
     252        if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); } 
    252253echo "\n\t</td>\n</tr>\n</table>"; 
    253254 
     
    270271        </tr>"; // Head 
    271272         
    272         // Spalte 1: F l u r s t Ì c k 
     273        // Spalte 1: F l u r s t ÃŒ c k 
    273274        echo "\n<tr>\n\t<td>"; 
    274275                echo "<img src='ico/".$ico."' width='16' height='16' alt=''> ".$wert; 
     
    276277        echo "</td>"; 
    277278 
    278         // Spalte 2: V o r g À n g e r 
     279        // Spalte 2: V o r g À n g e r 
    279280        echo "\n\t<td>"; 
    280281        switch ($ftyp) { // Unterschiede Historisch/Aktuell 
  • trunk/info/info/alkis/alkisfsnw.php

    r315 r330  
    2020        2014-01-30 Korrektur Nutzungsart (z.B. Friedhof mit class=funktion=0 hatte Anzeige "unbekannt") 
    2121        2014-02-06 Korrektur 
     22        2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     23        2014-09-10 Bei Relationen den Timestamp abschneiden 
    2224 
    2325        ToDo: 
     
    107109 
    108110// F L U R S T U E C K 
    109 $sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae, f.zeitpunktderentstehung, "; 
    110 $sql.="g.gemarkungsnummer, g.bezeichnung "; 
    111 $sql.="FROM ax_flurstueck f "; 
    112 $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    113 $sql.="WHERE f.gml_id= $1"; 
     111$sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae, f.zeitpunktderentstehung, g.gemarkungsnummer, g.bezeichnung  
     112FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     113WHERE f.gml_id= $1 AND f.endet IS NULL;"; 
    114114 
    115115$v = array($gmlid); // mit gml_id suchen 
    116116$res = pg_prepare("", $sql); 
    117117$res = pg_execute("", $v); 
     118 
    118119if (!$res) { 
    119120        echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>\n"; 
     
    138139        $arrn = explode(",", trim($name, "{}") ); // PHP-Array 
    139140} else { 
    140         echo "<p class='err'>Fehler! Kein Treffer f&uuml;r gml_id=".$gmlid."</p>"; 
     141        echo "<p class='err'>Fehler! Kein Treffer f&uuml;r Flurst&uuml;ck mit gml_id=".$gmlid."</p>"; 
    141142        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
     143        echo "</body></html>"; 
     144        return; 
    142145} 
    143146pg_free_result($res); 
     
    177180 
    178181        echo "\n\t</table>"; 
    179         if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck"); } 
     182        if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); } 
    180183echo "\n\t</td>\n</tr>\n</table>"; 
    181184//      echo "\n<tr>\n\t<td>Finanzamt</td>\n\t<td>".$finanzamt." ".$finame  . "</td>\n</tr>"; 
     
    247250        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";} 
    248251} 
    249 $row = pg_fetch_array($res); 
    250 $bnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
     252$row=pg_fetch_array($res); 
     253$bnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 
    251254echo "<tr><td>&nbsp;</td><td>Regierungsbezirk</td><td>"; 
    252255if ($showkey) { 
     
    259262// ** L a g e b e z e i c h n u n g ** 
    260263 
    261 // Lagebezeichnung Mit Hausnummer 
     264// Lagebezeichnung MIT Hausnummer 
    262265// ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer 
    263 $sql ="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung "; 
    264 $sql.="FROM alkis_beziehungen v "; 
    265 $sql.="JOIN ax_lagebezeichnungmithausnummer  l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN 
    266 $sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde "; 
    267 $sql.="AND l.lage = s.lage "; 
    268 $sql.="WHERE v.beziehung_von= $1 "; // id FS"; 
    269 $sql.="AND v.beziehungsart='weistAuf' "; 
    270 $sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
    271 // Theoretisch JOIN notwendig ÃŒber den kompletten SchlÃŒssel bestehend aus land+regierungsbezirk+kreis+gemeinde+lage 
    272 // bei einem SekundÀrbestand fÃŒr eine Gemeinde oder einen Kreis reicht dies hier: 
     266$sql="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung  
     267FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16) = ANY(f.weistauf)   
     268JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
     269WHERE f.gml_id= $1 ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
    273270 
    274271$v = array($gmlid); 
    275272$res = pg_prepare("", $sql); 
    276273$res = pg_execute("", $v); 
     274 
    277275if (!$res) { 
    278276        echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer</p>"; 
    279         if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";} 
    280 } 
    281 $j=0; 
    282 while($row = pg_fetch_array($res)) { 
    283         $sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 
    284         echo "\n<tr>\n\t"; 
    285                 if ($j == 0) { 
    286                         echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>"; 
    287                 } else { 
    288                         echo "<td>&nbsp;</td>"; 
    289                 } 
    290                 echo "\n\t<td>&nbsp;</td>"; 
    291                 echo "\n\t<td class='lr'>"; 
    292                 if ($showkey) { 
    293                         echo "<span class='key' title='Straßenschl&uuml;ssel'>(".$row["lage"].")</span>&nbsp;"; 
    294                 } 
    295                 echo $sname."&nbsp;".$row["hausnummer"]; 
    296                 if ($idanzeige) {linkgml($gkz, $row["gml_id"], "Lagebezeichnung mit Hausnummer");} 
    297                 echo "</td>"; 
    298                 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
    299                         echo "\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"]; 
    300                         if ($showkey) {echo "&amp;showkey=j";} 
    301                         echo "'>Lage "; 
    302                         echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>"; 
    303                 echo "\n\t\t</p>\n\t</td>"; 
    304         echo "\n</tr>"; 
    305         $j++; 
    306 } 
    307 pg_free_result($res); 
     277        if ($debug > 1) { 
     278                //echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>"; 
     279                echo "<p class='dbg'>Fehler:".pg_last_error()."</p>"; 
     280        } 
     281        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
     282} else { 
     283        $j=0; 
     284        while($row = pg_fetch_array($res)) { 
     285                $sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 
     286                echo "\n<tr>\n\t"; 
     287                        if ($j == 0) { 
     288                                echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>"; 
     289                        } else { 
     290                                echo "<td>&nbsp;</td>"; 
     291                        } 
     292                        echo "\n\t<td>&nbsp;</td>"; 
     293                        echo "\n\t<td class='lr'>"; 
     294                        if ($showkey) { 
     295                                echo "<span class='key' title='Straßenschl&uuml;ssel'>(".$row["lage"].")</span>&nbsp;"; 
     296                        } 
     297                        echo $sname."&nbsp;".$row["hausnummer"]; 
     298                        if ($idanzeige) {linkgml($gkz, $row["gml_id"], "Lagebezeichnung mit Hausnummer", "ax_lagebezeichnungmithausnummer");} 
     299                        echo "</td>"; 
     300                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
     301                                echo "\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"]; 
     302                                if ($showkey) {echo "&amp;showkey=j";} 
     303                                echo "'>Lage "; 
     304                                echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>"; 
     305                        echo "\n\t\t</p>\n\t</td>"; 
     306                echo "\n</tr>"; 
     307                $j++; 
     308        } 
     309        pg_free_result($res); 
     310} 
    308311// Verbesserung: mehrere HsNr zur gleichen Straße als Liste? 
    309312 
    310 // L a g e b e z e i c h n u n g   O h n e   H a u s n u m m e r  (Gewanne oder nur Strasse) 
     313// Lagebezeichnung OHNE Hausnummer  (Gewanne oder nur Strasse) 
    311314// ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer 
    312 $sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung "; 
    313 $sql.="FROM alkis_beziehungen v "; 
    314 $sql.="JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=v.beziehung_zu "; 
    315 $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde "; 
    316 $sql.="AND l.lage = s.lage "; 
    317 $sql.="WHERE v.beziehung_von= $1 "; // id FS 
    318 $sql.="AND   v.beziehungsart='zeigtAuf';"; //ORDER? 
     315$sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung  
     316FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf)  
     317LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
     318WHERE f.gml_id = $1 ;"; 
     319 
    319320$v = array($gmlid); 
    320321$res = pg_prepare("", $sql); 
     
    322323if (!$res) { 
    323324        echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>"; 
    324         if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";} 
     325        //if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>";} 
     326        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    325327} 
    326328$j=0; 
     
    352354                        } 
    353355                        echo $row["bezeichnung"]; 
    354                         if ($idanzeige) {linkgml($gkz, $lgml, "Lagebezeichnung o. HsNr.");} 
     356                        if ($idanzeige) {linkgml($gkz, $lgml, "Lagebezeichnung o. HsNr.", "ax_lagebezeichnungohnehausnummer");} 
    355357                        echo "</td>"; 
    356358                        echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 
     
    458460                        if ($nam != "") {echo "<br>Name: ".$nam;} 
    459461                        if ($bez != "") {echo "<br>Bezeichnung: ".$bez;} 
    460                         if ($idanzeige) {linkgml($gkz, $gml, "Nutzungs-Abschnitt");} 
     462                        if ($idanzeige) {linkgml($gkz, $gml, "Nutzungs-Abschnitt", "");} 
    461463 
    462464                echo "</td>"; 
    463465                echo "\n\t<td>"; 
    464466                        switch ($grupp) { // Icon nach 4 Objektartengruppen 
    465                                 case "Siedlung":                $ico = "Abschnitt.ico"; break; 
    466                                 case "Verkehr":         $ico = "Strassen_Klassifikation.ico";   break; 
    467                                 case "Vegetation":      $ico = "Wald.ico";      break; 
    468                                 case "GewÀsser":               $ico = "Wasser.ico";    break; 
    469                                 default:                                        $ico = "Abschnitt.ico"; break; 
     467                                case "Siedlung":   $ico = "Abschnitt.ico"; break; 
     468                                case "Verkehr":    $ico = "Strassen_Klassifikation.ico"; break; 
     469                                case "Vegetation": $ico = "Wald.ico"; break; 
     470                                case "GewÀsser":   $ico = "Wasser.ico";        break; 
     471                                default:        $ico = "Abschnitt.ico"; break; 
    470472                        } 
    471473                        // Icon ist auch im Druck sichtbar, class='noprint' ?            
     
    499501$sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, "; 
    500502$sql_boden.="b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key "; 
    501 $sql_boden.="FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert = b.artderfestlegung "; 
    502 $sql_boden.="LEFT JOIN ax_dienststelle d ON b.stelle = d.stelle "; 
     503$sql_boden.="FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert=b.artderfestlegung "; 
     504$sql_boden.="LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle "; 
    503505$sql_boden.="WHERE ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry) "; 
    504506$sql_boden.="OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry)"; 
     
    610612 
    611613// B U C H U N G S S T E L L E N  zum FS (istGebucht) 
    612 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, "; 
    613 $sql.="s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.bezeichner AS bart "; 
    614 $sql.="FROM alkis_beziehungen v JOIN ax_buchungsstelle s ON v.beziehung_zu=s.gml_id "; 
    615 $sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert "; 
    616 $sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart= $2 ORDER BY s.laufendenummer;"; 
    617  
    618 $v = array($gmlid,'istGebucht'); 
     614$sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.bezeichner AS bart  
     615FROM ax_flurstueck f JOIN ax_buchungsstelle s ON substring(s.gml_id,1,16)=f.istgebucht  
     616LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart=b.wert  
     617WHERE f.gml_id= $1 ORDER BY s.laufendenummer;"; 
     618 
     619$v = array($gmlid); 
    619620$ress = pg_prepare("", $sql); 
    620621$ress = pg_execute("", $v); 
    621622if (!$ress) { 
    622623        echo "\n<p class='err'>Keine Buchungsstelle.</p>\n"; 
     624        //if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($ress)."</p>";} 
    623625        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    624626} 
     
    629631 
    630632        // B U C H U N G S B L A T T  zur Buchungsstelle (istBestandteilVon) 
    631         $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, "; 
    632         $sql.="z.bezeichnung ";  // stelle -> amtsgericht 
    633         $sql.="FROM alkis_beziehungen v "; // Bez. Stelle - Blatt 
    634         $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id "; 
     633        $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung "; 
     634        $sql.="FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=s.istbestandteilvon "; 
    635635        $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 
    636         $sql.="WHERE v.beziehung_von= $1 "; // id Buchungsstelle 
    637         $sql.="AND v.beziehungsart= $2 "; 
    638         $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 
    639  
    640         $v = array($gmls,'istBestandteilVon'); 
     636        $sql.="WHERE s.gml_id = $1 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 
     637 
     638        $v = array($gmls); 
    641639        $resg = pg_prepare("", $sql); 
    642640        $resg = pg_execute("", $v); 
     
    695693                        echo "\n<td>"; // Outer rechte Spalte: NW-Links 
    696694                                if ($idanzeige) { 
    697                                         linkgml($gkz, $gmls, "Buchungsstelle"); 
     695                                        linkgml($gkz, $gmls, "Buchungsstelle", "ax_buchungsstelle"); 
    698696                                        echo "<br>"; 
    699                                         linkgml($gkz, $gmlg, "Buchungsblatt"); 
     697                                        linkgml($gkz, $gmlg, "Buchungsblatt", ""); // ax_buchungsblatt keine Relationen 
    700698                                } 
    701699                                echo "\n\t<p class='nwlink noprint'>weitere Auskunft:<br>"; 
     
    730728                                if ($blattkeyg == 1000) { 
    731729                                        echo "\n<p class='err'>Keine Namensnummer gefunden.</p>"; 
    732                                         linkgml($gkz, $gmlg, "Buchungsblatt"); 
     730                                        linkgml($gkz, $gmlg, "Buchungsblatt", ""); 
    733731                                } else { 
    734732                                        echo "\n<p>ohne Eigent&uuml;mer.</p>"; 
     
    741739                echo "\n<p class='err'>Kein Buchungsblatt gefunden.</p>"; 
    742740                echo "\n<p class='err'>Parameter: gml_id= ".$gmls.", Beziehung='istBestandteilVon'</p>"; 
    743                 linkgml($gkz, $gmls, "Buchungstelle"); 
     741                linkgml($gkz, $gmls, "Buchungstelle", "ax_buchungsstelle"); 
    744742        } 
    745743 
    746744        // Buchungstelle  >an>  Buchungstelle  >istBestandteilVon>  BLATT  ->  Bezirk 
    747         $sql ="SELECT s.gml_id AS s_gml, s.buchungsart, s.laufendenummer as lfd, "; 
    748         $sql.="s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, "; 
    749         $sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, "; 
    750         $sql.="z.bezeichnung, a.bezeichner AS bart "; // stelle -> amtsgericht 
    751         $sql.="FROM alkis_beziehungen an "; // Bez. Stelle - Stelle 
    752         $sql.="JOIN ax_buchungsstelle s ON an.beziehung_von = s.gml_id "; 
    753         $sql.="JOIN alkis_beziehungen v ON s.gml_id = v.beziehung_von "; // Bez. Stelle - Blatt 
    754         $sql.="JOIN ax_buchungsblatt  b ON v.beziehung_zu = b.gml_id "; 
    755         $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land = b.land AND z.bezirk = b.bezirk "; 
    756         $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert "; 
    757         $sql.="WHERE an.beziehung_zu = $1 "; // id herrschende Buchungsstelle 
    758         $sql.="AND an.beziehungsart = 'an' AND v.beziehungsart = 'istBestandteilVon' "; 
     745        $sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond, "; 
     746        $sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart "; 
     747        $sql.="FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an) "; // Stelle >an> Stelle 
     748        $sql.="JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=sd.istbestandteilvon  ";// Stelle >istbestandteilvon> Blatt 
     749        $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 
     750        $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON sd.buchungsart=a.wert "; 
     751        $sql.="WHERE sh.gml_id= $1 "; // id herrschende Buchungsstelle 
    759752        $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 
     753 
    760754        $v = array($gmls); 
    761755        $resan = pg_prepare("", $sql); 
     
    806800                        echo "\n<td>"; // outer rechte Spalte 
    807801                                if ($idanzeige) { 
    808                                         linkgml($gkz, $rowan["s_gml"], "Buchungsstelle"); 
     802                                        linkgml($gkz, $rowan["s_gml"], "Buchungsstelle", "ax_buchungsstelle"); 
    809803                                        echo "<br>"; 
    810                                         linkgml($gkz, $rowan["g_gml"], "Buchungsblatt"); 
     804                                        linkgml($gkz, $rowan["g_gml"], "Buchungsblatt", ""); 
    811805                                } 
    812806                                echo "\n<br>"; 
     
    845839if ($bs == 0) { 
    846840        echo "\n<p class='err'>Keine Buchungstelle gefunden.</p>"; 
    847         linkgml($gkz, $gmlid, "Flurst&uuml;ck"); 
     841        linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); 
    848842} 
    849843pg_close($con); 
  • trunk/info/info/alkis/alkisgebaeudenw.php

    r315 r330  
    88        2013-04-08 deprecated "import_request_variables" ersetzt 
    99    2014-01-30 pg_free_result 
     10        2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     11        2014-09-10 Bei Relationen den Timestamp abschneiden 
    1012*/ 
    1113session_start(); 
     
    3941 
    4042// Flurstueck 
    41 $sqlf ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, f.zeitpunktderentstehung, g.gemarkungsnummer, g.bezeichnung "; 
    42 $sqlf.="FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    43 $sqlf.="WHERE f.gml_id= $1;"; 
     43$sqlf ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, f.zeitpunktderentstehung, g.gemarkungsnummer, g.bezeichnung  
     44FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     45WHERE f.gml_id= $1;"; 
    4446$v=array($gmlid); 
    4547$resf=pg_prepare("", $sqlf); 
     
    9395        echo "&amp;eig=n' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''></a>"; 
    9496echo "\n\t</p>"; 
    95 if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck"); } 
     97if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); } 
    9698echo "\n\t</td>\n</tr>\n</table>"; 
    9799// Ende Seitenkopf 
     
    107109$sqlg.="h.bauweise_beschreibung, u.bezeichner, g.zustand, z.bezeichner AS bzustand, "; 
    108110 
    109 // Gebaeudeflaeche komplett auch ausserhalb des FS 
     111// GEB-Flaeche komplett auch die Fl. ausserhalb des FS 
    110112$sqlg.="round(area(g.wkb_geometry)::numeric,2) AS gebflae, "; 
    111113 
     
    120122 
    121123// Entschluesseln 
    122 $sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id "; 
    123 $sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert "; 
    124 $sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand = z.wert "; 
     124$sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id "; 
     125$sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert "; 
     126$sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert "; 
    125127$sqlg.="WHERE f.gml_id= $1 "; // ID des akt. FS 
    126128 
    127 // "within" liefert nur Gebaeude, die komplett im Flurstueck liegen 
    128 // "intersects" liefert ueberlappende Flaechen 
     129// "within" -> nur Geb., die komplett im FS liegen 
     130// "intersects" -> ueberlappende Fl. 
    129131$sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true "; 
    130132 
    131 // RLP: keine Relationen zu Nebengebaeuden: 
     133// RLP: keine Relationen zu NebengebÀuden: 
    132134// auf Qualifizierung verzichten, sonst werden NebengebÀude nicht angezeigt 
    133135        //$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') "; 
     
    195197 
    196198                        echo "\n\t<td class='nwlink noprint'>"; 
    197  
    198199                        // 0 bis N Lagebezeichnungen mit Haus- oder Pseudo-Nummer, alle in ein TD zu EINEM GebÀude 
    199                         // HAUPTgebÀude 
    200                         $sqll ="SELECT 'm' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer "; 
    201                         $sqll.="FROM alkis_beziehungen v ";  
    202                         $sqll.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; 
     200 
     201                        // HAUPTgebÀude  Geb >zeigtAuf> lage (mehrere) 
     202                        $sqll ="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer "; 
     203                        $sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(g.zeigtauf) "; 
    203204                        $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    204                         $sqll.="WHERE v.beziehungsart = 'zeigtAuf' AND v.beziehung_von = $1 "; 
    205                         $sqll.="UNION "; 
    206                         // oder NEBENgebÀude 
    207                         $sqll.="SELECT 'p' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer "; 
    208                         $sqll.="FROM alkis_beziehungen v ";  
    209                         $sqll.="JOIN ax_lagebezeichnungmitpseudonummer l ON v.beziehung_zu=l.gml_id "; 
     205                        $sqll.="WHERE g.gml_id= $1 "; 
     206 
     207                        // oder NEBENgebÀude  Geb >hat> Pseudo 
     208                        $sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer "; 
     209                        $sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON substring(l.gml_id,1,16)=g.hat "; 
    210210                        $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    211                         $sqll.="WHERE v.beziehungsart = 'hat' AND v.beziehung_von = $1 "; // ID des Hauses" 
     211                        $sqll.="WHERE g.gml_id= $1 "; // ID des Hauses" 
    212212                 
    213                         $sqll.="ORDER BY bezeichnung, hausnummer "; 
    214                  
     213                        $sqll.="ORDER BY bezeichnung, hausnummer;"; 
     214 
    215215                        $v = array($ggml); 
    216216                        $resl = pg_prepare("", $sqll); 
     
    223223                                $ltyp=$rowl["ltyp"]; // Lagezeilen-Typ 
    224224                                $skey=$rowl["lage"]; // Str.-Schluessel 
    225                                 $snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); // -Name 
     225                                $snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); //-Name 
    226226                                $hsnr=$rowl["hausnummer"]; 
    227227                                $hlfd=$rowl["laufendenummer"]; 
    228                                 $gmllag=$rowl["beziehung_zu"]; 
     228                                $gmllag=$rowl["lgml"]; 
    229229                                if ($ltyp == "p") { 
    230230                                        $lagetitl="NebengebÀude - Pseudonummer"; 
    231231                                        $lagetxt="Nebengeb&auml;ude Nr. ".$hlfd; 
    232232                                } else { 
    233                                         $lagetitl="HauptgabÀude - Hausnummer"; 
     233                                        $lagetitl="HauptgebÀude - Hausnummer"; 
    234234                                        $lagetxt=$snam."&nbsp;".$hsnr; 
    235235                                } 
     
    240240                                        if ($showkey)   {echo "&amp;showkey=j";} 
    241241                                echo "'>".$lagetxt."</a>"; 
    242                                 if ($idanzeige) {linkgml($gkz, $gmllag, "Lage"); } 
     242                                if ($idanzeige) {linkgml($gkz, $gmllag, "Lage", ""); } 
    243243                                echo "<br>"; 
    244                         } // Ende Loop Lagezeilen m.H. 
     244                        } // Ende Loop Lage m.H. 
    245245            pg_free_result($resl); 
    246246                        echo "\n\t</td>"; 
     
    255255                echo "\n</tr>"; 
    256256        } 
    257 // Footer 
     257        // Footer 
    258258        if ($gebnr == 0) { 
    259259                echo "\n</table>"; 
  • trunk/info/info/alkis/alkishaus.php

    r315 r330  
    66        2011-11-30 NEU! Variante von alkisgebaeudenw: Aufruf fÃŒr EIN Haus, nicht fÃŒr ein FS 
    77        2011-01-31 ax_gebaeude.weiteregebaeudefunktion ist jetzt Array 
    8         2013-04-08  deprecated "import_request_variables" ersetzt 
     8        2013-04-08 deprecated "import_request_variables" ersetzt 
     9        2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     10        2014-09-10 Bei Relationen den Timestamp abschneiden 
    911 
    1012        ToDo: 
     
    5355$sqlg.="h.bauweise_beschreibung, u.bezeichner AS bfunk, z.bezeichner AS bzustand, "; 
    5456// "w.bezeichner AS bweitfunk, "; 
    55 $sqlg.="d.bezeichner AS bdach, round(area(g.wkb_geometry)::numeric,2) AS gebflae "; 
    56 $sqlg.="FROM ax_gebaeude g "; 
    57  
     57$sqlg.="d.bezeichner AS bdach, round(area(g.wkb_geometry)::numeric,2) AS gebflae FROM ax_gebaeude g "; 
    5858// Entschluesseln 
    59 $sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id "; 
    60 $sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert "; 
    61 $sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand = z.wert "; 
    62 $sqlg.="LEFT JOIN ax_gebaeude_dachform d ON g.dachform = d.wert "; 
    63  
    64 $sqlg.="WHERE g.gml_id= $1 "; // ID des Hauses 
     59$sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id "; 
     60$sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert "; 
     61$sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert "; 
     62$sqlg.="LEFT JOIN ax_gebaeude_dachform d ON g.dachform=d.wert "; 
     63 
     64$sqlg.="WHERE g.gml_id= $1 AND g.endet IS NULL ;"; 
    6565 
    6666$v = array($gmlid); 
     
    7373 
    7474// Balken 
    75 echo "<p class='geb'>ALKIS Haus ".$gmlid."&nbsp;</p>\n"; // +++ Kennzeichen = ? 
     75echo "<p class='geb'>ALKIS Haus ".$gmlid."&nbsp;</p>\n"; // ++ Kennzeichen? 
    7676 
    7777echo "\n<h2><img src='ico/Haus.ico' width='16' height='16' alt=''> Haus (Geb&auml;ude)</h2>\n"; 
     
    7979// Kennzeichen in Rahmen  
    8080// - Welches Kennzeichen zum Haus ? 
    81 if ($idanzeige) {linkgml($gkz, $gmlid, "Haus"); } 
     81if ($idanzeige) {linkgml($gkz, $gmlid, "Haus", "ax_gebaeude"); } 
    8282echo "\n<hr>"; 
    8383// Umschalter: auch leere Felder ausgeben? 
     
    9090echo "</a></p>"; 
    9191 
    92 while($rowg = pg_fetch_array($resg)) { // Als Schleife, kann aber nur EIN Haus sein. 
     92while($rowg = pg_fetch_array($resg)) { // Schleife, kann aber nur EIN Haus sein. 
    9393        $gebnr++; 
    9494        echo "\n<table class='geb'>"; 
     
    130130        // 0 bis N Lagebezeichnungen mit Haus- oder Pseudo-Nummer 
    131131        // HAUPTgebÀude 
    132         $sqll ="SELECT 'm' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer "; 
    133         $sqll.="FROM alkis_beziehungen v ";  
    134         $sqll.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; 
     132        $sqll ="SELECT 'm' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer "; 
     133        $sqll.="FROM ax_gebaeude g "; 
     134        $sqll.="JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(g.zeigtauf) "; 
    135135        $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    136         $sqll.="WHERE v.beziehungsart = 'zeigtAuf' AND v.beziehung_von = $1 "; 
     136        $sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL "; 
    137137        $sqll.="UNION "; 
    138138        // oder NEBENgebÀude 
    139         $sqll.="SELECT 'p' AS ltyp, v.beziehung_zu, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer "; 
    140         $sqll.="FROM alkis_beziehungen v ";  
    141         $sqll.="JOIN ax_lagebezeichnungmitpseudonummer l ON v.beziehung_zu=l.gml_id "; 
     139        $sqll.="SELECT 'p' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer "; 
     140        $sqll.="FROM ax_gebaeude g ";  
     141        $sqll.="JOIN ax_lagebezeichnungmitpseudonummer l ON substring(l.gml_id,1,16)=g.hat "; 
    142142        $sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    143         $sqll.="WHERE v.beziehungsart = 'hat' AND v.beziehung_von = $1 "; // ID des Hauses" 
    144  
    145         $sqll.="ORDER BY bezeichnung, hausnummer "; 
     143        $sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL "; 
     144 
     145        $sqll.="ORDER BY bezeichnung, hausnummer ;"; 
    146146 
    147147        $v = array($gmlid); 
     
    160160                $hsnr=$rowl["hausnummer"]; 
    161161                $hlfd=$rowl["laufendenummer"]; 
    162                 $gmllag=$rowl["beziehung_zu"]; 
     162                $gmllag=$rowl["gmllag"]; 
    163163 
    164164                        if ($zhsnr == 1) { 
     
    174174                                if ($ltyp == "p") { echo ", lfd.Nr ".$hlfd;} 
    175175                        echo "</a>"; 
    176                         if ($idanzeige) {linkgml($gkz, $gmllag, "Lage"); } 
     176                        if ($idanzeige) {linkgml($gkz, $gmllag, "Lage", ""); } 
    177177                        echo "<br>"; 
    178178        } // Ende Loop Lagezeilen m.H. 
  • trunk/info/info/alkis/alkisinlayausk.php

    r319 r330  
    1818        2014-01-28 Link zu alkisstrasse.php 
    1919        2014-02-06 pg_free_result 
     20        2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     21        2014-09-10 Bei Relationen den Timestamp abschneiden 
    2022*/ 
    2123session_start(); 
     
    5153// *** F L U R S T U E C K *** 
    5254$sql ="SELECT f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, g.gemarkungsnummer, g.bezeichnung "; 
    53 $sql.="FROM ax_flurstueck f LEFT JOIN ax_gemarkung  g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
     55$sql.="FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    5456$sql.="WHERE f.gml_id= $1 ;"; 
    5557// Weiter joinen: g.stelle -> ax_dienststelle "Katasteramt" 
     
    109111 
    110112// Lage MIT HausNr (Adresse) 
    111 $sql ="SELECT DISTINCT s.gml_id AS kgml, l.gml_id, s.bezeichnung, l.hausnummer "; 
    112 $sql.="FROM alkis_beziehungen v JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN 
    113 $sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    114 $sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart='weistAuf' "; // id FS"; 
    115 $sql.="ORDER BY s.bezeichnung, l.hausnummer;"; 
    116 $v=array($gmlid); 
     113$sql ="SELECT DISTINCT s.gml_id AS kgml, l.gml_id, s.bezeichnung, l.hausnummer  
     114FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(f.weistauf) 
     115JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
     116WHERE f.gml_id= $1 ORDER BY s.bezeichnung, l.hausnummer;"; 
     117 
     118$v=array($gmlid); // id FS 
    117119$res=pg_prepare("", $sql); 
    118120$res=pg_execute("", $v); 
     
    143145if ($j == 0) { // keine HsNr gefunden 
    144146        // Lage OHNE HausNr 
    145         $sql ="SELECT DISTINCT s.gml_id AS kgml, l.gml_id, s.bezeichnung, l.unverschluesselt "; 
    146         $sql.="FROM alkis_beziehungen v JOIN ax_lagebezeichnungohnehausnummer l ON v.beziehung_zu=l.gml_id "; 
    147         $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    148         $sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart='zeigtAuf' ORDER BY s.bezeichnung ;"; 
     147        $sql ="SELECT DISTINCT s.gml_id AS kgml, l.gml_id, s.bezeichnung, l.unverschluesselt  
     148        FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf) 
     149        LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
     150        WHERE f.gml_id= $1 ORDER BY s.bezeichnung;"; 
     151 
    149152        $v=array($gmlid); 
    150153        $res=pg_prepare("", $sql); 
     
    187190// *** G R U N D B U C H *** 
    188191echo "\n<h2><img src='ico/Grundbuch_zu.ico' width='16' height='16' alt=''> Grundbuch</h2>"; 
    189 // ALKIS: FS --> bfs --> GS --> bsb --> GB. 
    190 $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, "; 
    191 $sql.="s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, a.bezeichner AS bart "; 
    192 $sql.="FROM alkis_beziehungen bfs JOIN ax_buchungsstelle s ON bfs.beziehung_zu=s.gml_id "; 
    193 $sql.="JOIN alkis_beziehungen bsb ON s.gml_id=bsb.beziehung_von "; // Bez.Stelle-Blatt 
    194 $sql.="JOIN ax_buchungsblatt b ON bsb.beziehung_zu=b.gml_id "; 
    195 $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 
    196 $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert "; 
    197 $sql.="WHERE bfs.beziehung_von= $1 AND bfs.beziehungsart='istGebucht' AND bsb.beziehungsart='istBestandteilVon' "; 
    198 $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;"; 
     192// FS >istgebucht> GS >istbestandteilvon> GB. 
     193$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart,  
     194s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, a.bezeichner AS bart  
     195FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16)  
     196JOIN ax_buchungsblatt b ON s.istbestandteilvon=substring(b.gml_id,1,16) 
     197LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk  
     198LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart=a.wert  
     199WHERE f.gml_id= $1 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;"; 
     200 
    199201$v=array($gmlid); 
    200202$resg=pg_prepare("", $sql); 
     
    255257                        echo "\n<p class='err'>Keine Eigent&uuml;mer gefunden.</p>"; 
    256258                        echo "\n<p class='err'>Bezirk ".$rowg["bezirk"]." Blatt ".$rowg["blatt"]." Blattart ".$blattkey." (".$blattart.")</p>"; 
    257                         linkgml($gkz, $gmlid, "Buchungsblatt"); 
     259                        linkgml($gkz, $gmlid, "Buchungsblatt", ""); 
    258260                } 
    259261        } 
  • trunk/info/info/alkis/alkisinlaybaurecht.php

    r287 r330  
    99        2013-04-08  deprecated "import_request_variables" ersetzt 
    1010        2013-06-27      hiervon neue Variante alkisbaurecht (ohne "inlay"),  
    11                                         dafÃŒr hier die SchlÃŒssel ganz raus und FlurstÃŒcks-Verschneidung raus. 
     11                        dafÃŒr hier die SchlÃŒssel ganz raus und FlurstÃŒcks-Verschneidung raus. 
     12        2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     13        2014-09-10 Bei Relationen den Timestamp abschneiden 
    1214*/ 
    1315session_start(); 
     
    4244 
    4345// wie View "baurecht" 
    44 $sql ="SELECT r.ogc_fid, r.name, r.stelle, r.bezeichnung AS rechtbez, "; 
    45 $sql.="a.bezeichner  AS adfbez, d.bezeichnung AS stellbez, "; 
    46 $sql.="round(st_area(r.wkb_geometry)::numeric,0) AS flae "; 
    47 $sql.="FROM ax_bauraumoderbodenordnungsrecht r "; 
    48 $sql.="LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON r.artderfestlegung = a.wert "; 
    49 $sql.="LEFT JOIN ax_dienststelle d ON r.land = d.land AND r.stelle = d.stelle "; 
    50 $sql.="WHERE r.gml_id= $1 ;"; 
     46$sql ="SELECT r.ogc_fid, r.name, r.stelle, r.bezeichnung AS rechtbez, a.bezeichner  AS adfbez, d.bezeichnung AS stellbez, round(st_area(r.wkb_geometry)::numeric,0) AS flae  
     47FROM ax_bauraumoderbodenordnungsrecht r  
     48LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON r.artderfestlegung=a.wert  
     49LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle WHERE r.gml_id= $1 ;"; 
    5150 
    5251$v = array($gmlid); 
  • trunk/info/info/alkis/alkislage.php

    r306 r330  
    66 
    77        Version: 
    8         2013-03-06  Korrektur URL des Link im Abs. Lage bei eingeschalteten Test-Optionen 
    9         2013-04-08  deprecated "import_request_variables" ersetzt 
    10         2014-01-23      gml des Katalogs, Link auf Modul "strasse" 
     8        2013-03-06 Korrektur URL des Link im Abs. Lage bei eingeschalteten Test-Optionen 
     9        2013-04-08 deprecated "import_request_variables" ersetzt 
     10        2014-01-23 gml des Katalogs, Link auf Modul "strasse" 
     11        2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     12        2014-09-10 Bei Relationen den Timestamp abschneiden 
    1113 
    1214        ToDo: 
     
    1820if ($auth == "mapbender") {require_once($mapbender);} 
    1921include("alkisfkt.php"); 
     22 
    2023switch ($ltyp) { 
    2124        case "m": // "Mit HsNr"     = Hauptgebaeude 
     
    2932                $tnam = "ax_lagebezeichnungmithausnummer"; break; 
    3033} 
     34 
    3135if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;} 
    3236$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 
     
    6670        break; 
    6771} 
    68 $sql.="FROM ".$tnam." l "; // Left: Bei sub-Typ "Gewanne" von Typ "o" sind keine SchlÃŒsselfelder gefÃŒllt! 
    69 $sql.="LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde "; 
    70 $sql.="LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis "; 
    71 $sql.="LEFT JOIN ax_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk "; 
    72 $sql.="LEFT JOIN ax_bundesland b ON l.land=b.land "; 
    73 $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s "; 
    74 $sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "; 
    75 $sql.="WHERE l.gml_id= $1;"; 
     72// "Left" weil: Bei sub-Typ "Gewanne" von Typ "o" sind keine SchlÃŒsselfelder gefÃŒllt! 
     73$sql.="FROM ".$tnam." l  
     74LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde  
     75LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis  
     76LEFT JOIN ax_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk  
     77LEFT JOIN ax_bundesland b ON l.land=b.land  
     78LEFT JOIN ax_lagebezeichnungkatalogeintrag s  
     79ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
     80WHERE l.gml_id= $1;"; 
    7681 
    7782$v = array($gmlid); 
     
    214219 
    215220        // Kopf Rechts: weitere Daten? 
    216         if ($idanzeige) {linkgml($gkz, $gmlid, "Lage"); } 
     221        if ($idanzeige) {linkgml($gkz, $gmlid, "Lage", ""); } 
    217222 
    218223        if ($osub != "g") { // Link zu Strasse 
     
    235240        echo "\n<p>mit dieser Lagebezeichnung.</p>"; 
    236241        switch ($ltyp) { 
    237                 case "m": $bezart="weistAuf"; break; 
    238                 case "o": $bezart="zeigtAuf"; break; 
    239         } 
    240         $sql="SELECT g.gemarkungsnummer, g.bezeichnung, "; 
    241         $sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche "; 
     242                case "m": $bezart="weistauf"; break; 
     243                case "o": $bezart="zeigtauf"; break; 
     244        } 
     245 
     246        $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche "; 
    242247        $sql.="FROM ax_flurstueck f "; 
    243         $sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von ";  
    244248        $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    245         $sql.="WHERE v.beziehung_zu= $1 "; // id Lage 
    246         $sql.="AND v.beziehungsart= $2 "; 
     249        $sql.="WHERE $1 = ANY(f.".$bezart.")"; 
    247250        $sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
    248251 
    249         $v = array($gmlid,$bezart); 
     252        $v = array($gmlid); 
    250253        $resf = pg_prepare("", $sql); 
    251254        $resf = pg_execute("", $v); 
     
    275278                        echo "\n\t<td>".$flur."</td>"; 
    276279                        echo "\n\t<td><span class='wichtig'>".$fskenn."</span>"; 
    277                                 if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");} 
     280                                if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");} 
    278281                        echo "</td>"; 
    279282                        echo "\n\t<td class='fla'>".$flae."</td>"; 
     
    361364        echo "\n<p>mit dieser Lagebezeichnung.</p>"; 
    362365        switch ($ltyp) { 
    363                 case "p": $bezart="hat"; break; 
    364                 case "m": $bezart="zeigtAuf"; break; 
    365         } 
    366         $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, "; 
    367         $sql.="round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner "; 
    368         $sql.="FROM ax_gebaeude g "; 
    369         $sql.="JOIN alkis_beziehungen v ON g.gml_id=v.beziehung_von ";  
    370         $sql.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id "; 
    371         $sql.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert "; 
    372 // +++ JOIN Zustand 
    373         $sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart= $2 ;"; 
    374         $v = array($gmlid,$bezart); 
     366                case "p": $bezart="g.hat"; break; 
     367                case "m": $bezart="ANY(g.zeigtauf)"; break; // array 
     368        } 
     369        $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner  
     370        FROM ax_gebaeude g LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id  
     371        LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert "; 
     372        // +++ JOIN Zustand 
     373        $sql.="WHERE $1 = ".$bezart.";"; 
     374 
     375        $v = array($gmlid); 
    375376        $res = pg_prepare("", $sql); 
    376377        $res = pg_execute("", $v); 
    377378        if (!$res) { 
    378                 echo "<p class='err'>Fehler bei Gebaeude.</p>\n"; 
     379                echo "<p class='err'>Fehler bei Geb&auml;ude.</p>\n"; 
    379380                if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    380381        } 
     
    396397 
    397398                        echo "<td>"; 
    398                                 if ($idanzeige) {linkgml($gkz, $ggml, "Geb&auml;ude");} 
     399                                if ($idanzeige) {linkgml($gkz, $ggml, "Geb&auml;ude", "ax_gebaeude");} 
    399400                                // +++ Hausnummer / Adresse ??? 
    400401                        echo $row["name"]."</td>"; 
  • trunk/info/info/alkis/alkisnamstruk.php

    r315 r330  
    99        2013-11-22 Namensbestandteil ("von") in Kompakt-Adresse vor den Namen setzen 
    1010        2014-02-06 Redundante Adressen kommen vor. Nur eine davon anzeigen. 
     11        2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     12        2014-09-10 Bei Relationen den Timestamp abschneiden 
    1113 
    1214        ToDo: Sortierung der GrundbÃŒcher zum Namen 
     
    6062 
    6163if (!$res) {echo "\n<p class='err'>Fehler bei Zugriff auf Namensnummer</p>\n";} 
    62 if ($idanzeige) { linkgml($gkz, $gmlid, "Person"); } 
     64if ($idanzeige) { linkgml($gkz, $gmlid, "Person", "ax_person"); } 
    6365if ($row = pg_fetch_array($res)) { 
    6466        $vor=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 
     
    8486        // A d r e s s e 
    8587        echo "\n<h3><img src='ico/Strasse_mit_Haus.ico' width='16' height='16' alt=''> Adresse</h3>\n"; 
    86         $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland "; 
    87         $sqla.="FROM ax_anschrift a JOIN alkis_beziehungen b ON a.gml_id=b.beziehung_zu "; 
    88         $sqla.="WHERE b.beziehung_von= $1 AND b.beziehungsart='hat' "; 
    8988        // Es können redundante Adressen vorhanden sein, z.B. aus Migration, temporÀr aus LBESAS. Die letzte davon anzeigen. 
    90         $sqla.="ORDER BY a.gml_id DESC ;"; 
     89 
     90        $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland  
     91        FROM ax_anschrift a JOIN ax_person p ON substring(a.gml_id,1,16)=ANY(p.hat) WHERE p.gml_id= $1 ORDER BY a.gml_id DESC ;"; 
    9192 
    9293        $v = array($gmlid); 
     
    111112                        $hsnr=$rowa["hausnummer"]; 
    112113                        $land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8"); 
    113                         if ($idanzeige) { linkgml($gkz, $gmla, "Adresse"); } 
     114                        if ($idanzeige) { linkgml($gkz, $gmla, "Adresse", "ax_adresse"); } 
    114115 
    115116                        echo "<table>\n"; 
     
    150151        //                               >bestehtAusRechtsverhaeltnissenZu> namensnummer   (Nebenzweig/SonderfÀlle?) 
    151152 
    152         $sqlg ="SELECT n.gml_id AS gml_n, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, g.gml_id AS gml_g, "; 
    153         $sqlg.="g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung as nr, g.blattart, b.bezeichnung AS beznam "; 
    154         $sqlg.="FROM alkis_beziehungen bpn JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id "; 
    155         $sqlg.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von "; 
    156         $sqlg.="JOIN ax_buchungsblatt g ON bng.beziehung_zu=g.gml_id "; 
    157         $sqlg.="LEFT JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk "; 
    158         $sqlg.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' "; 
    159         $sqlg.="ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung;"; 
     153        $sqlg ="SELECT n.gml_id AS gml_n, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, g.gml_id AS gml_g, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung as nr, g.blattart, b.bezeichnung AS beznam  
     154        FROM ax_person p JOIN ax_namensnummer n ON substring(p.gml_id,1,16)=n.benennt JOIN ax_buchungsblatt g ON substring(g.gml_id,1,16)=n.istbestandteilvon  
     155        LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk  
     156        WHERE p.gml_id= $1 ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung;"; 
    160157        // buchungsblatt... mal mit und mal ohne fuehrende Nullen, bringt die Sortierung durcheinander 
    161158 
     
    208205                                echo "<span class='wichtig'>".$rowg["nr"]."</span>"; 
    209206                                if ($idanzeige) { 
    210                                         linkgml($gkz, $gmlg, "Grundbuchblatt"); 
     207                                        linkgml($gkz, $gmlg, "Grundbuchblatt", ""); 
    211208                                } 
    212209                        echo "</td>"; 
     
    219216                                } 
    220217                                if ($idanzeige) { 
    221                                         linkgml($gkz, $gmln, "Namensnummer");  
     218                                        linkgml($gkz, $gmln, "Namensnummer", "ax_namensnummer");  
    222219                                } 
    223220                        echo "</td>"; 
  • trunk/info/info/alkis/alkisrelationen.php

    r306 r330  
    1111        2011-11-30  import_request_variables 
    1212        2013-04-08  deprecated "import_request_variables" ersetzt 
     13        2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     14 
     15V o r l À u f i g   u n b e n u t z b a r  
     16 
     17Dies Modul nutzte die gml_ids in der zentralen Tabelle 'alkis_beziehungen' um dort ALLE Relationen zu finden. 
     18Mit Umstellung auf Relationen-Spalten in den Objekt-Tabellen ist das nicht mehr möglich. 
     19 
     20Neuentwicklung wahrscheimlich nicht sinnvoll. 
     21 
    1322*/ 
    1423session_start(); 
     
    4049} else { 
    4150        echo "\n\n<h3 title='Die gml_is ist global eindeutig'>ALKIS-".$otyp." mit gml_id = '".$gmlid."'</h3>"; 
    42         $sql="SELECT beziehungsart, beziehung_zu FROM alkis_beziehungen WHERE beziehung_von= $1;"; 
    43         $v = array($gmlid); 
    44         $res = pg_prepare("", $sql); 
    45         $res = pg_execute("", $v); 
     51 
     52        // Zerlegen 
     53        echo "<h4>Zerlegung des Kennzeichens</h4>"; 
     54        echo "<p>Land = '".substr($gmlid, 0, 2)."'</p>"; 
     55        echo "<p>Bundesland = '".substr($gmlid, 2, 2)."'</p>"; 
     56        echo "<p>Kreis = '".substr($gmlid, 4, 2)."'</p>"; 
     57        echo "<p>Konstante = '".substr($gmlid, 6, 6)."'</p>"; 
     58        echo "<p>Objekt-Nr = '".substr($gmlid, 12, 4)."'</p>"; 
     59        echo "<p>Zeitstempel = '".substr($gmlid, 16)."'</p>"; 
     60 
     61//      $sql="SELECT beziehungsart, beziehung_zu FROM alkis_beziehungen WHERE beziehung_von= $1;"; 
     62//      $v = array($gmlid); 
     63//      $res = pg_prepare("", $sql); 
     64//      $res = pg_execute("", $v); 
    4665 
    4766        echo "\n<table>"; 
     
    6483                } 
    6584        } 
     85 
     86/* 
    6687        $sql="SELECT beziehungsart, beziehung_von FROM alkis_beziehungen WHERE beziehung_zu= $1;"; 
    6788        $v = array($gmlid); 
     
    88109                } 
    89110        } 
     111*/ 
    90112        echo "\n</table>"; 
    91113} 
  • trunk/info/info/alkis/alkisstrasse.php

    r315 r330  
    99        2014-01-23 Neu 
    1010        2014-01-24 CSV-Export 
    11     2014-01-30 pg_free_result 
     11        2014-01-30 pg_free_result 
     12        2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     13        2014-09-10 Bei Relationen den Timestamp abschneiden 
    1214*/ 
    1315session_start(); 
     
    3133        <title>ALKIS Stra&szlig;e</title> 
    3234        <link rel="stylesheet" type="text/css" href="alkisauszug.css"> 
    33         <link rel="shortcut icon" type="image/x-icon" href="ico/Lage_an_Strasse.ico"> 
     35        <link rel="shortcut icon" type="image/x-icon" href="ico/Strassen.ico"> 
    3436        <script type="text/javascript"> 
    3537                function ALKISexport() { 
     
    4648if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n"; 
    4749 
    48 $sql ="SELECT s.land, s.regierungsbezirk, s.kreis, s.gemeinde, s.lage, s.bezeichnung AS snam, "; 
    49 $sql.="b.bezeichnung AS bnam, r.bezeichnung AS rnam, k.bezeichnung AS knam, g.bezeichnung AS gnam, o.gml_id AS ogml "; 
    50 $sql.="FROM ax_lagebezeichnungkatalogeintrag s JOIN ax_bundesland b ON s.land=b.land "; 
    51 $sql.="JOIN ax_regierungsbezirk r ON s.land=r.land AND s.regierungsbezirk=r.regierungsbezirk "; 
    52 $sql.="JOIN ax_kreisregion k ON s.land=k.land AND s.regierungsbezirk=k.regierungsbezirk AND s.kreis=k.kreis "; 
    53 $sql.="JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde "; 
    54 $sql.="LEFT JOIN ax_lagebezeichnungohnehausnummer o ON s.land=o.land AND s.regierungsbezirk=o.regierungsbezirk AND s.kreis=o.kreis AND s.gemeinde=o.gemeinde AND s.lage=o.lage "; 
    55 $sql.="WHERE s.gml_id= $1 ;";  
     50$sql ="SELECT s.land, s.regierungsbezirk, s.kreis, s.gemeinde, s.lage, s.bezeichnung AS snam,  
     51b.bezeichnung AS bnam, r.bezeichnung AS rnam, k.bezeichnung AS knam, g.bezeichnung AS gnam, o.gml_id AS ogml  
     52FROM ax_lagebezeichnungkatalogeintrag s JOIN ax_bundesland b ON s.land=b.land  
     53JOIN ax_regierungsbezirk r ON s.land=r.land AND s.regierungsbezirk=r.regierungsbezirk  
     54JOIN ax_kreisregion k ON s.land=k.land AND s.regierungsbezirk=k.regierungsbezirk AND s.kreis=k.kreis  
     55JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde  
     56LEFT JOIN ax_lagebezeichnungohnehausnummer o ON s.land=o.land AND s.regierungsbezirk=o.regierungsbezirk AND s.kreis=o.kreis AND s.gemeinde=o.gemeinde AND s.lage=o.lage  
     57WHERE s.gml_id= $1 ;";  
    5658 
    5759$v=array($gmlid); 
     
    131133echo "\n\n<a name='fs'></a><h3><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n"; 
    132134echo "\n<p>Zusammenfassung von 'Lage mit Hausnummer' und 'Lage ohne Hausnummer' an dieser Straße</p>"; 
     135 
    133136// ax_Flurstueck >weistAuf> ax_LagebezeichnungMitHausnummer  > = Hauptgebaeude  
    134137// ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer > = Strasse 
    135 $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, duett.lgml, duett.hausnummer FROM ax_flurstueck f "; 
    136 $sql.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    137 $sql.="JOIN (SELECT v1.beziehung_von AS fsgml, lm.gml_id AS lgml, lm.land, lm.regierungsbezirk, lm.kreis, lm.gemeinde, lm.lage, lm.hausnummer "; 
    138 $sql.="FROM alkis_beziehungen v1 JOIN ax_lagebezeichnungmithausnummer lm ON lm.gml_id=v1.beziehung_zu AND v1.beziehungsart= 'weistAuf' "; 
    139 $sql.="UNION SELECT v2.beziehung_von AS fsgml, '' AS lgml, lo.land, lo.regierungsbezirk, lo.kreis, lo.gemeinde, lo.lage, '' AS hausnummer "; 
    140 $sql.="FROM alkis_beziehungen v2 JOIN ax_lagebezeichnungohnehausnummer lo ON lo.gml_id=v2.beziehung_zu AND v2.beziehungsart= 'zeigtAuf' "; 
    141 $sql.=") AS duett ON f.gml_id=duett.fsgml ";  
    142 $sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON duett.land=s.land AND duett.regierungsbezirk=s.regierungsbezirk AND duett.kreis=s.kreis AND duett.gemeinde=s.gemeinde AND duett.lage=s.lage ";  
    143 $sql.="WHERE s.gml_id = $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     138// Suchkriterium: gml_id aus Katalog 
     139$subquery = "SELECT f1.gml_id AS fsgml, lm.gml_id AS lgml, lm.land, lm.regierungsbezirk, lm.kreis, lm.gemeinde, lm.lage, lm.hausnummer  
     140 FROM ax_flurstueck f1 JOIN ax_lagebezeichnungmithausnummer lm ON substring(lm.gml_id,1,16)=ANY(f1.weistAuf)  
     141UNION SELECT f2.gml_id AS fsgml, '' AS lgml, lo.land, lo.regierungsbezirk, lo.kreis, lo.gemeinde, lo.lage, '' AS hausnummer  
     142 FROM ax_flurstueck f2 JOIN ax_lagebezeichnungohnehausnummer lo ON substring(lo.gml_id,1,16)=ANY(f2.zeigtauf) "; 
     143 
     144$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, duett.lgml, duett.hausnummer  
     145 FROM ax_flurstueck f JOIN ( ".$subquery." ) AS duett ON substring(f.gml_id,1,16)=duett.fsgml  
     146 JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     147 JOIN ax_lagebezeichnungkatalogeintrag s ON duett.land=s.land AND duett.regierungsbezirk=s.regierungsbezirk AND duett.kreis=s.kreis AND duett.gemeinde=s.gemeinde AND duett.lage=s.lage  
     148WHERE s.gml_id = $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 
     149 
    144150$v=array($gmlid); 
    145151$resf=pg_prepare("", $sql); 
     
    173179                echo "\n\t<td>".$flur."</td>"; 
    174180                echo "\n\t<td><span class='wichtig'>".$fskenn."</span>"; 
    175                 if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");} 
     181                if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck", "ax_flurstueck");} 
    176182                echo "</td>"; 
    177183                echo "\n\t<td class='fla'>".$flae."</td>"; 
Note: See TracChangeset for help on using the changeset viewer.