LagePseudonummer Spalte lfd.-Nr raus wegen Verwechslungsgefhr mit lfd-Nr.-Nebengebaeuude 02.09.2010 Mit Icons */ ini_set('error_reporting', 'E_ALL & ~ E_NOTICE'); session_start(); // Bindung an Mapbender-Authentifizierung require_once("/data/mapwww/http/php/mb_validateSession.php"); require_once("/data/conf/alkis_www_conf.php"); #require_once(dirname(__FILE__)."/../../../../php/mb_validateSession.php"); #require_once(dirname(__FILE__)."/../../../../conf/alkis_conf.php"); include("alkisfkt.php"); ?> ALKIS Gebäudenachweis 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) $flstnummer.="/".$nenner; // BruchNr $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\n\t\t\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.
".$gmkgnr."
".$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, "; $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_bauweise_gebaeude h ON g.bauweise = h.bauweise_id "; $sqlg.="LEFT JOIN ax_gebaeude_gebaeudefunktion 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='".$gmlid."' "; // 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) $resg=pg_query($con,$sqlg); 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"; // 1 echo "\n\t"; // 2 echo "\n\t"; // 3 echo "\n\t"; echo "\n\t"; echo "\n\t"; // 5 echo "\n\t"; // 6 echo "\n"; // Body while($rowg = pg_fetch_array($resg)) { $gebnr = $gebnr + 1; $gebflsum = $gebflsum + $rowg["schnittflae"]; echo "\n"; //echo "\n\t"; // 1 echo "\n\t"; // 2 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"; // 4 echo "\n\t"; // 5 echo "\n\t"; echo "\n"; } // Footer if ($gebnr == 0) { echo "\n
Lfd. Nr.Nr/NameFläche FunktionBauweise
".$gebnr."".$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["gebaeudefunktion"]." ".$rowg["bezeichner"]."".$rowg["bauweise"]." ".$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."

"; } // Diese Berechnung beruht auf der Annahme, dass alle gefundenen Gebaeude vollstaendig innerhalb // des Flurstuecks liegen. Fehler bei Gebäuden auf der Grenze. //echo "\n

".$sqlg."

\n"; ?>