zeigtAuf> lage (mehrere) $sqlgz="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer " ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) " ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ++ evtl. keine NEBEN-Gebäude möglich, nur Haupt-? // UNION - oder NEBENgebäude Geb >hat> Pseudo $sqlgz.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer " ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat " ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses" $sqlgz.="ORDER BY bezeichnung, hausnummer, laufendenummer;"; $v = array($gmlgz); $resgz = pg_prepare("", $sqlgz); $resgz = pg_execute("", $v); if (!$resgz) { echo "\n

Fehler bei Lage mit HsNr. zum Bauwerk

"; if ($debug > 2) {echo "\n

SQL=
".str_replace("$1", "'".$gmlgz."'", $sqlgz)."

";} if ($debug > 1) {echo "

Fehler:".pg_result_error($resgz)."

";} } else { echo "\n"; echo "\n\tLage"; echo "\n\t"; while($rowgz = pg_fetch_assoc($resgz)) { // LOOP: Lagezeilen $ltyp=$rowgz["ltyp"]; $skey=$rowgz["lage"]; $snam=htmlentities($rowgz["bezeichnung"], ENT_QUOTES, "UTF-8"); $hsnr=$rowgz["hausnummer"]; $hlfd=$rowgz["laufendenummer"]; $gmllag=$rowgz["lgml"]; if ($ltyp === "p") { $lagetitl="Nebengebäude Nr. ".$hlfd; // $lagetxt="Nebengebäude Nr. ".$hlfd; // alt $lagetxt=$snam." ".$hsnr." (".$hlfd.")"; } else { $lagetitl="Hauptgebäude - Hausnummer ".$hsnr; $lagetxt=$snam." ".$hsnr; } echo "\n\t\t"; if ($showkey) {echo "(".$skey.") ";} echo $lagetxt."  "; } echo ""; echo "\n\t"; echo "\n\t\t

Das Haus hat die Adresse ".$lagetitl."

"; echo "\n\t\n"; pg_free_result($resgz); } } // Eine Zeile der HTML-Tabelle ausgeben function tab_zeile($titel, $key, $inhalt, $ea, $ei) { global $showkey, $allefelder, $debug; if ($inhalt != "" OR $allefelder) { echo "\n\n\t".$titel."\n\t"; if ($showkey and $key != '') {echo "(".$key.") ";} echo $inhalt."\n\t"; if ($ea != '') {echo "\n\t\t

".$ea."

";} // Erkl. Attribut (allgemein) if ($ei != '') {echo "\n\t\t

".$ei."

";} // Erkl. Inhalt (speziell) echo "\n\t\n"; } } // Eine zusätzliche Daten-Spalte der Datenbank-Tabelle in eine Zeile der HTML-Tabelle ausgeben (Key|Value|Erklärung) // Anwendung für die DB-Spalten, die nicht bei jeder Bauwerks-Tabelle vorkommen function zusatz_spalte($col, $inhalt) { // Spalten-Name, Value global $debug; $einh=''; switch ($col) { case 'objekthoehe': $titel='Objekthöhe'; $einh=' m'; break; case 'breitedesobjekts': $titel='Breite des Objekts'; $einh=' m'; break; case 'bezeichnung': $titel='Bezeichnung'; break; // 1 Verk. case 'durchfahrtshoehe': $titel='Durchfahrtshöhe'; $einh=' m'; break; // 6 Leitung case 'spannungsebene': $titel='Spannungsebene'; $einh=' KV'; break; // 7 Transport case 'produkt': $titel='Produkt'; break; // Fehler default: // noch nicht berücksichtigt if ($debug > 1) {echo "

Der Feldname ".$col." ist in function zusatz_spalte noch nicht berücksichtigt.

";} $titel=$col; } if ($inhalt != '') {$inhalt.=$einh;} tab_zeile($titel, '', $inhalt, '', ''); } // Eine Zeile der HTML-Tabelle ausgeben, die einen Objektverweis (Relation) enthält function verweis_zeile($zieltyp, $link, $info) { echo "\n\n\t".$zieltyp."\n\t".$link."\n\t"; echo "\n\t\t

".$info."

\n\t\n"; } // Ein Relationen-Feld anzeigen // col = Name der DB-Spalte // inhalt = gml_id oder Array mit gml_id's function objektverweis($col, $inhalt) { global $gkz, $showkey, $debug; // if ($debug > 1) {echo "

Verweis Typ '".$col."' auf Objekt(e): '".$inhalt."'.

";} switch ($col) { case 'hatdirektunten': // [] ++ Wie kann man dies Objekt finden? $olist=''; $arrhdu=explode(",", trim($inhalt, "{}")); foreach($arrhdu AS $hdugml) {$olist.=$hdugml."
";} tab_zeile('Hat direkt Unten', '', $olist, '', 'Verweis auf ein Objekt unter diesem Bauwerk, Typ unbekannt.'); break; case 'gehoertzu': // Assoziation zu: FeatureType AX_Gebaeude (ax_gebaeude) 0..1' if ($inhalt == '') { verweis_zeile('Haus', '', 'Das Bauwerk gehört zum Haus'); } else { $link="\n\t\tHaus "; verweis_zeile('Haus', $link, 'Das Bauwerk gehört zum Haus'); bw_gz_lage($inhalt); } break; // 'istabgeleitetaus'; 'traegtbeizu': 'istteilvon': // -> Keine Fälle vorhanden default: if ($debug > 1) {echo "

Der Feldname ".$col." ist in function 'objektverweis' noch nicht berücksichtigt.

";} } } // alle leer: // SELECT * FROM bauwerke_zusammenfassung WHERE NOT istabgeleitetaus IS NULL; // SELECT * FROM bauwerke_zusammenfassung WHERE NOT traegtbeizu IS NULL; // SELECT * FROM bauwerke_zusammenfassung WHERE NOT istteilvon IS NULL; // SELECT gml_id, hatdirektunten, st_asewkt( wkb_geometry ) as wkt FROM ax_bauwerkimgewaesserbereich WHERE NOT hatdirektunten IS NULL; // 1 Fall in 290: 2 / DENW15AL360000N7 , // SELECT gml_id, hatdirektunten, st_asewkt( wkb_geometry ) as wkt FROM ax_bauwerkimgewaesserbereich WHERE gml_id = 'DENW15AL360000N7'; // 34 Fälle in 200: // 16 Fälle in 300: // S T A R T ini_set("session.cookie_httponly", 1); session_start(); $allfld = "n"; $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren $cntget = extract($_GET); // Parameter in Variable umwandeln // strikte Validierung aller Parameter if (isset($gmlid)) { if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} } else { die("Fehlender Parameter"); } if (isset($gkz)) { if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} } else { die("Fehlender Parameter"); } if (!preg_match('#^[1-9]{1}$#', $btyp)) {die("Eingabefehler btyp");} // Bauwerks-Typ = Tabelle if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} if ($showkey === "j") {$showkey=true;} else {$showkey=false;} if (!preg_match('#^[j|n]{0,1}$#', $allfld)) {die ("Eingabefehler allfld");} if ($allfld === "j") {$allefelder=true;} else {$allefelder=false;} if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} include "alkis_conf_location.php"; include "alkisfkt.php"; echo << ALKIS Bauwerksdaten END; $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('

Abbruch

'); } // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. // Manuell an die URL anfügen, wirkt nur temporär und wird nicht in Links weiter gereicht. if ($nodebug === "j") {$debug=0;} $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbauwerk.php'"); if (!$con) echo "\n

Fehler beim Verbinden der DB

\n"; // Konstanten für Sortierung und Gruppierung $btyp_verkehr=1; $btyp_gewaesser=2; $btyp_sonst=3; $btyp_indu=4; $btyp_sport=5; $btyp_leitg=6; $btyp_trans=7; $btyp_turm=8; $btyp_vorrat=9; /* in ALLEN Bauwerks-Typen folgende Spalten, bisher NICHT verwendet: processstep_ax_li_processstep_mitdatenerhebung_description[] processstep_rationale[] processstep_datetime[] processstep_individualname[] processstep_organisationname[] processstep_positionname[] processstep_phone[] processstep_address[] processstep_onlineresource[] processstep_hoursofservice[] processstep_contactinstructions[] processstep_role[] processstep_ax_datenerhebung[] processstep_scaledenominator[] processstep_sourcereferencesystem[] processstep_sourceextent[] processstep_sourcestep[] herkunft_source_source_ax_datenerhebung[] herkunft_source_source_scaledenominator[] herkunft_source_source_sourcereferencesystem[] herkunft_source_source_sourceextent[] herkunft_source_source_sourcestep[] */ /* Fallunterscheidung: B a u w e r k s - T y p Nacheinander werden folgende Abfragen je Objekt ausgeführt: 1. sqlb: Standard-Spalten, die bei jedem Typ vorhanden sind 2. sqlk: Zusätzliche Key-Value-Beziehungen (mit Key und Erklärung) 3. sqlz: Zusätzliche Spalten, individuell je Objektart (einfache Werte-Darstellung) 4. sqlr: Relationen zu anderen Objektarten */ switch ($btyp) { case $btyp_verkehr: // 1 - V e r k e h r $btyptitle='Bauwerk im Verkehrsbereich'; $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 FROM ax_bauwerkimverkehrsbereich b1 LEFT JOIN ax_bauwerksfunktion_bauwerkimverkehrsbereich k1 ON b1.bauwerksfunktion=k1.wert WHERE b1.gml_id = $1 AND b1.endet IS NULL;"; $sqlk="SELECT b1.zustand, k1.beschreibung, k1.dokumentation FROM ax_bauwerkimverkehrsbereich b1 LEFT JOIN ax_zustand_bauwerkimverkehrsbereich k1 ON b1.zustand=k1.wert WHERE b1.gml_id = $1 AND b1.endet IS NULL;"; $sqlz="SELECT b1.bezeichnung, b1.breitedesobjekts, b1.durchfahrtshoehe FROM ax_bauwerkimverkehrsbereich b1 WHERE b1.gml_id = $1 AND b1.endet IS NULL;"; $sqlr="SELECT b1.hatdirektunten FROM ax_bauwerkimverkehrsbereich b1 WHERE b1.gml_id = $1 AND b1.endet IS NULL;"; break; case $btyp_gewaesser: // 2 - G e w ä s s e r $btyptitle='Bauwerk im Gewässerbereich'; $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 FROM ax_bauwerkimgewaesserbereich b2 LEFT JOIN ax_bauwerksfunktion_bauwerkimgewaesserbereich ug ON b2.bauwerksfunktion=ug.wert WHERE b2.gml_id = $1 AND b2.endet IS NULL;"; $sqlk="SELECT b2.zustand, k2.beschreibung, k2.dokumentation FROM ax_bauwerkimgewaesserbereich b2 LEFT JOIN ax_zustand_bauwerkimgewaesserbereich k2 ON b2.zustand=k2.wert WHERE b2.gml_id = $1 AND b2.endet IS NULL;"; $sqlz="SELECT b2.bezeichnung FROM ax_bauwerkimgewaesserbereich b2 WHERE b2.gml_id = $1 AND b2.endet IS NULL;"; $sqlr="SELECT b2.hatdirektunten FROM ax_bauwerkimgewaesserbereich b2 WHERE b2.gml_id = $1 AND b2.endet IS NULL;"; break; case $btyp_sonst: // 3 - S o n s t i g e Bauwerke $btyptitle='Sonstiges Bauwerk oder sonstige Einrichtung'; $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 FROM ax_sonstigesbauwerkodersonstigeeinrichtung b3 LEFT JOIN ax_bauwerksfunktion_sonstigesbauwerkodersonstigeeinrichtun k3 ON b3.bauwerksfunktion=k3.wert WHERE b3.gml_id = $1 AND b3.endet IS NULL;"; $sqlk="SELECT b3.funktion, k3.beschreibung AS beschr, k3.dokumentation AS doku, b3.hydrologischesmerkmal, hm.beschreibung AS hmbeschr, hm.dokumentation AS hmdoku FROM ax_sonstigesbauwerkodersonstigeeinrichtung b3 LEFT JOIN ax_funktion_bauwerk k3 ON b3.funktion=k3.wert LEFT JOIN ax_hydrologischesmerkmal_sonstigesbauwerkodersonstigeeinri hm ON b3.hydrologischesmerkmal=hm.wert WHERE b3.gml_id = $1 AND b3.endet IS NULL;"; $sqlz="SELECT b3.bezeichnung, b3.objekthoehe FROM ax_sonstigesbauwerkodersonstigeeinrichtung b3 WHERE b3.gml_id = $1 AND b3.endet IS NULL;"; $sqlr="SELECT b3.hatdirektunten, b3.gehoertzu FROM ax_sonstigesbauwerkodersonstigeeinrichtung b3 WHERE b3.gml_id = $1 AND b3.endet IS NULL;"; /* gehoertzubauwerk_ax_sonstigesbauwerkodersonstigeeinrichtun gehoertzubauwerk_ax_bauwerkoderanlagefuersportfreizeitunde gehoertzubauwerk_ax_leitung gehoertzubauwerk_ax_bauwerkoderanlagefuerindustrieundgewer gehoertzubauwerk_ax_einrichtunginoeffentlichenbereichen gehoertzubauwerk_ax_heilquellegasquelle gehoertzubauwerk_ax_historischesbauwerkoderhistorischeeinr gehoertzubauwerk_ax_turm gehoertzubauwerk_ax_vorratsbehaelterspeicherbauwerk gehoertzubauwerk_ax_transportanlage gehoertzubauwerk_ax_wegpfadsteig gehoertzubauwerk_ax_gleis gehoertzubauwerk_ax_bahnverkehrsanlage gehoertzubauwerk_ax_bauwerkimgewaesserbereich gehoertzubauwerk_ax_strassenverkehrsanlage gehoertzubauwerk_ax_seilbahnschwebebahn gehoertzubauwerk_ax_einrichtungenfuerdenschiffsverkehr gehoertzubauwerk_ax_bauwerkimverkehrsbereich gehoertzubauwerk_ax_flugverkehrsanlage gehoertzubauwerk_ax_gewaesserstationierungsachse gehoertzubauwerk_ax_sickerstrecke gehoertzubauwerk_ax_schifffahrtsliniefaehrverkehr gehoertzubauwerk_ax_wasserspiegelhoehe gehoertzubauwerk_ax_abschnitt gehoertzubauwerk_ax_ast gehoertzubauwerk_ax_netzknoten gehoertzubauwerk_ax_nullpunkt gehoertzubauwerk_ax_hafen gehoertzubauwerk_ax_testgelaende gehoertzubauwerk_ax_schleuse gehoertzubauwerk_ax_ortslage gehoertzubauwerk_ax_grenzuebergang gehoertzubauwerk_ax_polder gehoertzubauwerk_ax_gewaessermerkmal gehoertzubauwerk_ax_untergeordnetesgewaesser gehoertzubauwerk_ax_vegetationsmerkmal */ break; case $btyp_indu: // 4 - Bauwerk oder Anlage für I n d u s t r i e und Gewerbe $btyptitle="Bauwerk oder Anlage für Industrie und Gewerbe"; $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 FROM ax_bauwerkoderanlagefuerindustrieundgewerbe b4 LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuerindustrieundgewer k4 ON b4.bauwerksfunktion=k4.wert WHERE b4.gml_id = $1 AND b4.endet IS NULL;"; $sqlk="SELECT b4.zustand, k4.beschreibung, k4.dokumentation FROM ax_bauwerkoderanlagefuerindustrieundgewerbe b4 LEFT JOIN ax_zustand_bauwerkoderanlagefuerindustrieundgewerbe k4 ON b4.zustand=k4.wert WHERE b4.gml_id = $1 AND b4.endet IS NULL;"; $sqlz="SELECT b4.bezeichnung, b4.objekthoehe FROM ax_bauwerkoderanlagefuerindustrieundgewerbe b4 WHERE b4.gml_id = $1 AND b4.endet IS NULL;"; $sqlr="SELECT b4.hatdirektunten FROM ax_bauwerkoderanlagefuerindustrieundgewerbe b4 WHERE b4.gml_id = $1 AND b4.endet IS NULL;"; break; case $btyp_sport: // 5 - Bauwerk oder Anlage für S p o r t , Freizeit und Erholung $btyptitle="Bauwerk oder Anlage für Sport, Freizeit und Erholung"; $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 FROM ax_bauwerkoderanlagefuersportfreizeitunderholung b5 LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuersportfreizeitunde k5 ON b5.bauwerksfunktion=k5.wert WHERE b5.gml_id = $1 AND b5.endet IS NULL;"; $sqlk="SELECT b5.sportart, k5.beschreibung, k5.dokumentation FROM ax_bauwerkoderanlagefuersportfreizeitunderholung b5 LEFT JOIN ax_sportart_bauwerkoderanlagefuersportfreizeitunderholung k5 ON b5.sportart=k5.wert WHERE b5.gml_id = $1 AND b5.endet IS NULL;"; $sqlz="SELECT b5.breitedesobjekts FROM ax_bauwerkoderanlagefuersportfreizeitunderholung b5 WHERE b5.gml_id = $1 AND b5.endet IS NULL;"; $sqlr="SELECT b5.hatdirektunten FROM ax_bauwerkoderanlagefuersportfreizeitunderholung b5 WHERE b5.gml_id = $1 AND b5.endet IS NULL;"; break; case $btyp_leitg: // 6 - L e i t u n g $btyptitle="Leitung"; $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 FROM ax_leitung b6 LEFT JOIN ax_bauwerksfunktion_leitung k6 ON b6.bauwerksfunktion=k6.wert WHERE b6.gml_id = $1 AND b6.endet IS NULL;"; $sqlk=""; $sqlz="SELECT b6.spannungsebene FROM ax_leitung b6 WHERE b6.gml_id = $1 AND b6.endet IS NULL;"; $sqlr="SELECT b6.hatdirektunten FROM ax_leitung b6 WHERE b6.gml_id = $1 AND b6.endet IS NULL;"; break; case $btyp_trans: // 7 - T r a n s p o r t a n l a g e $btyptitle="Transportanlage"; $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 FROM ax_transportanlage b7 LEFT JOIN ax_bauwerksfunktion_transportanlage k7 ON b7.bauwerksfunktion=k7.wert WHERE b7.gml_id = $1 AND b7.endet IS NULL;"; $sqlk="SELECT b7.lagezurerdoberflaeche, k7.beschreibung, k7.dokumentation FROM ax_transportanlage b7 LEFT JOIN ax_lagezurerdoberflaeche_transportanlage k7 ON b7.lagezurerdoberflaeche=k7.wert WHERE b7.gml_id = $1 AND b7.endet IS NULL;"; $sqlz="SELECT b7.produkt FROM ax_transportanlage b7 WHERE b7.gml_id = $7 AND b7.endet IS NULL;"; $sqlr="SELECT b7.hatdirektunten FROM ax_transportanlage b7 WHERE b7.gml_id = $1 AND b7.endet IS NULL;"; break; case $btyp_turm: // 8 - T u r m (Sonderfall Array) $btyptitle="Turm"; $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 FROM ax_turm b8 LEFT JOIN ax_bauwerksfunktion_turm k8 ON k8.wert =ANY(b8.bauwerksfunktion) WHERE b8.gml_id = $1 AND b8.endet IS NULL;"; $sqlk="SELECT b8.zustand, k8.beschreibung, k8.dokumentation FROM ax_turm b8 LEFT JOIN ax_zustand_turm k8 ON b8.zustand=k8.wert WHERE b8.gml_id = $1 AND b8.endet IS NULL;"; $sqlz="SELECT b8.objekthoehe FROM ax_turm b8 WHERE b8.gml_id = $1 AND b8.endet IS NULL;"; $sqlr="SELECT b8.hatdirektunten, b8.zeigtauf FROM ax_turm b8 WHERE b8.gml_id = $1 AND b8.endet IS NULL;"; break; case $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 $btyptitle="Vorratsbehälter, Speicherbauwerk"; $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 FROM ax_vorratsbehaelterspeicherbauwerk b9 LEFT JOIN ax_bauwerksfunktion_vorratsbehaelterspeicherbauwerk k9 ON b9.bauwerksfunktion=k9.wert WHERE b9.gml_id = $1 AND b9.endet IS NULL;"; $sqlk="SELECT b9.lagezurerdoberflaeche, k9.beschreibung, k9.dokumentation, b9.speicherinhalt, sp9.beschreibung AS spbes, sp9.dokumentation AS spdok FROM ax_vorratsbehaelterspeicherbauwerk b9 LEFT JOIN ax_lagezurerdoberflaeche_vorratsbehaelterspeicherbauwerk k9 ON b9.lagezurerdoberflaeche=k9.wert LEFT JOIN ax_speicherinhalt_vorratsbehaelterspeicherbauwerk sp9 ON b9.speicherinhalt=sp9.wert WHERE b9.gml_id = $1 AND b9.endet IS NULL;"; $sqlz="SELECT b9.objekthoehe FROM ax_vorratsbehaelterspeicherbauwerk b9 WHERE b9.gml_id = $1 AND b9.endet IS NULL;"; $sqlr="SELECT b9.hatdirektunten FROM ax_vorratsbehaelterspeicherbauwerk b9 WHERE b9.gml_id = $1 AND b9.endet IS NULL;"; break; default: die('

Fehler showkey

'); break; } // 1. sqlb: Standard-Spalten, die bei jedem Typ vorhanden sind $v=array($gmlid); $resb=pg_prepare("", $sqlb); $resb=pg_execute("", $v); if (!$resb) { echo "\n

Fehler bei Bauwerksdaten Standardfelder.

"; if ($debug > 2) {echo "\n

SQL=
".str_replace("$1","'".$gmlid."'",$sqlb)."'

";} if ($debug > 1) {echo "\n

Fehler:".pg_result_error($resb)."

";} } else { if (!$rowb = pg_fetch_assoc($resb)) { echo "\n

Fehler! Kein Treffer für gml_id=".$gmlid."

"; die('

Abbruch

'); // Das würde sich sonst 2x wiederholen } else { // Treffer // Seitenkopf echo "

ALKIS Bauwerk ".$btyp." - ".$gmlid." 

"; // Balken, Farbe wie WMS echo "\n

".$btyptitle."

"; echo "\n"; echo "\n" ."\n" ."\n\t" ."\n\t" ."\n\t" ."\n"; tab_zeile('Bauwerksfunktion', $rowb["bauwerksfunktion"], htmlentities($rowb["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowb["dokumentation"], ENT_QUOTES, "UTF-8")); tab_zeile('Name', '', htmlentities($rowb["name"], ENT_QUOTES, "UTF-8"), '', ''); tab_zeile('Statement', '', htmlentities($rowb["statement"], ENT_QUOTES, "UTF-8"), '', ''); // G e o m e t r i e und Fläche $geotyp=$rowb["bgeotyp"]; switch ($geotyp) { case "POINT": $geodeutsch=$geotyp." bedeutet 'Punkt', einzelne Koordinate."; break; case "LINESTRING": $geodeutsch=$geotyp." bedeutet 'Linie'."; break; case "POLYGON": $geodeutsch=$geotyp." bedeutet eine einzelne 'Fläche'."; break; case "MULTIPOLYGON": $geodeutsch=$geotyp." bedeutet eine 'Fläche', die aus mehreren Teilen bestehen kann oder die Aussparungen haben kann."; break; default: $geodeutsch=""; } tab_zeile('Geometrietyp', '', $geotyp, '', $geodeutsch); if ($geotyp == "POLYGON" or $geotyp == "MULTIPOLYGON") { $flaeche=$rowb["flae"]." m²"; tab_zeile('Fläche', '', $flaeche, '', "Die 'Fläche' des Bauwerks wird aus der Geometrie berechnet, aber nur bei POLYGON."); } } pg_free_result($resb); } // 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 // Andere Art der Darstellung als die schlichten Zusatzfelder, Key optional anzeigen, Erklärung zum Wert aus Schlüsseltabelle if ($sqlk != '') { $v=array($gmlid); $resk=pg_prepare("", $sqlk); $resk=pg_execute("", $v); if (!$resk) { echo "\n

