END; $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbaurecht.php'"); if (!$con) echo "\n

Fehler beim Verbinden der DB

"; // Spalte "a.d" ist immer leer $sql ="SELECT r.ogc_fid, r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez, a.v AS adfbez, d.bezeichnung AS stellbez, d.stellenart, wd.v, wd.d, round(st_area(r.wkb_geometry)::numeric,0) AS flae FROM ax_bauraumoderbodenordnungsrecht r LEFT JOIN alkis_wertearten a ON cast(r.artderfestlegung AS character varying)=a.k AND a.element='ax_bauraumoderbodenordnungsrecht' AND a.bezeichnung='artderfestlegung' LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle LEFT JOIN alkis_wertearten wd ON cast(d.stellenart AS character varying)=wd.k AND wd.element='ax_dienststelle' AND wd.bezeichnung='stellenart' WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;"; $v = array($gmlid); $res = pg_prepare("", $sql); $res = pg_execute("", $v); if (!$res) { echo "\n

Fehler bei Baurecht.

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

SQL=
".htmlentities($sql, ENT_QUOTES, "UTF-8")."
$1 = ".$gmlid."

";} } if ($row = pg_fetch_array($res)) { $artfest=$row["adfkey"]; // Art der Festlegung, Key $verfnr=$row["rechtbez"]; // Verfahrens-Nummer $enam=$row["name"]; $stellb=$row["stellbez"]; $stella=$row["stellenart"]; // Balken echo "

ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr." 

"; echo "\n

Bau-, Raum- oder Bodenordnungsrecht

"; echo "\n" ."\n" ."\n\t\n\t" ."\n"; if ($enam != "") { echo "\n" ."\n\t" ."\n\t" . "\n"; } if ($verfnr != "") { echo "\n" ."\n\t" ."\n\t" ."\n"; } if ($stellb != "") { // z.B. Umlegung *mit* und Baulast *ohne* Dienststelle, darum bezirk testen echo "\n" ."\n\t\n\t" ."\n"; if ($stella != "") { echo "\n" ."\n\t" ."\n\t" ."\n"; } } echo "\n" ."\n\t"; $flae=number_format($row["flae"],0,",",".")." m²"; echo "\n\t" ."\n" . "\n
Art der Festlegung:"; if ($showkey) {echo "(".$artfest.") ";} echo "".$row["adfbez"]."
Eigenname des Gebietes:".$enam."
Verfahrensnummer:".$verfnr."
Dienststelle:"; if ($showkey) {echo "(".$row["stelle"].") ";} echo $stellb ."
Art der Dienststelle:"; if ($showkey) {echo " (".$stella.")";} echo "".$row["v"].""; echo "
Fläche:".$flae."
"; } else { echo "\n

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

"; } echo "\n

betroffene Flurstücke

\n" ."\n

Ermittelt durch geometrische Verschneidung. Nach Größe absteigend.

"; $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, round(st_area(ST_Intersection(r.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL "; if ($filtgem == '' ) { // ungefiltert $v=array($gmlid); } else { $sql.="AND f.kreis = $2 AND f.gemeinde = $3 "; // Zuständiges Gebiet $v=array($gmlid, $filtkreis, $filtgem); } $sql.="AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05 ORDER BY schnittflae DESC LIMIT 50;"; // > 0.0 ist gemeint, Ungenauigkeit durch st_simplify // Limit: Flurbereinig. kann gross werden! // Trotz Limit lange Antwortzeit, wegen OrderBy -> intersection $res=pg_prepare("", $sql); $res=pg_execute("", $v); if (!$res) { echo "\n

Keine Flurstücke ermittelt.
\nSQL=

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

SQL=
".htmlentities($sql, ENT_QUOTES, "UTF-8")."
$1 = ".$gmlid."

";} } echo "\n" ."\n" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n"; $fscnt=0; while($row = pg_fetch_array($res)) { $fscnt++; echo "\n" ."\n\t" ."\n\t" ."\n\t" ."\n\t" ."\n"; } echo "\n
FlurstückFlächevon
".$row["flurnummer"]."-".$row["zaehler"]; $nen=$row["nenner"]; if ($nen != "") {echo "/".$nen;} echo "".$row["schnittflae"]." m²".$row["amtlicheflaeche"]." m²
"; if ($fscnt == 0) { // nicht gefunden if ($filtgem == '' ) { // ungefiltert echo "\n

Kein Flurstück gefunden.

"; } else { // Wahrscheinliche Ursache = Filter echo "\n

Kein Flurstück im berechtigten Bereich.

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

SQL=
".htmlentities($sql, ENT_QUOTES, "UTF-8")."
$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."

";} } } elseif ($fscnt == 50) { echo "

... und weitere Flurstücke (Limit 50 erreicht).

"; } pg_close($con); echo <<
zurück  Drucken  END; footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>