Fehler beim Verbinden der DB

\n"; // Flurstueck $sqlf ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, f.zeitpunktderentstehung, "; $sqlf.="g.gemarkungsnummer, g.bezeichnung "; $sqlf.="FROM ax_flurstueck f "; $sqlf.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; $sqlf.="WHERE f.gml_id= $1;"; $v = array($gmlid); $resf = pg_prepare("", $sqlf); $resf = pg_execute("", $v); if (!$resf) { echo "\n

Fehler bei Flurstücksdaten\n
".$sqlf."

\n"; } if ($rowf = pg_fetch_array($resf)) { $gemkname=htmlentities($rowf["bezeichnung"], ENT_QUOTES, "UTF-8"); $gmkgnr=$rowf["gemarkungsnummer"]; $flurnummer=$rowf["flurnummer"]; $flstnummer=$rowf["zaehler"]; $nenner=$rowf["nenner"]; if ($nenner > 0) { // BruchNr $flstnummer.="/".$nenner; } $flstflaeche = $rowf["amtlicheflaeche"] ; } else { echo "

Fehler! Kein Treffer fuer gml_id=".$gmlid."

"; } // Balken echo "

ALKIS Flurstück (Gebäude) ".$gmkgnr."-".$flurnummer."-".$flstnummer." 

\n"; echo "\n

Flurstück (Gebäude)

\n"; // Kennzeichen in Rahmen echo "\n\n\n\n\n\n
"; echo "\n\t"; echo "\n\t"; echo "\n\t\t"; echo "\n\t\t"; echo "\n\t\t"; echo "\n\t"; echo "\n\t"; echo "\n\t\t"; echo "\n\t\t"; echo "\n\t\t"; echo "\n\t"; echo "\n\t
GmkgFlurFlurst-Nr.
"; if ($shaowkey) { echo "".$gmkgnr."
"; } echo $gemkname."
".$flurnummer."".$flstnummer."
"; echo "\n
"; // Links zu anderen Nachweisen echo "\n\t"; if ($idanzeige) {linkgml($gkz, $gmlid, "Flurstück"); } echo "\n\t
"; // Ende Seitenkopf echo "\n

Flurstücksfläche: ".number_format($flstflaeche,0,",",".") . " m²

"; echo "\n\n

Gebäude

"; echo "\n

.. auf oder an dem Flurstück. Ermittelt durch Verschneidung der Geometrie.

"; // G e b a e u d e $sqlg ="SELECT g.gml_id, g.name, g.description, g.bauweise, g.gebaeudefunktion, g.anzahlderoberirdischengeschosse AS aog, "; $sqlg.=" h.bauweise_beschreibung, u.bezeichner, v.beziehungsart, v.beziehung_zu, l.hausnummer, "; // Gebaeudeflaeche komplett auch ausserhalb des FS $sqlg.="round(area(g.wkb_geometry)::numeric,2) AS gebflae, "; // wie viel vom GEB liegt im FS? $sqlg.="round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, "; // liegt das GEB komplett im FS? $sqlg.="st_within(g.wkb_geometry,f.wkb_geometry) as drin "; // FS und GEB geometrisch verschneiden $sqlg.="FROM ax_flurstueck f, ax_gebaeude g "; // Entschluesseln $sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id "; $sqlg.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert "; // Beziehungen verfolgen (holt die Hausnummer) $sqlg.="LEFT JOIN alkis_beziehungen v ON g.gml_id=v.beziehung_von "; $sqlg.="LEFT JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; // auch die Nebengebaeude-Pseudo-Nummern suchen? // $sqlg.="LEFT JOIN ax_lagebezeichnungmitpseudonummer p ON v.beziehung_zu=p.gml_id "; // ID des aktuellen FS $sqlg.="WHERE f.gml_id= $1 "; // ALT: "within" liefert nur Gebaeude, die komplett im Flurstueck liegen //$sqlg.="AND within(g.wkb_geometry,f.wkb_geometry) = true "; // "intersects" liefert ueberlappende Flaechen $sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true "; // RLP: keine Relationen zu Nebengebaeuden: // auf Qualifizierung verzichten, sonst werden Nebengebäude nicht angezeigt //$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') "; $sqlg.="ORDER BY schnittflae DESC;"; // Problem: HsNr ist linksbuedig Char: //$sqlg.="ORDER BY hausnummer, flaeche DESC;"; // ax_gebaeude (zeigtAuf) ax_LagebezeichnungMitHausnummer (Hauptgebäude) // ax_gebaeude (hat) ax_LagebezeichnungMitPseudonummer (Nebengebäude) $v = array($gmlid); $resg = pg_prepare("", $sqlg); $resg = pg_execute("", $v); if (!$resg) { echo "\n

Keine Gebäude ermittelt.
\nSQL=

\n"; echo "\n

".$sqlg."

\n"; } $gebnr=0; echo "\n
\n"; // Header echo "\n\n"; //echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n"; // Body while($rowg = pg_fetch_array($resg)) { $gebnr = $gebnr + 1; $gebflsum = $gebflsum + $rowg["schnittflae"]; echo "\n"; echo "\n\t"; if ($rowg["drin"] == "t") { // 3 komplett enthalten echo "\n\t"; echo "\n\t"; } else { if ($rowg["schnittflae"] == "0.00") { // angrenzend echo "\n\t"; echo "\n\t"; } else { // Teile enthalten echo "\n\t"; echo "\n\t"; } } echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n"; } // Footer if ($gebnr == 0) { echo "\n
Lfd. Nr.Nr/NameFläche Gesch.FunktionBauweise
".$rowg["hausnummer"]." ".$rowg["name"]; if ($idanzeige) { linkgml($gkz, $rowg["gml_id"], "Gebäude"); } echo "".$rowg["schnittflae"]." m²  angrenzend".$rowg["schnittflae"]." m²(von ".$rowg["gebflae"]." m²)".$rowg["aog"].""; if ($showkey) { echo "".$rowg["gebaeudefunktion"]." "; } echo $rowg["bezeichner"].""; if ($showkey) { echo "".$rowg["bauweise"]." "; } echo $rowg["bauweise_beschreibung"]."
"; echo "


Keine Gebäude auf diesem Flurstück.
 

"; } else { echo "\n"; echo "\n\tSumme:"; // 1 echo "\n\t".number_format($gebflsum,0,",",".")."    m²"; echo "\n\t "; // 3 echo "\n\t "; // 4 echo "\n\t "; // 5 echo "\n\t "; // 6 echo "\n"; echo "\n"; $unbebaut = number_format(($flstflaeche - $gebflsum),0,",",".") . " m²"; echo "\n

Flurstücksfläche abzüglich Gebäudefläche: ".$unbebaut."

"; } ?>