Fehler bei Schlüsseltabelle ".$btyp."

"; if ($debug > 2) {echo "\n

SQL=
".str_replace("$1","'".$gmlid."'",$sqlk)."'

";} if ($debug > 1) {echo "

Fehler:".pg_result_error($resk)."

";} } else { if (!$rowk = pg_fetch_array($resk)) { echo "\n

Fehler! Kein Treffer für gml_id=".$gmlid."

"; } else { // Treffer switch ($btyp) { // individuell je Typ case $btyp_verkehr: // 1 tab_zeile('Zustand', $rowk["zustand"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); break; case $btyp_gewaesser: // 2 tab_zeile('Zustand', $rowk["zustand"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); break; case $btyp_sonst: // 3 tab_zeile('Funktion', $rowk["funktion"], htmlentities($rowk["beschr"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["doku"], ENT_QUOTES, "UTF-8")); tab_zeile('Hydrologisches Merkmal', $rowk["hydrologischesmerkmal"], htmlentities($rowk["hmbeschr"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["hmdoku"], ENT_QUOTES, "UTF-8")); break; case $btyp_indu: // 4 tab_zeile('Zustand', $rowk["zustand"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); break; case $btyp_sport: // 5 tab_zeile('Sportart', $rowk["sportart"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); break; case $btyp_trans: // 7 tab_zeile('Lage zur Erdoberfläche', $rowk["lagezurerdoberflaeche"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); break; case $btyp_turm: // 8 tab_zeile('Zustand', $rowk["zustand"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); break; case $btyp_vorrat: // 9 tab_zeile('Lage zur Erdoberfläche', $rowk["lagezurerdoberflaeche"], htmlentities($rowk["beschreibung"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["dokumentation"], ENT_QUOTES, "UTF-8")); tab_zeile('Speicherinhalt', $rowk["speicherinhalt"], htmlentities($rowk["spbes"], ENT_QUOTES, "UTF-8"), '', htmlentities($rowk["spdok"], ENT_QUOTES, "UTF-8")); break; } } pg_free_result($resk); } } // 3. sqlz: Individuelle Z u s a t z - Spalten je Bauwerks-Art // einfache Werte-Anzeige, ohne Schlüsseltabelle if ($sqlz != '') { $v=array($gmlid); $resz=pg_prepare("", $sqlz); $resz=pg_execute("", $v); if (!$resz) { echo "\n

