Changeset 246 for trunk/info/info


Ignore:
Timestamp:
01/31/13 15:43:49 (11 years ago)
Author:
frank.jaeger
Message:

Auskunft Haus: weitere Gebäudefunktionen als Array abarbeiten

File:
1 edited

Legend:

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

    r198 r246  
    44 
    55        Version: 
    6         30.11.2011  NEU! Variante von alkisgebaeudenw: Aufruf für EIN Haus, nicht für ein FS 
     6        2011-11-30 NEU! Variante von alkisgebaeudenw: Aufruf fÃŒr EIN Haus, nicht fÃŒr ein FS 
     7        2011-01-31 ax_gebaeude.weiteregebaeudefunktion ist jetzt Array, JOIN mit any() 
    78 
    89        ToDo: 
    910        - sinnvolle Sortierung und Gruppierung der Felder 
    10         - ToDo: geometrische Suche nach Flurstücken, auf denen das Haus steht 
    11         - Template im WMS auf Ebene Gebäude hierhin verknüpfen. 
     11        - geometrische Suche nach FS, auf denen das Haus steht 
     12        - Template im WMS auf Ebene GebÀude hierhin verknÃŒpfen. 
    1213        - Auch diese Relationen abbilden: 
    13                 ax_gebaeude >gehoertZu> ax_gebaeude  (ringförmige Verbindung Gebäudekomplex) 
     14                ax_gebaeude >gehoertZu> ax_gebaeude  (ringförmige Verbindung GebÀudekomplex) 
    1415                ax_gebaeude (umschliesst) ax_bauteil 
    1516                ax_gebaeude >gehoert> ax_person  (Ausnahme) 
     
    4950$sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, g.anzahlderunterirdischengeschosse AS aug, "; 
    5051$sqlg.="g.lagezurerdoberflaeche, g.dachgeschossausbau, g.zustand, g.weiteregebaeudefunktion, g.dachform, g.hochhaus, g.objekthoehe, g.geschossflaeche, g.grundflaeche, g.umbauterraum, g.baujahr, g.dachart, g.qualitaetsangaben, "; 
    51 $sqlg.="h.bauweise_beschreibung, u.bezeichner AS bfunk, z.bezeichner AS bzustand, w.bezeichner AS bweitfunk, d.bezeichner AS bdach, "; 
    52 $sqlg.="round(area(g.wkb_geometry)::numeric,2) AS gebflae "; 
     52$sqlg.="h.bauweise_beschreibung, u.bezeichner AS bfunk, z.bezeichner AS bzustand, "; 
     53// "w.bezeichner AS bweitfunk, "; 
     54$sqlg.="d.bezeichner AS bdach, round(area(g.wkb_geometry)::numeric,2) AS gebflae "; 
    5355$sqlg.="FROM ax_gebaeude g "; 
    5456 
     
    5759$sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert "; 
    5860$sqlg.="LEFT JOIN ax_gebaeude_zustand z ON g.zustand = z.wert "; 
    59 $sqlg.="LEFT JOIN ax_gebaeude_weiterefunktion w ON g.weiteregebaeudefunktion = w.wert "; 
     61//$sqlg.="LEFT JOIN ax_gebaeude_weiterefunktion w ON g.weiteregebaeudefunktion = w.wert "; // Alt 
     62//$sqlg.="LEFT JOIN ax_gebaeude_weiterefunktion w ON g.weiteregebaeudefunktion = any(w.wert) "; // Vorschlag  
    6063$sqlg.="LEFT JOIN ax_gebaeude_dachform d ON g.dachform = d.wert "; 
    6164 
     
    99102        $aug=$rowg["aug"]; 
    100103        $hoh=$rowg["hochhaus"]; 
    101         $nam=$rowg["name"]; // Gebbaeude-Name 
     104        $nam=$rowg["name"]; // Gebaeude-Name 
    102105        $bfunk=$rowg["bfunk"]; 
    103106        $baw=$rowg["bauweise"]; 
     
    109112        $wgf=$rowg["weiteregebaeudefunktion"]; 
    110113        $daf=$rowg["dachform"]; 
    111         $weitfunk=$rowg["bweitfunk"]; 
     114//      $weitfunk=$rowg["bweitfunk"]; 
    112115        $dach=$rowg["bdach"]; 
    113116        $hho=$rowg["objekthoehe"]; 
     
    263266        if ($wgf != "" OR $allefelder) { 
    264267                echo "\n<tr>"; 
    265                         echo "\n\t<td title='\"Weitere Geb&auml;udefunktion\" ist die Funktion, die ein Geb&auml;ude neben der dominierenden Geb&auml;udefunktion hat.'>Weitere Geb&auml;udefunktion</td>"; 
    266                         echo "\n\t<td>"; 
    267                         if ($showkey) {echo "<span class='key'>".$wgf."</span>&nbsp;";} 
    268                         echo $weitfunk."</td>"; 
     268                        echo "\n\t<td title='\"Weitere Geb&auml;udefunktion\" ist die Funktion, die ein Geb&auml;ude neben der dominierenden Geb&auml;udefunktion hat.'>Weitere Geb&auml;udefunktionen</td>"; 
     269                        echo "\n\t<td>"; 
     270 
     271                        // weiteregebaeudefunktion ist jetzt ein Array 
     272                        $wgflist=trim($wgf, "{}"); // kommagetrennte(?) Liste der Schluesselwerte 
     273                        //$wgfarr=explode(",", $wgflist); 
     274                        //for each ... 
     275                        $sqlw.="SELECT wert, bezeichner FROM ax_gebaeude_weiterefunktion WHERE wert in ( $1 ) ORDER BY wert;"; 
     276                        $v = array($wgflist); 
     277                        $resw = pg_prepare("", $sqlw); 
     278                        $resw = pg_execute("", $v); 
     279                        if (!$resw) { 
     280                                echo "\n<p class='err'>Fehler bei Geb&auml;ude - weitere Funktion.</p>\n"; 
     281                                if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqlw."<br>$1 = Werteliste = '".$wgflist."'</p>";} 
     282                        } 
     283                        $zw=0; 
     284                        while($roww = pg_fetch_array($resw)) { // LOOP: w.Funktion 
     285                                $wwert=$roww["wert"]; 
     286                                $wbez=$roww["bezeichner"]; 
     287                                if ($zw > 0) {echo ", ";} // Liste oder Zeile? echo "<br>";  
     288                                if ($showkey) {echo "<span class='key'>".$wwert."</span>&nbsp;";} 
     289                                echo $wbez; 
     290                                $zw++; 
     291                   } 
     292                        echo "</td>"; 
    269293                echo "\n</tr>"; 
    270294        } 
Note: See TracChangeset for help on using the changeset viewer.