Ignore:
Timestamp:
02/24/22 16:24:19 (2 years ago)
Author:
frank.jaeger
Message:

Überarbeitung der Auskunft: Durch Functions den Code verdichtet. Drei neue Arten von Bauwerken.

File:
1 edited

Legend:

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

    r425 r427  
    11<?php 
    2 /*      alkisbauwerk.php - Bauwerksdaten 
    3         ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo). 
    4  
    5         1 Bauwerk im Verkehrsbereich 
    6         2 Bauwerk im GewÀsserbereich 
    7         3 Sonstiges Bauwerk oder sonstige Einrichtung 51009 
    8         4 Bauwerk oder Anlage fÃŒr Industrie und Gewerbe 51002 
    9         5 Bauwerk oder Anlage fÃŒr Sport, Freizeit und Erholung 51006 
    10         6 Leitung 51005 
    11         7 Transportanlage 51004 
    12         8 Turm 51001 
    13         9 VorratsbehÀlter, Speicherbauwerk 51003 
     2/*      alkisbauwerk.php 
     3 
     4        ALKIS-Buchauskunft 
     5        Author: Frank JÀger, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo) 
     6  
     7        Bauwerksdaten 
     8 
     9        Typen von Bauwerken (jeweils eigene Tabellen mit unterschiedlicher Struktur): 
     10         1 Bauwerk im Verkehrsbereich 
     11         2 Bauwerk im GewÀsserbereich 
     12         3 Sonstiges Bauwerk oder sonstige Einrichtung 51009 
     13         4 Bauwerk oder Anlage fÃŒr Industrie und Gewerbe 51002 
     14         5 Bauwerk oder Anlage fÃŒr Sport, Freizeit und Erholung 51006 
     15         6 Leitung 51005 
     16         7 Transportanlage 51004 
     17         8 Turm 51001 
     18         9 VorratsbehÀlter, Speicherbauwerk 51003 
     19        10 Historisches Bauwerk oder historische Einrichtung 51007 
     20        11 Heilquelle, Gasquelle 51008  
     21        12 Einrichtung in öffentlichen Bereichen 51010 
     22        (13 Besonderer Bauwerkspunkt 51011) fehlt noch 
    1423 
    1524        Version: 
    1625        2021-03-11 Neues Modul 
    17         2021-03-17 Korrekturen 
    18         2021-12-09 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche). Debugging verbessert. 
     26        2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche). Debugging verbessert. 
     27        2022-01-13 Neue Functions LnkStf(), DsKy() 
     28        2022-02-23 Neue Bauwerks-Typen 10-12 
    1929 
    2030ToDo: 
    21         - Icon fÃŒr "Bauwerk" machen! ggf. einzeln fÃŒr jede der 9 Arten? 
    22         - 4 weitere Objektarten, bisher nicht verwendet: 
    23         51007 'Historisches Bauwerk oder historische Einrichtung' 
    24         51008 'Heilquelle, Gasquelle' 
    25         51010 'Einrichtung in öffentlichen Bereichen' 
    26         51011 'Besonderer Bauwerkspunkt' 
     31        - Vom Bauwerk ÃŒberlagerte FlurstÃŒcke ÃŒber geom. Verschneidung ermitteln und verlinken. 
     32        - Icon fÃŒr "Bauwerk" machen! Ggf. einzeln fÃŒr jede Art? 
    2733*/ 
    2834 
    29 // Bauwerk (bw) gehört zu (gz) Lage 
    30 // Ein Bauwerk "gehört zu" (Relation) einem GebÀude. Zu diesem GebÀude die Adresse(n) als Tabellen-Zeile ausgeben 
     35// Ein Bauwerk (bw_) "gehört zu" (_gz_) (Relation) einem GebÀude. Zu diesem GebÀude die Lage-Zeilen als Tabellen ausgeben 
    3136function bw_gz_lage($gmlgz) { 
    32         global $gkz, $dbg, $showkey; 
    33          
     37        global $gkz, $dbg; 
    3438        // HAUPTgebÀude  Geb >zeigtAuf> lage (mehrere) 
    3539        $sqlgz ="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer, p.bezeichnung as gemeinde " 
     
    3842        ."JOIN ax_gemeinde p ON s.land=p.land AND s.regierungsbezirk=p.regierungsbezirk AND s.kreis=p.kreis AND s.gemeinde=p.gemeinde ".UnqKatAmt("s","p") 
    3943        ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; 
    40  
    41         // ++ evtl. keine NEBEN-GebÀude möglich, nur Haupt-? 
    4244        // UNION - oder NEBENgebÀude  Geb >hat> Pseudo 
    4345        $sqlgz.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer, p.bezeichnung as gemeinde " 
     
    4547        ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 
    4648        ."JOIN ax_gemeinde p ON s.land=p.land AND s.regierungsbezirk=p.regierungsbezirk AND s.kreis=p.kreis AND s.gemeinde=p.gemeinde ".UnqKatAmt("s","p")       
    47         ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL " // ID des Hauses" 
    48         ."ORDER BY bezeichnung, hausnummer, laufendenummer;"; 
     49        ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; 
     50 
     51        $sqlgz.="ORDER BY bezeichnung, hausnummer, laufendenummer;"; 
    4952        $v = array($gmlgz); 
    5053        $resgz = pg_prepare("", $sqlgz); 
     
    5255        if (!$resgz) { 
    5356                echo "\n<p class='err'>Fehler bei Lage mit HsNr. zum Bauwerk</p>"; 
    54                 if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlgz."'", $sqlgz)."</p>";} 
    55                 if ($dbg > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resgz)."</p>";} 
     57                if ($dbg > 1) { 
     58                        echo "<p class='dbg'>Fehler:".pg_result_error($resgz)."</p>"; 
     59                        if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlgz."'", $sqlgz)."</p>";} 
     60                } 
    5661        } else { 
    57                 echo "\n<tr>"; 
    58                 echo "\n\t<td class='li'>Lage</td>"; 
    59                 echo "\n\t<td class='fett'>"; 
     62                $erst=true; 
    6063                while($rowgz = pg_fetch_assoc($resgz)) { // LOOP: Lagezeilen 
     64                        if ($erst) { 
     65                                echo "\n<tr>\n\t<td class='li'>Lage</td>"; 
     66                                $erst=false; 
     67                        } else { 
     68                                echo "\n<tr>\n\t<td class='li'>&nbsp;</td>"; 
     69                        } 
    6170                        $ltyp=$rowgz["ltyp"]; 
    6271                        $skey=$rowgz["lage"]; 
     
    6574                        $hlfd=$rowgz["laufendenummer"]; 
    6675                        $gmllag=$rowgz["lgml"]; 
    67                         $gemeinde=$rowgz["gemeinde"]; 
    68  
     76                        $gemeinde=htmlentities($rowgz["gemeinde"], ENT_QUOTES, "UTF-8"); 
    6977                        if ($ltyp === "p") { 
    70                                 $lagetitl="NebengebÀude Nr. ".$hlfd; 
     78                                $lagetitl="Nebengeb&auml;ude Nr. ".$hlfd; 
    7179                                $lagetxt=$snam." ".$hsnr." (".$hlfd."), ".$gemeinde; 
    7280                        } else { 
    73                                 $lagetitl="HauptgebÀude - Hausnummer ".$hsnr; 
     81                                $lagetitl="HauptgebÀude - HsNr. ".$hsnr; 
    7482                                $lagetxt=$snam." ".$hsnr.", ".$gemeinde; 
    7583                        } 
    76  
    77                         echo "\n\t\t<a title='".$lagetitl."' href='alkislage.php?gkz=".$gkz."&amp;gmlid=".$gmllag."&amp;ltyp=".$ltyp; 
    78                                 if ($showkey) {echo "&amp;showkey=j";} 
    79                                 echo "'>"; 
    80                                 if ($showkey) {echo "<span class='key'>(".$skey.")</span>&nbsp;";} 
    81                         echo $lagetxt."&nbsp;<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>&nbsp;"; 
    82                 } 
    83                 echo "</td>"; 
    84                 echo "\n\t<td>"; 
    85                 echo "\n\t\t<p class='erkli'>Das Haus hat die Adresse ".$lagetitl."</p>"; 
    86                 echo "\n\t</td>\n</tr>"; 
     84                        echo "\n\t<td class='adrlink'><a title='".$lagetitl."' href='alkislage.php?gkz=".$gkz."&amp;gmlid=".$gmllag."&amp;ltyp=".$ltyp.LnkStf()."'>" 
     85                        .DsKy($skey, 'Stra&szlig;en-*').$lagetxt."&nbsp;<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>&nbsp;"; 
     86                        echo "</td>\n\t<td><p class='erkli'>Adresse: ".$lagetitl."</p></td>\n</tr>"; 
     87                } 
    8788                pg_free_result($resgz); 
    8889        } 
     
    119120                        $titel='Bezeichnung'; 
    120121                break;   
    121         // 1 Verk. 
    122                 case 'durchfahrtshoehe': 
     122                case 'durchfahrtshoehe': // 1 
    123123                        $titel='Durchfahrtsh&ouml;he'; 
    124124                        $einh=' m'; 
    125125                break;   
    126         // 6 Leitung 
    127                 case 'spannungsebene': 
     126                case 'spannungsebene': // 6 
    128127                        $titel='Spannungsebene'; 
    129128                        $einh=' KV'; 
    130129                break; 
    131         // 7 Transport 
    132                 case 'produkt': 
     130                case 'produkt': // 7 
    133131                        $titel='Produkt'; 
    134132                break; 
    135         // Fehler 
     133                case 'kilometerangabe': // 12 
     134                        $titel='Kilometerangabe'; 
     135                        $einh=' KM'; 
     136                break; 
    136137                default: // noch nicht berÃŒcksichtigt 
    137138                        if ($dbg > 1) {echo "<p class='dbg'>Der Feldname ".$col." ist in function zusatz_spalte noch nicht ber&uuml;cksichtigt.</p>";} 
    138139                        $titel=$col; 
    139140        } 
    140  
    141141        if ($inhalt != '') {$inhalt.=$einh;} 
    142142        tab_zeile($titel, '', $inhalt, '', ''); 
     
    156156//      if ($dbg > 1) {echo "<p>Verweis Typ '".$col."' auf Objekt(e): '".$inhalt."'.</p>";} 
    157157        switch ($col) { 
    158                 case 'hatdirektunten': // [] ++ Wie kann man dies Objekt finden? 
     158                case 'hatdirektunten': // [] In welcher Tabelle kann man dies Objekt finden? 
    159159                        $olist=''; 
    160160                        $arrhdu=explode(",", trim($inhalt, "{}")); 
     
    167167                                verweis_zeile('Haus', '', 'Das Bauwerk geh&ouml;rt zum Haus'); 
    168168                        } else { 
    169                                 $link="\n\t\t<a title='geh&ouml;rt zu' href='alkishaus.php?gkz=".$gkz."&amp;gmlid=".$inhalt; 
    170                                 if ($showkey) {$link.="&amp;showkey=j";} 
    171                                 $link.="'>Haus&nbsp;<img src='ico/Haus.png' width='16' height='16' alt=''></a>"; 
     169                                $link="\n\t\t<a title='geh&ouml;rt zu' href='alkishaus.php?gkz=".$gkz."&amp;gmlid=".$inhalt.LnkStf() 
     170                                ."'>Haus&nbsp;<img src='ico/Haus.png' width='16' height='16' alt=''></a>"; 
    172171                                verweis_zeile('Haus', $link, 'Das Bauwerk geh&ouml;rt zum Haus'); 
    173172                                bw_gz_lage($inhalt);                             
     
    182181 
    183182// S T A R T 
    184  
    185183ini_set("session.cookie_httponly", 1); 
    186184session_start(); 
     
    199197        die("Fehlender Parameter"); 
    200198} 
    201 if (!preg_match('#^[1-9]{1}$#', $btyp)) {die("Eingabefehler btyp");} // Bauwerks-Typ = Tabelle 
     199if (!preg_match('#^[0-9]{1,2}$#', $btyp)) {die("Eingabefehler btyp");} // Bauwerks-Typ = Tabelle 
    202200if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 
    203201if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 
     
    224222 
    225223$erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 
    226 $dbg=$debug; // CONF in Arbeits-Variable 
    227 if ($nodebug === "j") {$dbg=0;} // Entwicklungsumgebung temporÀr ausschalten 
     224$dbg=$debug; 
     225if ($nodebug === "j") {$dbg=0;} 
    228226 
    229227$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbauwerk.php'"); 
    230228if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>\n"; 
    231229 
    232 // Konstanten fÃŒr Sortierung und Gruppierung 
     230// Konstanten fÃŒr Sortierung und Gruppierung nach Bauwerks-Typen 
    233231$btyp_verkehr=1; $btyp_gewaesser=2; $btyp_sonst=3; $btyp_indu=4; $btyp_sport=5; 
    234232$btyp_leitg=6; $btyp_trans=7; $btyp_turm=8; $btyp_vorrat=9; 
     233$btyp_hist=10; $btyp_heil=11; $btyp_oeff=12; $btyp_bpkt=13; 
    235234 
    236235/* in ALLEN Bauwerks-Typen folgende Spalten, bisher NICHT verwendet: 
     
    244243        3. sqlz: ZusÀtzliche Spalten, individuell je Objektart (einfache Werte-Darstellung) 
    245244        4. sqlr: Relationen zu anderen Objektarten */ 
     245$WH=" WHERE b".$btyp.".gml_id = $1 AND b".$btyp.".endet IS NULL;"; // WHERE-Clause (mehrfach je Typ verwendet) 
    246246switch ($btyp) { 
    247          
     247 
    248248case $btyp_verkehr:     // 1 - V e r k e h r 
     249        $FR=" FROM ax_bauwerkimverkehrsbereich b1 "; // FROM-Clause (mehrfach je Typ verwendet) 
    249250        $btyptitle='Bauwerk im Verkehrsbereich'; 
    250         $sqlb="SELECT b1.bauwerksfunktion, k1.beschreibung, k1.dokumentation, b1.name, b1.statement, GeometryType(b1.wkb_geometry) as bgeotyp, round(st_area(b1.wkb_geometry)::numeric,2) AS flae 
    251  FROM ax_bauwerkimverkehrsbereich b1 LEFT JOIN ax_bauwerksfunktion_bauwerkimverkehrsbereich k1 ON b1.bauwerksfunktion=k1.wert  
    252  WHERE b1.gml_id = $1 AND b1.endet IS NULL;"; 
    253         $sqlk="SELECT b1.zustand, k1.beschreibung, k1.dokumentation 
    254  FROM ax_bauwerkimverkehrsbereich b1 LEFT JOIN ax_zustand_bauwerkimverkehrsbereich k1 ON b1.zustand=k1.wert  
    255  WHERE b1.gml_id = $1 AND b1.endet IS NULL;"; 
    256         $sqlz="SELECT b1.bezeichnung, b1.breitedesobjekts, b1.durchfahrtshoehe FROM ax_bauwerkimverkehrsbereich b1 WHERE b1.gml_id = $1 AND b1.endet IS NULL;"; 
    257         $sqlr="SELECT b1.hatdirektunten FROM ax_bauwerkimverkehrsbereich b1 WHERE b1.gml_id = $1 AND b1.endet IS NULL;"; 
     251        $sqlb="SELECT b1.bauwerksfunktion, k1.beschreibung, k1.dokumentation, b1.name, b1.statement, GeometryType(b1.wkb_geometry) as bgeotyp, round(st_area(b1.wkb_geometry)::numeric,2) AS flae" 
     252        .$FR."LEFT JOIN ax_bauwerksfunktion_bauwerkimverkehrsbereich k1 ON b1.bauwerksfunktion=k1.wert".$WH; 
     253        $sqlk="SELECT b1.zustand, k1.beschreibung, k1.dokumentation".$FR."LEFT JOIN ax_zustand_bauwerkimverkehrsbereich k1 ON b1.zustand=k1.wert".$WH; 
     254        $sqlz="SELECT b1.bezeichnung, b1.breitedesobjekts, b1.durchfahrtshoehe".$FR.$WH; 
     255        $sqlr="SELECT b1.hatdirektunten".$FR.$WH; 
    258256break; 
    259257 
    260258case $btyp_gewaesser:   // 2 - G e w À s s e r 
     259        $FR=" FROM ax_bauwerkimgewaesserbereich b2 "; 
    261260        $btyptitle='Bauwerk im GewÀsserbereich'; 
    262         $sqlb="SELECT b2.bauwerksfunktion, ug.beschreibung, ug.dokumentation, b2.name, b2.statement, GeometryType(b2.wkb_geometry) as bgeotyp, round(st_area(b2.wkb_geometry)::numeric,2) AS flae 
    263  FROM ax_bauwerkimgewaesserbereich b2 LEFT JOIN ax_bauwerksfunktion_bauwerkimgewaesserbereich ug ON b2.bauwerksfunktion=ug.wert  
    264  WHERE b2.gml_id = $1 AND b2.endet IS NULL;"; 
    265         $sqlk="SELECT b2.zustand, k2.beschreibung, k2.dokumentation 
    266  FROM ax_bauwerkimgewaesserbereich b2 LEFT JOIN ax_zustand_bauwerkimgewaesserbereich k2 ON b2.zustand=k2.wert  
    267  WHERE b2.gml_id = $1 AND b2.endet IS NULL;"; 
    268         $sqlz="SELECT b2.bezeichnung FROM ax_bauwerkimgewaesserbereich b2 WHERE b2.gml_id = $1 AND b2.endet IS NULL;"; 
    269         $sqlr="SELECT b2.hatdirektunten FROM ax_bauwerkimgewaesserbereich b2 WHERE b2.gml_id = $1 AND b2.endet IS NULL;"; 
     261        $sqlb="SELECT b2.bauwerksfunktion, ug.beschreibung, ug.dokumentation, b2.name, b2.statement, GeometryType(b2.wkb_geometry) as bgeotyp, round(st_area(b2.wkb_geometry)::numeric,2) AS flae" 
     262        .$FR."LEFT JOIN ax_bauwerksfunktion_bauwerkimgewaesserbereich ug ON b2.bauwerksfunktion=ug.wert".$WH; 
     263        $sqlk="SELECT b2.zustand, k2.beschreibung, k2.dokumentation".$FR."LEFT JOIN ax_zustand_bauwerkimgewaesserbereich k2 ON b2.zustand=k2.wert".$WH; 
     264        $sqlz="SELECT b2.bezeichnung".$FR.$WH; 
     265        $sqlr="SELECT b2.hatdirektunten".$FR.$WH; 
    270266break; 
    271267 
    272268case $btyp_sonst:       // 3 - S o n s t i g e  Bauwerke 
     269        $FR=" FROM ax_sonstigesbauwerkodersonstigeeinrichtung b3 "; 
    273270        $btyptitle='Sonstiges Bauwerk oder sonstige Einrichtung'; 
    274         $sqlb="SELECT b3.bauwerksfunktion, k3.beschreibung, k3.dokumentation, b3.name, b3.statement, 
    275  GeometryType(b3.wkb_geometry) as bgeotyp, round(st_area(b3.wkb_geometry)::numeric,2) AS flae 
    276  FROM ax_sonstigesbauwerkodersonstigeeinrichtung b3 LEFT JOIN ax_bauwerksfunktion_sonstigesbauwerkodersonstigeeinrichtun k3 ON b3.bauwerksfunktion=k3.wert  
    277  WHERE b3.gml_id = $1 AND b3.endet IS NULL;"; 
    278         $sqlk="SELECT b3.funktion, k3.beschreibung AS beschr, k3.dokumentation AS doku, b3.hydrologischesmerkmal, hm.beschreibung AS hmbeschr, hm.dokumentation AS hmdoku 
    279  FROM ax_sonstigesbauwerkodersonstigeeinrichtung b3  
    280  LEFT JOIN ax_funktion_bauwerk k3 ON b3.funktion=k3.wert  
    281  LEFT JOIN ax_hydrologischesmerkmal_sonstigesbauwerkodersonstigeeinri hm ON b3.hydrologischesmerkmal=hm.wert  
    282  WHERE b3.gml_id = $1 AND b3.endet IS NULL;"; 
    283         $sqlz="SELECT b3.bezeichnung, b3.objekthoehe FROM ax_sonstigesbauwerkodersonstigeeinrichtung b3 WHERE b3.gml_id = $1 AND b3.endet IS NULL;"; 
    284         $sqlr="SELECT b3.hatdirektunten, b3.gehoertzu FROM ax_sonstigesbauwerkodersonstigeeinrichtung b3 WHERE b3.gml_id = $1 AND b3.endet IS NULL;"; 
    285          
    286 /*  gehoertzubauwerk_ax_sonstigesbauwerkodersonstigeeinrichtun  
    287     gehoertzubauwerk_ax_bauwerkoderanlagefuersportfreizeitunde  
    288     gehoertzubauwerk_ax_leitung  
    289     gehoertzubauwerk_ax_bauwerkoderanlagefuerindustrieundgewer  
    290     gehoertzubauwerk_ax_einrichtunginoeffentlichenbereichen  
    291     gehoertzubauwerk_ax_heilquellegasquelle  
    292     gehoertzubauwerk_ax_historischesbauwerkoderhistorischeeinr  
    293     gehoertzubauwerk_ax_turm  
    294     gehoertzubauwerk_ax_vorratsbehaelterspeicherbauwerk  
    295     gehoertzubauwerk_ax_transportanlage  
    296     gehoertzubauwerk_ax_wegpfadsteig  
    297     gehoertzubauwerk_ax_gleis  
    298     gehoertzubauwerk_ax_bahnverkehrsanlage  
    299     gehoertzubauwerk_ax_bauwerkimgewaesserbereich  
    300     gehoertzubauwerk_ax_strassenverkehrsanlage  
    301     gehoertzubauwerk_ax_seilbahnschwebebahn  
    302     gehoertzubauwerk_ax_einrichtungenfuerdenschiffsverkehr  
    303     gehoertzubauwerk_ax_bauwerkimverkehrsbereich  
    304     gehoertzubauwerk_ax_flugverkehrsanlage  
    305     gehoertzubauwerk_ax_gewaesserstationierungsachse  
    306     gehoertzubauwerk_ax_sickerstrecke  
    307     gehoertzubauwerk_ax_schifffahrtsliniefaehrverkehr  
    308     gehoertzubauwerk_ax_wasserspiegelhoehe  
    309     gehoertzubauwerk_ax_abschnitt  
    310     gehoertzubauwerk_ax_ast  
    311     gehoertzubauwerk_ax_netzknoten  
    312     gehoertzubauwerk_ax_nullpunkt  
    313     gehoertzubauwerk_ax_hafen  
    314     gehoertzubauwerk_ax_testgelaende  
    315     gehoertzubauwerk_ax_schleuse  
    316     gehoertzubauwerk_ax_ortslage  
    317     gehoertzubauwerk_ax_grenzuebergang  
    318     gehoertzubauwerk_ax_polder  
    319     gehoertzubauwerk_ax_gewaessermerkmal  
    320     gehoertzubauwerk_ax_untergeordnetesgewaesser  
    321     gehoertzubauwerk_ax_vegetationsmerkmal */  
     271        $sqlb="SELECT b3.bauwerksfunktion, k3.beschreibung, k3.dokumentation, b3.name, b3.statement, GeometryType(b3.wkb_geometry) as bgeotyp, round(st_area(b3.wkb_geometry)::numeric,2) AS flae" 
     272        .$FR."LEFT JOIN ax_bauwerksfunktion_sonstigesbauwerkodersonstigeeinrichtun k3 ON b3.bauwerksfunktion=k3.wert".$WH; 
     273        $sqlk="SELECT b3.funktion, k3.beschreibung, k3.dokumentation, b3.hydrologischesmerkmal, hm.beschreibung AS hmbeschr, hm.dokumentation AS hmdoku" 
     274        .$FR."LEFT JOIN ax_funktion_bauwerk k3 ON b3.funktion=k3.wert " 
     275        ." LEFT JOIN ax_hydrologischesmerkmal_sonstigesbauwerkodersonstigeeinri hm ON b3.hydrologischesmerkmal=hm.wert".$WH; 
     276        $sqlz="SELECT b3.bezeichnung, b3.objekthoehe".$FR.$WH; 
     277        $sqlr="SELECT b3.hatdirektunten, b3.gehoertzu".$FR.$WH; 
    322278break; 
    323279 
    324280case $btyp_indu:        // 4 - Bauwerk oder Anlage fÃŒr  I n d u s t r i e  und Gewerbe 
     281        $FR=" FROM ax_bauwerkoderanlagefuerindustrieundgewerbe b4 "; 
    325282        $btyptitle="Bauwerk oder Anlage fÃŒr Industrie und Gewerbe"; 
    326         $sqlb="SELECT b4.bauwerksfunktion, k4.beschreibung, k4.dokumentation, b4.name, b4.statement, GeometryType(b4.wkb_geometry) as bgeotyp, round(st_area(b4.wkb_geometry)::numeric,2) AS flae 
    327  FROM ax_bauwerkoderanlagefuerindustrieundgewerbe b4 LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuerindustrieundgewer k4 ON b4.bauwerksfunktion=k4.wert  
    328  WHERE b4.gml_id = $1 AND b4.endet IS NULL;"; 
    329         $sqlk="SELECT b4.zustand, k4.beschreibung, k4.dokumentation 
    330  FROM ax_bauwerkoderanlagefuerindustrieundgewerbe b4 LEFT JOIN ax_zustand_bauwerkoderanlagefuerindustrieundgewerbe k4 ON b4.zustand=k4.wert  
    331  WHERE b4.gml_id = $1 AND b4.endet IS NULL;"; 
    332         $sqlz="SELECT b4.bezeichnung, b4.objekthoehe FROM ax_bauwerkoderanlagefuerindustrieundgewerbe b4 WHERE b4.gml_id = $1 AND b4.endet IS NULL;"; 
    333         $sqlr="SELECT b4.hatdirektunten FROM ax_bauwerkoderanlagefuerindustrieundgewerbe b4 WHERE b4.gml_id = $1 AND b4.endet IS NULL;"; 
     283        $sqlb="SELECT b4.bauwerksfunktion, k4.beschreibung, k4.dokumentation, b4.name, b4.statement, GeometryType(b4.wkb_geometry) as bgeotyp, round(st_area(b4.wkb_geometry)::numeric,2) AS flae" 
     284        .$FR."LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuerindustrieundgewer k4 ON b4.bauwerksfunktion=k4.wert".$WH; 
     285        $sqlk="SELECT b4.zustand, k4.beschreibung, k4.dokumentation" 
     286        .$FR."LEFT JOIN ax_zustand_bauwerkoderanlagefuerindustrieundgewerbe k4 ON b4.zustand=k4.wert".$WH; 
     287        $sqlz="SELECT b4.bezeichnung, b4.objekthoehe".$FR.$WH; 
     288        $sqlr="SELECT b4.hatdirektunten".$FR.$WH; 
    334289break; 
    335290 
    336291case $btyp_sport:       // 5 - Bauwerk oder Anlage fÃŒr  S p o r t , Freizeit und Erholung 
     292        $FR=" FROM ax_bauwerkoderanlagefuersportfreizeitunderholung b5 "; 
    337293        $btyptitle="Bauwerk oder Anlage fÃŒr Sport, Freizeit und Erholung"; 
    338         $sqlb="SELECT b5.bauwerksfunktion, k5.beschreibung, k5.dokumentation, b5.name, b5.statement, GeometryType(b5.wkb_geometry) as bgeotyp, round(st_area(b5.wkb_geometry)::numeric,2) AS flae 
    339  FROM ax_bauwerkoderanlagefuersportfreizeitunderholung b5 LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuersportfreizeitunde k5 ON b5.bauwerksfunktion=k5.wert  
    340  WHERE b5.gml_id = $1 AND b5.endet IS NULL;"; 
    341         $sqlk="SELECT b5.sportart, k5.beschreibung, k5.dokumentation 
    342  FROM ax_bauwerkoderanlagefuersportfreizeitunderholung b5 LEFT JOIN ax_sportart_bauwerkoderanlagefuersportfreizeitunderholung k5 ON b5.sportart=k5.wert  
    343  WHERE b5.gml_id = $1 AND b5.endet IS NULL;"; 
    344         $sqlz="SELECT b5.breitedesobjekts FROM ax_bauwerkoderanlagefuersportfreizeitunderholung b5 WHERE b5.gml_id = $1 AND b5.endet IS NULL;"; 
    345         $sqlr="SELECT b5.hatdirektunten FROM ax_bauwerkoderanlagefuersportfreizeitunderholung b5 WHERE b5.gml_id = $1 AND b5.endet IS NULL;"; 
     294        $sqlb="SELECT b5.bauwerksfunktion, k5.beschreibung, k5.dokumentation, b5.name, b5.statement, GeometryType(b5.wkb_geometry) as bgeotyp, round(st_area(b5.wkb_geometry)::numeric,2) AS flae" 
     295        .$FR."LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuersportfreizeitunde k5 ON b5.bauwerksfunktion=k5.wert".$WH; 
     296        $sqlk="SELECT b5.sportart, k5.beschreibung, k5.dokumentation" 
     297        .$FR."LEFT JOIN ax_sportart_bauwerkoderanlagefuersportfreizeitunderholung k5 ON b5.sportart=k5.wert".$WH; 
     298        $sqlz="SELECT b5.breitedesobjekts".$FR.$WH; 
     299        $sqlr="SELECT b5.hatdirektunten".$FR.$WH; 
    346300break; 
    347301 
    348302case $btyp_leitg:       // 6 - L e i t u n g 
     303        $FR=" FROM ax_leitung b6 "; 
    349304        $btyptitle="Leitung"; 
    350         $sqlb="SELECT b6.bauwerksfunktion, k6.beschreibung, k6.dokumentation, b6.name, b6.statement, GeometryType(b6.wkb_geometry) as bgeotyp, round(st_area(b6.wkb_geometry)::numeric,2) AS flae 
    351  FROM ax_leitung b6 LEFT JOIN ax_bauwerksfunktion_leitung k6 ON b6.bauwerksfunktion=k6.wert  
    352  WHERE b6.gml_id = $1 AND b6.endet IS NULL;";    
     305        $sqlb="SELECT b6.bauwerksfunktion, k6.beschreibung, k6.dokumentation, b6.name, b6.statement, GeometryType(b6.wkb_geometry) as bgeotyp, round(st_area(b6.wkb_geometry)::numeric,2) AS flae" 
     306        .$FR."LEFT JOIN ax_bauwerksfunktion_leitung k6 ON b6.bauwerksfunktion=k6.wert".$WH;      
    353307        $sqlk=""; 
    354         $sqlz="SELECT b6.spannungsebene FROM ax_leitung b6 WHERE b6.gml_id = $1 AND b6.endet IS NULL;"; 
    355         $sqlr="SELECT b6.hatdirektunten FROM ax_leitung b6 WHERE b6.gml_id = $1 AND b6.endet IS NULL;"; 
     308        $sqlz="SELECT b6.spannungsebene".$FR.$WH; 
     309        $sqlr="SELECT b6.hatdirektunten".$FR.$WH; 
    356310break; 
    357311 
    358312case $btyp_trans:       // 7 - T r a n s p o r t a n l a g e 
     313        $FR=" FROM ax_transportanlage b7 "; 
    359314        $btyptitle="Transportanlage"; 
    360         $sqlb="SELECT b7.bauwerksfunktion, k7.beschreibung, k7.dokumentation, NULL AS name, b7.statement, GeometryType(b7.wkb_geometry) as bgeotyp, round(st_area(b7.wkb_geometry)::numeric,2) AS flae 
    361  FROM ax_transportanlage b7 LEFT JOIN ax_bauwerksfunktion_transportanlage k7 ON b7.bauwerksfunktion=k7.wert  
    362  WHERE b7.gml_id = $1 AND b7.endet IS NULL;"; 
    363         $sqlk="SELECT b7.lagezurerdoberflaeche, k7.beschreibung, k7.dokumentation 
    364  FROM ax_transportanlage b7 LEFT JOIN ax_lagezurerdoberflaeche_transportanlage k7 ON b7.lagezurerdoberflaeche=k7.wert  
    365  WHERE b7.gml_id = $1 AND b7.endet IS NULL;"; 
    366         $sqlz="SELECT b7.produkt FROM ax_transportanlage b7 WHERE b7.gml_id = $7 AND b7.endet IS NULL;"; 
    367         $sqlr="SELECT b7.hatdirektunten FROM ax_transportanlage b7 WHERE b7.gml_id = $1 AND b7.endet IS NULL;"; 
     315        $sqlb="SELECT b7.bauwerksfunktion, k7.beschreibung, k7.dokumentation, b7.statement, GeometryType(b7.wkb_geometry) as bgeotyp, round(st_area(b7.wkb_geometry)::numeric,2) AS flae" 
     316        .$FR."LEFT JOIN ax_bauwerksfunktion_transportanlage k7 ON b7.bauwerksfunktion=k7.wert".$WH; 
     317        $sqlk="SELECT b7.lagezurerdoberflaeche, k7.beschreibung, k7.dokumentation" 
     318        .$FR."LEFT JOIN ax_lagezurerdoberflaeche_transportanlage k7 ON b7.lagezurerdoberflaeche=k7.wert".$WH; 
     319        $sqlz="SELECT b7.produkt".$FR.$WH; 
     320        $sqlr="SELECT b7.hatdirektunten".$FR.$WH; 
    368321break; 
    369322 
    370323case $btyp_turm:        // 8 - T u r m  (Sonderfall Array) 
     324        $FR=" FROM ax_turm b8 "; 
    371325        $btyptitle="Turm"; 
    372         $sqlb="SELECT k8.wert AS bauwerksfunktion, k8.beschreibung, k8.dokumentation, b8.name, b8.statement, GeometryType(b8.wkb_geometry) as bgeotyp, round(st_area(b8.wkb_geometry)::numeric,2) AS flae 
    373  FROM ax_turm b8 LEFT JOIN ax_bauwerksfunktion_turm k8 ON k8.wert =ANY(b8.bauwerksfunktion) 
    374  WHERE b8.gml_id = $1 AND b8.endet IS NULL;"; 
    375         $sqlk="SELECT b8.zustand, k8.beschreibung, k8.dokumentation 
    376  FROM ax_turm b8 LEFT JOIN ax_zustand_turm k8 ON b8.zustand=k8.wert  
    377  WHERE b8.gml_id = $1 AND b8.endet IS NULL;"; 
    378         $sqlz="SELECT b8.objekthoehe FROM ax_turm b8 WHERE b8.gml_id = $1 AND b8.endet IS NULL;"; 
    379         $sqlr="SELECT b8.hatdirektunten, b8.zeigtauf FROM ax_turm b8 WHERE b8.gml_id = $1 AND b8.endet IS NULL;"; 
     326        $sqlb="SELECT k8.wert AS bauwerksfunktion, k8.beschreibung, k8.dokumentation, b8.name, b8.statement, GeometryType(b8.wkb_geometry) as bgeotyp, round(st_area(b8.wkb_geometry)::numeric,2) AS flae" 
     327        .$FR."LEFT JOIN ax_bauwerksfunktion_turm k8 ON k8.wert =ANY(b8.bauwerksfunktion)".$WH; 
     328        $sqlk="SELECT b8.zustand, k8.beschreibung, k8.dokumentation" 
     329        .$FR."LEFT JOIN ax_zustand_turm k8 ON b8.zustand=k8.wert".$WH; 
     330        $sqlz="SELECT b8.objekthoehe".$FR.$WH; 
     331        $sqlr="SELECT b8.hatdirektunten, b8.zeigtauf".$FR.$WH; 
    380332break; 
    381333 
    382334case $btyp_vorrat:      // 9 -  V o r r a t s b e h À l t e r ,  S p e i c h e r b a u w e r k 
     335        $FR=" FROM ax_vorratsbehaelterspeicherbauwerk b9 "; 
    383336        $btyptitle="VorratsbehÀlter, Speicherbauwerk"; 
    384         $sqlb="SELECT b9.bauwerksfunktion, k9.beschreibung, k9.dokumentation, b9.name, b9.statement, GeometryType(b9.wkb_geometry) as bgeotyp, round(st_area(b9.wkb_geometry)::numeric,2) AS flae 
    385  FROM ax_vorratsbehaelterspeicherbauwerk b9 LEFT JOIN ax_bauwerksfunktion_vorratsbehaelterspeicherbauwerk k9 ON b9.bauwerksfunktion=k9.wert  
    386  WHERE b9.gml_id = $1 AND b9.endet IS NULL;"; 
     337        $sqlb="SELECT b9.bauwerksfunktion, k9.beschreibung, k9.dokumentation, b9.name, b9.statement, GeometryType(b9.wkb_geometry) as bgeotyp, round(st_area(b9.wkb_geometry)::numeric,2) AS flae" 
     338        .$FR."LEFT JOIN ax_bauwerksfunktion_vorratsbehaelterspeicherbauwerk k9 ON b9.bauwerksfunktion=k9.wert".$WH; 
    387339        $sqlk="SELECT b9.lagezurerdoberflaeche, k9.beschreibung, k9.dokumentation,  
    388          b9.speicherinhalt, sp9.beschreibung AS spbes, sp9.dokumentation AS spdok 
    389  FROM ax_vorratsbehaelterspeicherbauwerk b9  
    390  LEFT JOIN ax_lagezurerdoberflaeche_vorratsbehaelterspeicherbauwerk k9 ON b9.lagezurerdoberflaeche=k9.wert  
    391  LEFT JOIN ax_speicherinhalt_vorratsbehaelterspeicherbauwerk sp9 ON b9.speicherinhalt=sp9.wert  
    392  WHERE b9.gml_id = $1 AND b9.endet IS NULL;"; 
    393         $sqlz="SELECT b9.objekthoehe FROM ax_vorratsbehaelterspeicherbauwerk b9 WHERE b9.gml_id = $1 AND b9.endet IS NULL;"; 
    394         $sqlr="SELECT b9.hatdirektunten FROM ax_vorratsbehaelterspeicherbauwerk b9 WHERE b9.gml_id = $1 AND b9.endet IS NULL;"; 
    395 break; 
     340         b9.speicherinhalt, sp9.beschreibung AS spbes, sp9.dokumentation AS spdok" 
     341        .$FR."LEFT JOIN ax_lagezurerdoberflaeche_vorratsbehaelterspeicherbauwerk k9 ON b9.lagezurerdoberflaeche=k9.wert  
     342 LEFT JOIN ax_speicherinhalt_vorratsbehaelterspeicherbauwerk sp9 ON b9.speicherinhalt=sp9.wert".$WH; 
     343        $sqlz="SELECT b9.objekthoehe".$FR.$WH; 
     344        $sqlr="SELECT b9.hatdirektunten".$FR.$WH; 
     345break; 
     346 
     347case $btyp_hist: // 10 - H i s t o r i s c h e s  Bauwerk oder historische Einrichtung 
     348        $FR=" FROM ax_historischesbauwerkoderhistorischeeinrichtung b10 "; 
     349        $btyptitle="Historisches Bauwerk oder historische Einrichtung"; 
     350        $sqlb="SELECT b10.name, b10.statement, GeometryType(b10.wkb_geometry) as bgeotyp, round(st_area(b10.wkb_geometry)::numeric,2) AS flae".$FR.$WH; 
     351        $sqlk="SELECT b10.archaeologischertyp, k10.beschreibung, k10.dokumentation" 
     352        .$FR."LEFT JOIN ax_archaeologischertyp_historischesbauwerkoderhistorischee k10 ON b10.archaeologischertyp=k10.wert".$WH; 
     353        $sqlz=""; 
     354        $sqlr="SELECT b10.hatdirektunten".$FR.$WH; 
     355break; 
     356 
     357case $btyp_heil: // 11 - H e i l q u e l l e ,  G a s q u e l l e 
     358        $FR=" FROM ax_heilquellegasquelle b11 "; 
     359        $btyptitle="Heilquelle, Gasquelle"; 
     360        $sqlb="SELECT b11.name, b11.statement, GeometryType(b11.wkb_geometry) as bgeotyp, round(st_area(b11.wkb_geometry)::numeric,2) AS flae".$FR.$WH; 
     361        $sqlk="SELECT b11.art, k11.beschreibung, k11.dokumentation, " 
     362        ."b11.hydrologischesmerkmal, hm.beschreibung AS hmbes, hm.dokumentation AS hmdok".$FR 
     363        ."LEFT JOIN ax_art_heilquellegasquelle k11 ON b11.art=k11.wert " 
     364        ."LEFT JOIN ax_hydrologischesmerkmal_heilquellegasquelle hm ON b11.hydrologischesmerkmal=hm.wert".$WH; 
     365        $sqlz=""; 
     366        $sqlr="SELECT b11.hatdirektunten ".$FR.$WH; 
     367break; 
     368 
     369case $btyp_oeff: // 12 - Einrichtung in  ö f f e n t l i c h e n  Bereichen 
     370        $FR=" FROM ax_einrichtunginoeffentlichenbereichen b12 "; 
     371        $btyptitle="Einrichtung in &ouml;ffentlichen Bereichen"; 
     372        $sqlb="SELECT b12.statement, GeometryType(b12.wkb_geometry) as bgeotyp, round(st_area(b12.wkb_geometry)::numeric,2) AS flae".$FR.$WH; 
     373        $sqlk="SELECT b12.art, k12.beschreibung, k12.dokumentation".$FR 
     374        ."LEFT JOIN ax_art_einrichtunginoeffentlichenbereichen k12 ON b12.art=k12.wert".$WH; 
     375        $sqlz="SELECT b12.kilometerangabe".$FR.$WH; 
     376        $sqlr="SELECT b12.hatdirektunten ".$FR.$WH; 
     377break; 
     378/* 
     379case $btyp_bpkt: // 13 - Besonderer Bauwerkspunkt (ohne Geom.) 
     380        $FR=" FROM ax_besondererbauwerkspunkt b13 "; 
     381        $btyptitle="Besonderer Bauwerkspunkt"; 
     382//  punktkennung, sonstigeeigenschaft, zustaendigestelle_land, zustaendigestelle_stelle 
     383break; */ 
    396384 
    397385default: 
    398         die('<p class="stop1">Fehler showkey</p></body>'); 
    399 break; 
    400 } 
    401  
    402 // 1. sqlb: Standard-Spalten, die bei jedem Typ vorhanden sind 
     386        die('<p class="stop1">Falscher Bauwerkstyp.</p></body>'); 
     387break; 
     388} 
     389 
     390// 1. sqlb: Standard-Spalten, die bei (fast) jedem Typ vorhanden sind 
    403391$v=array($gmlid); 
    404392$resb=pg_prepare("", $sqlb); 
     
    423411        } else { // Treffer 
    424412                // Seitenkopf 
    425                 echo "<p class='balken bauwerk".$btyp."'>ALKIS Bauwerk ".$btyp." - ".$gmlid."&nbsp;</p>"; // Balken, Farbe wie WMS 
    426                 echo "\n<h2>".$btyptitle."</h2>"; 
    427                 echo "\n<p class='nwlink noprint'>"; // Umschalter: auch leere Felder 
    428                 echo "Umschalten: <a class='nwlink' href='".selbstverlinkung()."?gkz=".$gkz."&amp;btyp=".$btyp."&amp;gmlid=".$gmlid; 
    429                         if ($showkey) {echo "&amp;showkey=j";} else {echo "&amp;showkey=n";} 
    430                         if ($allefelder) { 
    431                                 echo "&amp;allfld=n'>nur Felder mit Inhalt"; 
    432                         } else { 
    433                                 echo "&amp;allfld=j'>auch leere Felder"; 
    434                         } 
     413                echo "<p class='balken bauwerk".$btyp."'>ALKIS Bauwerk ".$btyp." - ".$gmlid."&nbsp;</p>" // Balken, Farbe wie WMS 
     414                ."\n<h2>".$btyptitle."</h2>" 
     415                ."\n<p class='nwlink noprint'>" // Umschalter: auch leere Felder 
     416                ."Umschalten: <a class='nwlink' href='".selbstverlinkung()."?gkz=".$gkz."&amp;btyp=".$btyp."&amp;gmlid=".$gmlid.LnkStf(); 
     417                if ($allefelder) { 
     418                        echo "&amp;allfld=n'>nur Felder mit Inhalt"; 
     419                } else { 
     420                        echo "&amp;allfld=j'>auch leere Felder"; 
     421                } 
    435422                echo "</a></p>"; 
    436423 
     
    445432                ."\n</tr>"; 
    446433 
    447                 tab_zeile('Bauwerksfunktion', $rowb["bauwerksfunktion"], htmlentities($rowb["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowb["dokumentation"], ENT_QUOTES, "UTF-8")); 
    448                 tab_zeile('Name',        '', htmlentities($rowb["name"], ENT_QUOTES, "UTF-8"), '', ''); 
    449                 tab_zeile('Statement',   '', htmlentities($rowb["statement"], ENT_QUOTES, "UTF-8"), '', ''); 
     434                if (isset($rowb["bauwerksfunktion"])) { // nicht immer vorhanden 
     435                        tab_zeile('Bauwerksfunktion', $rowb["bauwerksfunktion"], htmlentities($rowb["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowb["dokumentation"], ENT_QUOTES, "UTF-8")); 
     436                } 
     437 
     438                if (isset($rowb["name"])) { 
     439                        tab_zeile('Name', '', htmlentities($rowb["name"], ENT_QUOTES, "UTF-8"), '', ''); 
     440                } 
     441 
     442                tab_zeile('Statement', '', htmlentities($rowb["statement"], ENT_QUOTES, "UTF-8"), '', ''); 
    450443 
    451444                // G e o m e t r i e  und FlÀche 
    452                 $geotyp=$rowb["bgeotyp"]; 
    453                 switch ($geotyp) { 
    454                         case "POINT": 
    455                                 $geodeutsch=$geotyp." bedeutet 'Punkt', einzelne Koordinate."; 
    456                         break; 
    457                         case "LINESTRING": 
    458                                 $geodeutsch=$geotyp." bedeutet 'Linie'."; 
    459                         break; 
    460                         case "POLYGON": 
    461                                 $geodeutsch=$geotyp." bedeutet eine einzelne 'Fl&auml;che'."; 
    462                         break; 
    463                         case "MULTIPOLYGON": 
    464                                 $geodeutsch=$geotyp." bedeutet eine 'Fl&auml;che', die aus mehreren Teilen bestehen kann oder die Aussparungen haben kann.";     
    465                         break; 
    466                         default: $geodeutsch=""; 
    467                 } 
    468                 tab_zeile('Geometrietyp', '', $geotyp, '', $geodeutsch); 
    469  
    470                 if ($geotyp == "POLYGON" or $geotyp == "MULTIPOLYGON") { 
    471                         $flaeche=$rowb["flae"]." m&#178;"; 
    472                         tab_zeile('Fl&auml;che', '', $flaeche, '', "Die 'Fl&auml;che' des Bauwerks wird aus der Geometrie berechnet, aber nur bei POLYGON."); 
     445                if (isset($rowb["bgeotyp"])) { 
     446                        $geotyp=$rowb["bgeotyp"]; 
     447                        switch ($geotyp) { 
     448                                case "POINT": 
     449                                        $geodeutsch=$geotyp." bedeutet 'Punkt', einzelne Koordinate."; 
     450                                break; 
     451                                case "LINESTRING": 
     452                                        $geodeutsch=$geotyp." bedeutet 'Linie'."; 
     453                                break; 
     454                                case "POLYGON": 
     455                                        $geodeutsch=$geotyp." bedeutet eine einzelne 'Fl&auml;che'."; 
     456                                break; 
     457                                case "MULTIPOLYGON": 
     458                                        $geodeutsch=$geotyp." bedeutet eine 'Fl&auml;che', die aus mehreren Teilen bestehen kann oder die Aussparungen haben kann.";     
     459                                break; 
     460                                default: $geodeutsch=""; 
     461                        } 
     462                        tab_zeile('Geometrietyp', '', $geotyp, '', $geodeutsch); 
     463 
     464                        if ($geotyp == "POLYGON" or $geotyp == "MULTIPOLYGON") { 
     465                                $flaeche=$rowb["flae"]." m&#178;"; 
     466                                tab_zeile('Fl&auml;che', '', $flaeche, '', "Die 'Fl&auml;che' des Bauwerks wird aus der Geometrie berechnet, aber nur bei POLYGON."); 
     467                        } 
    473468                } 
    474469        } 
     
    476471} 
    477472 
    478 // 2. sqlk:  Z u s À t z l i c h e   K e y - V a l u e - B e z i e h u n g e n 
     473// 2. sqlk:  ZusÀtzliche Key-Value-Beziehungen 
    479474// Andere Art der Darstellung als die schlichten Zusatzfelder, Key optional anzeigen, ErklÀrung zum Wert aus SchlÃŒsseltabelle 
    480475if ($sqlk != '') { 
     
    500495                } else { 
    501496                // Treffer 
     497                        $bes=htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"); 
     498                        $dok=htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8"); 
    502499                        switch ($btyp) {  // individuell je Typ 
    503500                        case $btyp_verkehr: // 1 
    504                                 tab_zeile('Zustand', $rowk["zustand"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); 
     501                                tab_zeile('Zustand', $rowk["zustand"], $bes, '', $dok); 
    505502                        break; 
    506503                        case $btyp_gewaesser: // 2 
    507                                 tab_zeile('Zustand', $rowk["zustand"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); 
     504                                tab_zeile('Zustand', $rowk["zustand"], $bes, '', $dok); 
    508505                        break; 
    509506                        case $btyp_sonst: // 3 
    510                                 tab_zeile('Funktion', $rowk["funktion"], htmlentities($rowk["beschr"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["doku"], ENT_QUOTES, "UTF-8")); 
     507                                tab_zeile('Funktion', $rowk["funktion"], $bes, '', $dok); 
    511508                                tab_zeile('Hydrologisches Merkmal', $rowk["hydrologischesmerkmal"], htmlentities($rowk["hmbeschr"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["hmdoku"], ENT_QUOTES, "UTF-8")); 
    512509                        break; 
    513510                        case $btyp_indu: // 4 
    514                                 tab_zeile('Zustand', $rowk["zustand"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); 
     511                                tab_zeile('Zustand', $rowk["zustand"], $bes, '', $dok); 
    515512                        break; 
    516513                        case $btyp_sport: // 5 
    517                                 tab_zeile('Sportart', $rowk["sportart"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); 
     514                                tab_zeile('Sportart', $rowk["sportart"], $bes, '', $dok); 
    518515                        break; 
    519516                        case $btyp_trans: // 7 
    520                                 tab_zeile('Lage zur Erdoberfl&auml;che', $rowk["lagezurerdoberflaeche"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); 
     517                                tab_zeile('Lage zur Erdoberfl&auml;che', $rowk["lagezurerdoberflaeche"], $bes, '', $dok); 
    521518                        break; 
    522519                        case $btyp_turm: // 8 
    523                                 tab_zeile('Zustand', $rowk["zustand"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); 
     520                                tab_zeile('Zustand', $rowk["zustand"], $bes, '', $dok); 
    524521                        break; 
    525522                        case $btyp_vorrat: // 9 
    526                                 tab_zeile('Lage zur Erdoberfl&auml;che', $rowk["lagezurerdoberflaeche"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); 
     523                                tab_zeile('Lage zur Erdoberfl&auml;che', $rowk["lagezurerdoberflaeche"], $bes, '', $dok); 
    527524                                tab_zeile('Speicherinhalt', $rowk["speicherinhalt"], htmlentities($rowk["spbes"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["spdok"], ENT_QUOTES, "UTF-8")); 
    528                         break; 
     525                        case $btyp_hist: // 10 
     526                                tab_zeile('Arch&auml;ologischer Typ', $rowk["archaeologischertyp"], $bes, '', $dok); 
     527                        break; 
     528                        case $btyp_heil: // 11 
     529                                tab_zeile('Art', $rowk["art"], $bes, '', $dok); 
     530                                tab_zeile('Hydrologisches Merkmal', $rowk["hydrologischesmerkmal"], htmlentities($rowk["hmbes"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["hmdok"], ENT_QUOTES, "UTF-8")); 
     531                        break; 
     532                        case $btyp_oeff: // 12 
     533                                tab_zeile('Art', $rowk["art"], $bes, '', $dok); 
     534                        break; 
     535//                      case $btyp_bpkt: // 13 
     536//                      break; 
    529537                        } 
    530538                } 
Note: See TracChangeset for help on using the changeset viewer.