Fehler bei Bauwerk Relation.

"; if ($debug > 2) {echo "\n

SQL=
".str_replace("$1","'".$gmlid."'",$sqlz)."'

";} if ($debug > 1) {echo "

Fehler:".pg_result_error($resz)."

";} } else { if (!$rowz = pg_fetch_array($resz)) { echo "\n

Fehler! Kein Treffer für gml_id=".$gmlid."

"; } else { // Die Spalten im Row abarbeiten $anzcol=pg_num_fields($resz); // if ($debug > 1) {echo "

".$anzcol." Zusatz-Spalten vorhanden"."

";} for ($i = 0; $i < $anzcol; $i++) { $k=pg_field_name($resz, $i); $v=$rowz[$i]; if ($v != "" OR $allefelder) { zusatz_spalte($k, $v); } } } pg_free_result($resz); } } // 4. sqlr: R e l a t i o n e n zu anderen Objektarten if ($sqlr != '') { $v=array($gmlid); $resr=pg_prepare("", $sqlr); $resr=pg_execute("", $v); if (!$resr) { echo "\n

Fehler bei Bauwerksdaten Zusatzfelder.

"; if ($debug > 2) {echo "\n

SQL=
".str_replace("$1","'".$gmlid."'",$sqlr)."'

";} if ($debug > 1) {echo "

Fehler:".pg_result_error($resr)."

";} } else { if (!$rowr = pg_fetch_array($resr)) { echo "\n

Fehler! Kein Treffer für gml_id=".$gmlid."

"; } else { // Die Spalten im Row abarbeiten $anzcol=pg_num_fields($resr); // if ($debug > 1) {echo "

".$anzcol." Relationen-Spalten vorhanden"."

";} for ($i = 0; $i < $anzcol; $i++) { $k=pg_field_name($resr, $i); $v=$rowr[$i]; // Array mit gml_id anderer Objekte if ($v != "" OR $allefelder) { objektverweis($k, $v); } } } pg_free_result($resr); } } echo "\n
AttributWert" ."\n\t\t

Erklärung zum Attribut

" ."\n\t\t

Erklärung zum Inhalt

" ."\n\t
\n"; // +++ Test, ob ein zweiter Satz zum Bauwerk gefunden wird? Das sollte nicht sein. ?>

zurück  Drucken