Ignore:
Timestamp:
12/30/21 17:49:00 (2 years ago)
Author:
frank.jaeger
Message:

Web-GIS-Auskunft und Mapbender2-Navigation: neue Konfigurations-Parameter und verbessertes Grundbuch-Modul

File:
1 edited

Legend:

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

    r422 r425  
    55        1 Bauwerk im Verkehrsbereich 
    66        2 Bauwerk im GewÀsserbereich 
    7         3 Sonstiges Bauwerk oder sonstige Einrichtung 
    8         4 Bauwerk oder Anlage fÃŒr Industrie und Gewerbe 
    9         5 Bauwerk oder Anlage fÃŒr Sport, Freizeit und Erholung 
    10         6 Leitung 
    11         7 Transportanlage 
    12         8 Turm 
    13         9 VorratsbehÀlter, Speicherbauwerk 
     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 
    1414 
    1515        Version: 
    1616        2021-03-11 Neues Modul 
    1717        2021-03-17 Korrekturen 
    18  
     18        2021-12-09 2021-12-09 Neue Parameter: $katAmtMix (Kataster-Amt-Mix), $PrntBtn (Drucken-SchaltflÀche). Debugging verbessert. 
     19 
     20ToDo: 
     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' 
    1927*/ 
    2028 
     
    2230// Ein Bauwerk "gehört zu" (Relation) einem GebÀude. Zu diesem GebÀude die Adresse(n) als Tabellen-Zeile ausgeben 
    2331function bw_gz_lage($gmlgz) { 
    24         global $gkz, $debug, $showkey; 
     32        global $gkz, $dbg, $showkey; 
    2533         
    2634        // HAUPTgebÀude  Geb >zeigtAuf> lage (mehrere) 
    27         $sqlgz="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer " 
     35        $sqlgz ="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer, p.bezeichnung as gemeinde " 
    2836        ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) " 
    29         ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 
     37        ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage "       
     38        ."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") 
    3039        ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; 
    3140 
    3241        // ++ evtl. keine NEBEN-GebÀude möglich, nur Haupt-? 
    3342        // UNION - oder NEBENgebÀude  Geb >hat> Pseudo 
    34         $sqlgz.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer " 
     43        $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 " 
    3544        ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat " 
    3645        ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 
    37         ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses" 
    38  
    39         $sqlgz.="ORDER BY bezeichnung, hausnummer, laufendenummer;"; 
     46        ."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;"; 
    4049        $v = array($gmlgz); 
    4150        $resgz = pg_prepare("", $sqlgz); 
     
    4352        if (!$resgz) { 
    4453                echo "\n<p class='err'>Fehler bei Lage mit HsNr. zum Bauwerk</p>"; 
    45                 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlgz."'", $sqlgz)."</p>";} 
    46                 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resgz)."</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>";} 
    4756        } else { 
    4857                echo "\n<tr>"; 
     
    5665                        $hlfd=$rowgz["laufendenummer"]; 
    5766                        $gmllag=$rowgz["lgml"]; 
     67                        $gemeinde=$rowgz["gemeinde"]; 
    5868 
    5969                        if ($ltyp === "p") { 
    6070                                $lagetitl="NebengebÀude Nr. ".$hlfd; 
    61                         //      $lagetxt="Nebengeb&auml;ude Nr. ".$hlfd; // alt 
    62                                 $lagetxt=$snam."&nbsp;".$hsnr." (".$hlfd.")"; 
     71                                $lagetxt=$snam." ".$hsnr." (".$hlfd."), ".$gemeinde; 
    6372                        } else { 
    6473                                $lagetitl="HauptgebÀude - Hausnummer ".$hsnr; 
    65                                 $lagetxt=$snam."&nbsp;".$hsnr; 
     74                                $lagetxt=$snam." ".$hsnr.", ".$gemeinde; 
    6675                        } 
    6776 
     
    8291// Eine Zeile der HTML-Tabelle ausgeben 
    8392function tab_zeile($titel, $key, $inhalt, $ea, $ei) { 
    84         global $showkey, $allefelder, $debug; 
     93        global $showkey, $allefelder, $dbg; 
    8594        if ($inhalt != "" OR $allefelder) { 
    8695                echo "\n<tr>\n\t<td class='li'>".$titel."</td>\n\t<td class='fett'>"; 
     
    96105// Anwendung fÃŒr die DB-Spalten, die nicht bei jeder Bauwerks-Tabelle vorkommen 
    97106function zusatz_spalte($col, $inhalt) { // Spalten-Name, Value 
    98         global $debug; 
     107        global $dbg; 
    99108        $einh=''; 
    100109        switch ($col) {  
     
    126135        // Fehler 
    127136                default: // noch nicht berÃŒcksichtigt 
    128                         if ($debug > 1) {echo "<p class='dbg'>Der Feldname ".$col." ist in function zusatz_spalte noch nicht ber&uuml;cksichtigt.</p>";} 
     137                        if ($dbg > 1) {echo "<p class='dbg'>Der Feldname ".$col." ist in function zusatz_spalte noch nicht ber&uuml;cksichtigt.</p>";} 
    129138                        $titel=$col; 
    130139        } 
     
    144153// inhalt = gml_id oder Array mit gml_id's 
    145154function objektverweis($col, $inhalt) { 
    146         global $gkz, $showkey, $debug; 
    147 //      if ($debug > 1) {echo "<p>Verweis Typ '".$col."' auf Objekt(e): '".$inhalt."'.</p>";} 
     155        global $gkz, $showkey, $dbg; 
     156//      if ($dbg > 1) {echo "<p>Verweis Typ '".$col."' auf Objekt(e): '".$inhalt."'.</p>";} 
    148157        switch ($col) { 
    149158                case 'hatdirektunten': // [] ++ Wie kann man dies Objekt finden? 
     
    168177        // 'istabgeleitetaus';  'traegtbeizu': 'istteilvon': // -> Keine FÀlle vorhanden 
    169178                default: 
    170                         if ($debug > 1) {echo "<p class='dbg'>Der Feldname ".$col." ist in function 'objektverweis' noch nicht ber&uuml;cksichtigt.</p>";} 
    171         } 
    172 } 
    173 // alle leer: 
    174 //  SELECT * FROM bauwerke_zusammenfassung WHERE NOT istabgeleitetaus IS NULL; 
    175 //  SELECT * FROM bauwerke_zusammenfassung WHERE NOT traegtbeizu IS NULL; 
    176 //  SELECT * FROM bauwerke_zusammenfassung WHERE NOT istteilvon IS NULL; 
    177 // SELECT gml_id, hatdirektunten, st_asewkt( wkb_geometry ) as wkt FROM ax_bauwerkimgewaesserbereich WHERE NOT hatdirektunten IS NULL; 
    178 //  1 Fall  in 290: 2 / DENW15AL360000N7 ,  
    179 // SELECT gml_id, hatdirektunten, st_asewkt( wkb_geometry ) as wkt FROM ax_bauwerkimgewaesserbereich WHERE gml_id = 'DENW15AL360000N7'; 
    180 // 34 FÀlle in 200:  
    181 // 16 FÀlle in 300: 
     179                        if ($dbg > 1) {echo "<p class='dbg'>Der Feldname ".$col." ist in function 'objektverweis' noch nicht ber&uuml;cksichtigt.</p>";} 
     180        } 
     181} 
    182182 
    183183// S T A R T 
     
    185185ini_set("session.cookie_httponly", 1); 
    186186session_start(); 
    187 $allfld = "n"; $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren 
     187$allfld = "n"; $showkey="n"; $nodebug=""; // Var. initalisieren 
    188188$cntget = extract($_GET);       // Parameter in Variable umwandeln 
    189189 
     
    224224 
    225225$erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 
    226  
    227 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 
    228 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 
    229 if ($nodebug === "j") {$debug=0;}  
     226$dbg=$debug; // CONF in Arbeits-Variable 
     227if ($nodebug === "j") {$dbg=0;} // Entwicklungsumgebung temporÀr ausschalten 
    230228 
    231229$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbauwerk.php'"); 
     
    237235 
    238236/* in ALLEN Bauwerks-Typen folgende Spalten, bisher NICHT verwendet: 
    239     processstep_ax_li_processstep_mitdatenerhebung_description[] processstep_rationale[] 
    240     processstep_datetime[] processstep_individualname[] processstep_organisationname[] processstep_positionname[] 
    241     processstep_phone[] processstep_address[] processstep_onlineresource[] processstep_hoursofservice[] 
    242     processstep_contactinstructions[] processstep_role[] processstep_ax_datenerhebung[] 
    243     processstep_scaledenominator[] processstep_sourcereferencesystem[] processstep_sourceextent[] processstep_sourcestep[] 
    244  
    245237    herkunft_source_source_ax_datenerhebung[] herkunft_source_source_scaledenominator[] herkunft_source_source_sourcereferencesystem[] 
    246238    herkunft_source_source_sourceextent[]     herkunft_source_source_sourcestep[] */ 
     
    414406if (!$resb) { 
    415407        echo "\n<p class='err'>Fehler bei Bauwerksdaten Standardfelder.</p>"; 
    416         if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlb)."'</p>";} 
    417         if ($debug > 1) {echo "\n<p class='dbg'>Fehler:".pg_result_error($resb)."</p>";} 
     408        if ($dbg > 0) { 
     409                echo "\n<p class='dbg'>Fehler:".pg_result_error($resb)."</p>"; 
     410                if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlb)."'</p>";} 
     411        } 
    418412} else { 
     413        if ($dbg > 0) { 
     414                $zeianz=pg_num_rows($resb); 
     415                if ($zeianz > 1){ 
     416                        echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Bauwerk! (Standardfelder)</p>"; 
     417                        if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlb), ENT_QUOTES, "UTF-8")."</p>";} 
     418                } 
     419        } 
    419420        if (!$rowb = pg_fetch_assoc($resb)) { 
    420421                echo "\n<p class='err'>Fehler! Kein Treffer f&uuml;r gml_id=".$gmlid."</p>"; 
    421422                die('<p class="stop1">Abbruch</p></body>'); // Das wÃŒrde sich sonst 2x wiederholen 
    422         } else { 
    423         // Treffer 
     423        } else { // Treffer 
    424424                // Seitenkopf 
    425425                echo "<p class='balken bauwerk".$btyp."'>ALKIS Bauwerk ".$btyp." - ".$gmlid."&nbsp;</p>"; // Balken, Farbe wie WMS 
     
    484484        if (!$resk) { 
    485485                echo "\n<p class='err'>Fehler bei Schl&uuml;sseltabelle ".$btyp."</p>"; 
    486                 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlk)."'</p>";} 
    487                 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resk)."</p>";} 
     486                if ($dbg > 0) { 
     487                        echo "<p class='dbg'>Fehler:".pg_result_error($resk)."</p>"; 
     488                        if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlk)."'</p>";} 
     489                } 
    488490        } else { 
     491                if ($dbg > 0) { 
     492                        $zeianz=pg_num_rows($resk); 
     493                        if ($zeianz > 1){ 
     494                                echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Bauwerk! (Key-Value)</p>"; 
     495                                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlk), ENT_QUOTES, "UTF-8")."</p>";} 
     496                        } 
     497                } 
    489498                if (!$rowk = pg_fetch_array($resk)) { 
    490499                        echo "\n<p class='err'>Fehler! Kein Treffer f&uuml;r gml_id=".$gmlid."</p>"; 
     
    532541        if (!$resz) { 
    533542                echo "\n<p class='err'>Fehler bei Bauwerk Relation.</p>"; 
    534                 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlz)."'</p>";} 
    535                 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resz)."</p>";} 
     543                if ($dbg > 0) { 
     544                        echo "<p class='dbg'>Fehler:".pg_result_error($resz)."</p>"; 
     545                        if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlz)."'</p>";} 
     546                } 
    536547        } else { 
     548                if ($dbg > 0) { 
     549                        $zeianz=pg_num_rows($resz); 
     550                        if ($zeianz > 1){ 
     551                                echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Bauwerk! (Zusatz-Spalten)</p>"; 
     552                                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlz), ENT_QUOTES, "UTF-8")."</p>";} 
     553                        } 
     554                } 
    537555                if (!$rowz = pg_fetch_array($resz)) { 
    538556                        echo "\n<p class='err'>Fehler! Kein Treffer f&uuml;r gml_id=".$gmlid."</p>"; 
     
    540558                        // Die Spalten im Row abarbeiten 
    541559                        $anzcol=pg_num_fields($resz); 
    542                 //      if ($debug > 1) {echo "<p class='dbg'>".$anzcol." Zusatz-Spalten vorhanden"."</p>";} 
    543560                        for ($i = 0; $i < $anzcol; $i++) { 
    544561                                $k=pg_field_name($resz, $i); 
     
    560577        if (!$resr) { 
    561578                echo "\n<p class='err'>Fehler bei Bauwerksdaten Zusatzfelder.</p>"; 
    562                 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlr)."'</p>";} 
    563                 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resr)."</p>";} 
     579                if ($dbg > 0) { 
     580                        echo "<p class='dbg'>Fehler:".pg_result_error($resr)."</p>"; 
     581                        if ($dbg > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlr)."'</p>";} 
     582                } 
    564583        } else { 
     584                if ($dbg > 0) { 
     585                        $zeianz=pg_num_rows($resr); 
     586                        if ($zeianz > 1){ 
     587                                echo "\n<p class='err'>Die Abfrage liefert mehr als ein (".$zeianz.") Bauwerk! (Relationen)</p>"; 
     588                                if ($dbg > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sqlr), ENT_QUOTES, "UTF-8")."</p>";} 
     589                        } 
     590                } 
    565591                if (!$rowr = pg_fetch_array($resr)) { 
    566592                        echo "\n<p class='err'>Fehler! Kein Treffer f&uuml;r gml_id=".$gmlid."</p>"; 
    567593                } else { // Die Spalten im Row abarbeiten 
    568594                        $anzcol=pg_num_fields($resr); 
    569                 //      if ($debug > 1) {echo "<p class='dbg'>".$anzcol." Relationen-Spalten vorhanden"."</p>";} 
    570595                        for ($i = 0; $i < $anzcol; $i++) { 
    571596                                $k=pg_field_name($resr, $i); 
     
    581606 
    582607echo "\n</table>\n"; 
    583 // +++ Test, ob ein zweiter Satz zum Bauwerk gefunden wird? Das sollte nicht sein. 
     608echo "<div class='buttonbereich noprint'>\n<hr>\n\t<a title='zur&uuml;ck' href='javascript:history.back()'><img src='ico/zurueck.png' width='16' height='16' alt='zur&uuml;ck'></a>&nbsp;"; 
     609if ($PrntBtn==true){echo "\n\t<a title='Drucken' href='javascript:window.print()'><img src='ico/print.png' width='16' height='16' alt='Drucken'></a>&nbsp;";} 
     610echo "\n</div>"; 
     611 
     612footer($gmlid, selbstverlinkung()."?", "&amp;btyp=".$btyp); 
    584613?> 
    585   
    586 <div class='buttonbereich noprint'> 
    587         <hr> 
    588         <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp; 
    589         <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 
    590 </div> 
    591  
    592 <?php footer($gmlid, selbstverlinkung()."?", "&amp;btyp=".$btyp); ?> 
    593  
    594614</body> 
    595615</html> 
Note: See TracChangeset for help on using the changeset viewer.