Fehler beim Verbinden der DB

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

Fehler bei Flurstücksdaten.

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

SQL=
".$sqlf."
$1 = gml_id = '".$gmlid."'

";} } 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 "\n

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

"; } // Balken echo "

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

"; echo "\n

Flurstück (Gebäude)

"; // Kennzeichen in Rahmen echo "\n\n\n\n\n\n
" ."\n\t" ."\n\t" ."\n\t\t" ."\n\t\t" ."\n\t\t" ."\n\t\n\t" ."\n\t\t" ."\n\t\t" ."\n\t\t" ."\n\t" ."\n\t
GmkgFlurFlurst-Nr.
"; if ($showkey) {echo "".$gmkgnr."
";} echo $gemkname." 
".$flurnummer."".$flstnummer."
" ."\n
"; // Links zu anderem Nachweis echo "\n\t" ."\n\t
"; // Ende Seitenkopf echo "\n

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

"; pg_free_result($resf); echo "\n\n

Gebäude

" ."\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.bauweise, g.gebaeudefunktion, h.v AS bauweise_beschreibung, u.v AS bezeichner, u.d AS gfktd, g.zustand, z.v AS bzustand, round(st_area(g.wkb_geometry)::numeric,2) AS gebflae, "; // GEB-Flaeche komplett auch die Fl. ausserhalb des FS $sqlg.="round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, "; // wie viel vom GEB liegt im FS? $sqlg.="st_within(g.wkb_geometry,f.wkb_geometry) as drin "; // liegt das GEB komplett im FS? $sqlg.="FROM ax_flurstueck f, ax_gebaeude g LEFT JOIN alkis_wertearten h ON cast(g.bauweise AS character varying) = h.k AND h.element='ax_gebaeude' and h.bezeichnung='bauweise' LEFT JOIN alkis_wertearten u ON cast(g.gebaeudefunktion AS character varying) = u.k AND u.element='ax_gebaeude' and u.bezeichnung='gebaeudefunktion' LEFT JOIN alkis_wertearten z ON cast(g.zustand AS character varying) = z.k AND z.element='ax_gebaeude' and z.bezeichnung='zustand' WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; // ID des akt. FS // "within" -> nur Geb., die komplett im FS liegen. "intersects" -> auch teil-ueberlappende Flst. $sqlg.="AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true "; // RLP: keine Relationen zu Nebengebäuden. Auf Qualifizierung verzichten, sonst werden Nebengebäude nicht angezeigt //$sqlg.="AND (v.beziehungsart='zeigtAuf' OR v.beziehungsart='hat') "; $sqlg.="ORDER BY schnittflae DESC;"; $v=array($gmlid); $resg=pg_prepare("", $sqlg); $resg=pg_execute("", $v); if (!$resg) { echo "\n

Fehler bei Gebäude-Verschneidung.

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

SQL=
".$sqlg."
$1 = gml_id = '".$gmlid."'

";} } $gebnr=0; $gebflsum=0; echo "\n
\n"; // T-Header echo "\n\n" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n"; // T-Body while($rowg = pg_fetch_array($resg)) { $gebnr = $gebnr + 1; $ggml=$rowg["gml_id"]; $gebflsum=$gebflsum + $rowg["schnittflae"]; $gnam= trim(trim($rowg["name"], "{}"), '"'); // Gebaeude-Name ist ein Array in der DB: '{"A","B"}' // Mehrfachbelegung nur theoretisch. Entklammern reicht. Mal mit und mal ohne "" drum !? /* SELECT name FROM ax_gebaeude WHERE NOT name IS NULL AND array_length(name, 1) > 1; */ $gfktk=htmlentities($rowg["gebaeudefunktion"], ENT_QUOTES, "UTF-8"); // Geb.-Funktion Key $gfktv=htmlentities($rowg["bezeichner"], ENT_QUOTES, "UTF-8"); // Geb.Funktion Value $gfktd=htmlentities($rowg["gfktd"], ENT_QUOTES, "UTF-8"); // Gebäude-Funktion-Description $gzus=htmlentities($rowg["zustand"], ENT_QUOTES, "UTF-8"); $gzustand=htmlentities($rowg["bzustand"], ENT_QUOTES, "UTF-8"); // 3 Fälle unterscheiden: if ($rowg["drin"] == "t") { // Gebäude liegt komplett in Flurstück $f1=$rowg["schnittflae"]." m²"; $f2=" "; $gstyle="gin"; // siehe .css } else { if ($rowg["schnittflae"] == "0.00") { // Gebäude angrenzend (Grenzbebauung) $gstyle="gan"; $f1=" "; $f2="angrenzend"; } else { // Teile des Gebäudes stehen auf dem Flurstück $gstyle="gtl"; $f1=$rowg["schnittflae"]." m²"; $f2="(von ".$rowg["gebflae"]." m²)"; } } echo "\n" ."\n\t"; echo "\n\t" // Sp. 2 ."\n\t"; // Flächenangaben echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n\t"; echo "\n\t" ."\n"; } // Footer if ($gebnr == 0) { echo "\n
NameFläche FunktionBauweiseZustand
"; // Sp. 1 Name if ($gnam != "") {echo "".$gnam."
";} echo "\n\t
".$f1."".$f2.""; // Sp. 3 Funktion if ($showkey) {echo "".$gfktk." ";} echo $gfktv.""; if ($showkey) {echo "".$rowg["bauweise"]." ";} echo $rowg["bauweise_beschreibung"]." "; if ($showkey) {echo "".$gzus." ";} echo $gzustand." 
" ."


Keine Gebäude auf diesem Flurstück.
 

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


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


"; } pg_free_result($resg); ?>

zurück  Drucken