Ignore:
Timestamp:
11/09/18 14:17:35 (5 years ago)
Author:
frank.jaeger
Message:

Anpassung der ALKIS-Auskunft (PHP) an die Full-Schema-Version des ALKIS-Importers 3.0

File:
1 edited

Legend:

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

    r402 r412  
    1111        2017-10-09 Sauber filtern auf endet IS NULL 
    1212        2018-04-23 &nodebug 
     13        2018-11-09 Umstellung Full-Schema 
    1314 
    1415        ToDo: 
     
    5960 
    6061// G e b a e u d e 
    61  
     62// ... g.qualitaetsangaben,  
    6263$sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, g.anzahlderunterirdischengeschosse AS aug,  
    63 g.lagezurerdoberflaeche, g.dachgeschossausbau, g.zustand, array_to_string(g.weiteregebaeudefunktion, ',') AS wgf, g.dachform, g.hochhaus, g.objekthoehe, g.geschossflaeche, g.grundflaeche, g.umbauterraum, g.baujahr, g.dachart, g.qualitaetsangaben,  
    64 h.v AS bbauw, h.d AS dbauw, u.v AS bfunk, u.d AS dfunk, z.v AS zustandv, z.d AS zustandd, d.v AS bdach, a.v AS dgaus, o.v AS oflv, o.d AS ofld, 
     64g.lagezurerdoberflaeche, g.dachgeschossausbau, g.zustand, array_to_string(g.weiteregebaeudefunktion, ',') AS wgf, g.dachform, g.hochhaus, g.objekthoehe,  
     65g.geschossflaeche, g.grundflaeche, g.umbauterraum, g.baujahr, g.dachart,  
     66h.beschreibung AS bbauw, h.dokumentation AS dbauw, u.beschreibung AS bfunk, u.dokumentation AS dfunk, z.beschreibung AS zustandv, z.dokumentation AS zustandd, d.beschreibung AS bdach,  
     67a.beschreibung AS dgaus, o.beschreibung AS oflv, o.dokumentation AS ofld, 
    6568round(st_area(g.wkb_geometry)::numeric,2) AS gebflae 
    6669FROM ax_gebaeude g  
    67 LEFT JOIN alkis_wertearten h ON cast(g.bauweise AS character varying)=h.k AND h.element='ax_gebaeude' AND h.bezeichnung='bauweise' 
    68 LEFT JOIN alkis_wertearten u ON cast(g.gebaeudefunktion AS character varying)=u.k AND u.element='ax_gebaeude' AND u.bezeichnung='gebaeudefunktion' 
    69 LEFT JOIN alkis_wertearten z ON cast(g.zustand AS character varying)=z.k AND z.element='ax_gebaeude' AND z.bezeichnung='zustand' 
    70 LEFT JOIN alkis_wertearten d ON cast(g.dachform AS character varying)=d.k AND d.element='ax_gebaeude' AND d.bezeichnung='dachform' 
    71 LEFT JOIN alkis_wertearten a ON cast(g.dachgeschossausbau AS character varying)=a.k AND a.element='ax_gebaeude' AND a.bezeichnung='dachgeschossausbau' 
    72 LEFT JOIN alkis_wertearten o ON cast(g.lagezurerdoberflaeche AS character varying)=o.k AND o.element='ax_gebaeude' AND o.bezeichnung='lagezurerdoberflaeche' 
     70LEFT JOIN ax_bauweise_gebaeude h ON g.bauweise = h.wert 
     71LEFT JOIN ax_gebaeudefunktion u ON g.gebaeudefunktion = u.wert 
     72LEFT JOIN ax_zustand_gebaeude z ON g.zustand = z.wert 
     73LEFT JOIN ax_dachform d ON g.dachform = d.wert 
     74LEFT JOIN ax_dachgeschossausbau_gebaeude a ON g.dachgeschossausbau = a.wert 
     75LEFT JOIN ax_lagezurerdoberflaeche_gebaeude o ON g.lagezurerdoberflaeche = o.wert 
    7376WHERE g.gml_id= $1 AND g.endet IS NULL;"; 
    7477 
     
    149152        $bja=$rowg["baujahr"]; 
    150153        $daa=$rowg["dachart"]; 
    151         $qag=$rowg["qualitaetsangaben"]; 
     154//      $qag=$rowg["qualitaetsangaben"]; 
    152155 
    153156        if (($nam != "") OR $allefelder) { 
     
    287290        } 
    288291 
    289         // Dachgeschossausbau 
    290         // nichts dazu in alkis_wertearten.d 
     292        // Dachgeschossausbau, Spalte dokumentation ist immer leer 
    291293        if ($dga != "" OR $allefelder) { 
    292294                echo "\n<tr>" 
     
    316318 
    317319        // Weitere GebÀudefunktionen 
    318         // Suche Testfall: SELECT * FROM ax_gebaeude WHERE NOT weiteregebaeudefunktion IS NULL; 
    319         // Keiner zu finden. Das folgende ungetestet: 
    320         if ($wgf != "" OR $allefelder) { // "weiteregebaeudefunktion" ist ein Array 
     320        // Suche Testfall: SELECT gml_id, gebaeudefunktion, weiteregebaeudefunktion FROM ax_gebaeude WHERE (NOT weiteregebaeudefunktion IS NULL) AND cardinality(weiteregebaeudefunktion) > 1 liMIT 10; 
     321        if ($wgf != "" OR $allefelder) { // ... ist ein Array 
    321322                echo "\n<tr>" 
    322323                        ."\n\t<td class='li'>Weitere Geb&auml;udefunktionen</td>" 
    323324                        ."\n\t<td>"; 
    324325                        if ($wgf != "") { // Kommagetrennte Liste aus Array 
    325                                 $sqlw="SELECT k, v, d FROM alkis_wertearten WHERE k IN ( $1 ) AND element='ax_gebaeude' AND bezeichnung='weiteregebaeudefunktion' ORDER BY k;"; 
     326                                $sqlw="SELECT wert, beschreibung, dokumentation FROM ax_gebaeudefunktion WHERE wert IN ( $1 ) ORDER BY wert;"; 
    326327                                $v = array($wgf); 
    327328                                $resw = pg_prepare("", $sqlw); 
     
    332333                                } 
    333334                                $zw=0; 
    334                                 while($roww = pg_fetch_assoc($resw)) { // LOOP: w.Funktion 
     335                                while($roww = pg_fetch_assoc($resw)) { // LOOP Funktion 
    335336                                        if ($zw > 0) {echo "<br>";} 
    336                                         if ($showkey) {echo "<span class='key'>".$roww["k"]."</span>&nbsp;";} 
    337                                         echo "<span title='".$roww["d"]."'>".$roww["v"]."</span>"; 
     337                                        if ($showkey) {echo "<span class='key'>".$roww["wert"]."</span>&nbsp;";} 
     338                                        echo "<span title='".$roww["dokumentation"]."'>".$roww["beschreibung"]."</span>"; 
    338339                                        $zw++; 
    339340                           } 
     
    346347        } 
    347348 
    348         // Dachform 
    349         // nichts dazu in alkis_wertearten.d 
     349        // Dachform, Spalte dokumentation ist immer leer 
    350350        if ($daf != "" OR $allefelder) { 
    351351                echo "\n<tr>" 
     
    430430 
    431431        // QualitÀtsangaben 
    432         if ($qag != "" OR $allefelder) { 
     432/*      if ($qag != "" OR $allefelder) { 
    433433                echo "\n<tr>" 
    434434                        ."\n\t<td class='li'>Qualit&auml;tsangaben</td>" 
     
    438438                        ."\n\t</td>" 
    439439                ."\n</tr>"; 
    440         } 
     440        } */ 
    441441        echo "\n</table>"; 
    442442} 
    443443if ($gebnr == 0) {echo "\n<p class='err'><br>Kein Geb&auml;ude gefunden<br>&nbsp;</p>";} 
    444444 
    445 // ++ ToDo: Verschnitt mit FS? 
    446  
     445// ++ ToDo:  -Verschnitt mit FS?  -Ausgeben ax_georeferenziertegebaeudeadresse dazz, wenn gefÃŒllt. 
    447446?> 
    448447 
Note: See TracChangeset for help on using the changeset viewer.