Fehler beim Verbinden der DB\n";
// Lagebezeichnung
$sql ="SELECT s.bezeichnung AS snam, k.bezeichnung AS knam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, ";
switch ($ltyp) {
case "m": // "Mit HsNr"
$sql.="l.hausnummer ";
break;
case "p": // "mit PseudoNr"
$sql.="l.pseudonummer, l.laufendenummer ";
break;
case "o": //"Ohne HsNr"
$sql.="l.unverschluesselt ";
break;
}
$sql.="FROM ".$tnam." l ";
// Gemeinde, Kreis, Strasse entschluesseln
$sql.="LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde ";
$sql.="LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis ";
$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ";
if ($dbvers == "05") { // bis PostNAS 0.5
// Besonderheit: unterschiedliche Feldformate und Fuellungen!!!
// +++ Nach vollstaendiger Umstellung diesen Programmteil entfernen
switch ($ltyp) {
case "o": //"Ohne HsNr"
// hier beide .lage als Char(5)
// in ax_lagebezeichnungKatalogeintrag mit führenden Nullen
// in ax_lagebezeichnungOhneHausnummer jedoch ohne führende Nullen
$sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=trim(leading '0' from s.lage) ";
break;
default: // "Mit HsNr" + "mit PseudoNr"
// ax_LagebezeichnungKatalogeintrag.lage ist char,
// ax_LagebezeichnungMitHausnummer.lage ist integer,
// ax_lagebezeichnungMitPseudonummer.lage ist integer,
$sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage ";
break;
}
} else { // ab PostNAS 0.6 char(5) mit fuehr.Nullen
$sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
}
$sql.="WHERE l.gml_id= $1;";
$v = array($gmlid);
$res = pg_prepare("", $sql);
$res = pg_execute("", $v);
if (!$res) {
echo "\nFehler bei Lagebezeichnung.
\n";
if ($debug > 2) {echo "SQL=
".$sql."
$1 = gml_id = '".$gmlid."'
";}
}
if ($row = pg_fetch_array($res)) {
$land =$row["land"];
$regbez=$row["regierungsbezirk"];
$kreis=$row["kreis"];
$knam=$row["knam"];
$gem =$row["gemeinde"];
$gnam =$row["gnam"];
$lage =$row["lage"]; // Strassenschluessel
$snam =$row["snam"]; //Strassennamen
$unver=$row["unverschluesselt"]; // Gewanne
$kennz=$land."-".$regbez."-".$kreis."-".$gem."-".$lage."-";
switch ($ltyp) {
case "m": // "Mit HsNr"
$hsnr=$row["hausnummer"];
$kennz.=$hsnr;
$untertitel="Hauptgebäude mit Hausnummer";
// Balken
echo "ALKIS Lagebezeichnung mit Hausnummer ".$kennz."
\n"; // Balken
break;
case "p": // "mit PseudoNr"
$pseu=$row["pseudonummer"];
$lfd=$row["laufendenummer"];
$kennz.=$pseu."-".$lfd;
$untertitel="Nebengebäude mit laufender Nummer (Lagebezeichnung mit Pseudonummer)";
echo "ALKIS Lagebezeichnung Nebengebäude ".$kennz."
\n"; // Balken
break;
case "o": //"Ohne HsNr"
if ($lage == "") {
$kennz=" - ".$unver;
} else {
$kennz.=$unver;
}
$untertitel="Straße ohne Hausnummer und/oder Gewanne (unverschlüsselte Lage)";
echo "ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."
\n"; // Balken
break;
}
} else {
echo "Fehler! Kein Treffer fuer gml_id=".$gmlid."
";
}
echo "\n Lagebezeichnung
\n";
echo "Typ: ".$untertitel."
";
echo "\n\n\n\t"; // Tabelle Kennzeichen
// ToDo: !! kleiner, wenn ltyp=0 und die Schluesselfelder leer sind
echo "\n\t";
echo "\n\t";
echo "\n\t\tLand | ";
echo "\n\t\tReg.-Bez. | ";
echo "\n\t\tKreis | ";
echo "\n\t\tGemeinde | ";
echo "\n\t\tStraße | ";
switch ($ltyp) {
case "m": // "Mit HsNr"
echo "\n\t\tHaus-Nr | ";
break;
case "p": // "mit PseudoNr"
echo "\n\t\tHaus-Nr | ";
echo "\n\t\tlfd.-Nr | ";
break;
case "o": //"Ohne HsNr"
echo "\n\t\tunverschlüsselte Lage | ";
break;
}
echo "\n\t ";
echo "\n\t";
echo "\n\t\t".$land." | ";
echo "\n\t\t".$regbez." | ";
echo "\n\t\t";
if ($showkey) {
echo "".$kreis." ";
}
echo $knam." | ";
echo "\n\t\t";
if ($showkey) {
echo "".$gem." ";
}
echo $gnam." | ";
echo "\n\t\t";
if ($showkey) {
echo "".$lage." ";
}
echo $snam." | ";
switch ($ltyp) {
case "m":
echo "\n\t\t".$hsnr." | ";
break;
case "p":
echo "\n\t\t".$pseu." | ";
echo "\n\t\t".$lfd." | ";
break;
case "o":
echo "\n\t\t".$unver." | ";
break;
}
echo "\n\t ";
echo "\n\t ";
echo "\n\t | \n\t";
// Kopf Rechts: weitere Daten?
// z.B. hier Ausgabe von "georeferenzierte Gebäudeadresse" ?
if ($idanzeige) {linkgml($gkz, $gmlid, "Lage"); }
echo "\n\t | \n
\n
";
// Ende Seitenkopf
// F L U R S T U E C K E
if ($ltyp <> "p") { // Pseudonummer linkt nur Gebäude
echo "\n\n Flurstücke
\n";
echo "\nmit dieser Lagebezeichnung.
";
// ax_Flurstueck >weistAuf> ax_LagebezeichnungMitHausnummer
// ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer
switch ($ltyp) {
case "m":
$bezart="weistAuf";
break;
case "o":
$bezart="zeigtAuf";
break;
}
$sql="SELECT g.gemarkungsnummer, g.bezeichnung, ";
$sql.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche ";
$sql.="FROM ax_flurstueck f ";
$sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von ";
$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
$sql.="WHERE v.beziehung_zu= $1 "; // id Lage
$sql.="AND v.beziehungsart= $2 ";
$sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
$v = array($gmlid,$bezart);
$resf = pg_prepare("", $sql);
$resf = pg_execute("", $v);
if (!$resf) {
echo "Fehler bei Flurstück.
\n";
if ($debug > 2) {echo "SQL=
".$sql."
$1 = gml_id = '".$gmlid."'
";}
}
echo "\n";
echo "\n"; // Kopfzeile der Tabelle
echo "\n\tGemarkung | ";
echo "\n\tFlur | ";
echo "\n\tFlurst. | ";
echo "\n\tFläche | ";
echo "\n\tweit. Auskunft | ";
echo "\n
";
$j=0;
while($rowf = pg_fetch_array($resf)) {
$flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
//$fskenn=str_pad($rowf["zaehler"], 5, "0", STR_PAD_LEFT);
//if ($rowf["nenner"] != "") {$fskenn.="/".str_pad($rowf["nenner"], 3, "0", STR_PAD_LEFT);}
$fskenn=$rowf["zaehler"]; // Bruchnummer (ohne fuehrende Nullen)
if ($rowf["nenner"] != "") {
$fskenn.="/".$rowf["nenner"];
}
$flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m²";
echo "\n";
echo "\n\t";
if ($showkey) {
echo "".$rowf["gemarkungsnummer"]." ";
}
echo $rowf["bezeichnung"]." | ";
echo "\n\t".$flur." | ";
echo "\n\t".$fskenn."";
if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurstück");}
echo " | ";
echo "\n\t".$flae." | ";
echo "\n\t\n\t\t ";
echo "\n\t\tFlurstück ";
echo "\n\t\t \n\t | ";
echo "\n
";
$j++;
}
echo "\n
";
}
// L A G E
// andere Lage mit gleicher Hausnummer suchen
if ($ltyp <> "o") { // nicht bei Gewanne (Ohne HsNr)
echo "\n\n Lage
\n";
echo "\nandere Lagebezeichnungen zur gleichen Hausnummer.
";
$whereclaus="WHERE land= $1 AND regierungsbezirk= $2 AND kreis= $3 AND gemeinde= $4 AND lage= $5 ";
$url=$_SERVER['PHP_SELF']."?gkz=".$gkz."&id=".$id."&gmlid="; // Basis
switch ($ltyp) {
case "m": // aktuell Hausnummer gefunden
// dazu alle Nebengebäude suchen
echo "\nNebengebäude: ";
$sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l ";
$sql.=$whereclaus."AND lage= $6 AND pseudonummer= $7 ORDER BY laufendenummer;";
// pseudonummer character varying(5), laufendenummer character varying(2),
$v = array($land,$regbez,$kreis,$gem,$lage,$lage,$hsnr);
$res = pg_prepare("", $sql);
$res = pg_execute("", $v);
if (!$res) {
echo "\n
Fehler bei Nebengebäude.
".$sql."
\n";
if ($debug > 2) {echo "SQL=
".$sql."
";}
}
while($row = pg_fetch_array($res)) {
echo "\n\tlfd.-Nr ".$row["laufendenummer"]." ";
}
echo "\n";
break;
case "p": // aktuell Nebengebäude: Haupt- und Nebengebäude suchen
echo "\nHauptgebäude: ";
$sql ="SELECT l.gml_id FROM ax_lagebezeichnungmithausnummer l ";
$sql.=$whereclaus."AND hausnummer= $6;";
$v = array($land,$regbez,$kreis,$gem,$lage,$pseu);
$res = pg_prepare("", $sql);
$res = pg_execute("", $v);
if (!$res) echo "
Fehler bei Hauptgebäude.
".$sql."
\n";
while($row = pg_fetch_array($res)) {
echo "\n\tHaus-Nr ".$pseu." ";
}
echo "\n";
echo "\nweitere Nebengebäude: ";
$sql ="SELECT l.gml_id, l.laufendenummer FROM ax_lagebezeichnungmitpseudonummer l ";
$sql.=$whereclaus."AND pseudonummer= $6 AND laufendenummer <> $7 ORDER BY laufendenummer;";
$v = array($land,$regbez,$kreis,$gem,$lage,$pseu,$lfd);
$res = pg_prepare("", $sql);
$res = pg_execute("", $v);
if (!$res) {
echo "\n
Fehler bei Nebengebäude.
\n";
if ($debug > 2) {echo "SQL=
".$sql."
";}
}
while($row = pg_fetch_array($res)) {
echo "\n\tlfd.-Nr ".$row["laufendenummer"]." ";
}
echo "\n";
break;
}
}
// G E B A E U D E
// Mittelfristig ist zu ueberlegen, ob hier weitere Einzelheiten dargestellt werden,
// oder ob nicht besser ein eigenes Modul alkisgebaeude.php dies uebernehmen sollte.
// Dort sollten auch diese Relationen abgebildet werden:
// ax_gebaeude >gehoertZu> ax_gebaeude (ringförmige Verbindung Gebäudekomplex)
// ax_gebaeude (umschliesst) ax_bauteil
// ax_gebaeude >gehoert> ax_person (Ausnahme)
if ($ltyp <> "o") { // OhneHsNr linkt nur Flurst.
echo "\n\n Gebäude
";
echo "\nmit dieser Lagebezeichnung.
";
switch ($ltyp) {
case "p":
$bezart="hat";
break;
case "m":
$bezart="zeigtAuf";
break;
}
// $sql ="SELECT g.gml_id, g.gebaeudefunktion, g.description, g.name, g.lagezurerdoberflaeche, g.bauweise, g.anzahlderoberirdischengeschosse AS aog, g.grundflaeche, g.individualname, g.zustand, ";
$sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.lagezurerdoberflaeche, g.bauweise, g.anzahlderoberirdischengeschosse AS aog, g.grundflaeche, g.zustand, ";
$sql.="round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner ";
$sql.="FROM ax_gebaeude g ";
$sql.="JOIN alkis_beziehungen v ON g.gml_id=v.beziehung_von ";
$sql.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id ";
$sql.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert ";
$sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart= $2 ;";
$v = array($gmlid,$bezart);
$res = pg_prepare("", $sql);
$res = pg_execute("", $v);
if (!$res) {
echo "Fehler bei Gebaeude.
\n";
if ($debug > 2) {echo "SQL=
".$sql."
$1 = gml_id = '".$gmlid."'
";}
}
$i=0;
while($row = pg_fetch_array($res)) { // Only You!
echo "";
if ($idanzeige) {linkgml($gkz, $row["gml_id"], "Gebäude");}
echo "
";
echo "\n";
echo "\n\tFunktion: | ";
if ($showkey) {
echo "".$row["gebaeudefunktion"]." ";
}
echo $row["bezeichner"]." |
"; // integer
// if (!$row["description"] == "") {
// echo "\n\tBeschreibung: | ".$row["description"]." |
"; // integer - Entschlüsseln!
// }
if (!$row["name"] == "") {
echo "\n\tName: | ".$row["name"]." |
"; // char(25)
}
if (!$row["lagezurerdoberflaeche"] == "") {
echo "\n\tLage zur Erdoberfläche: | ".$row["lagezurerdoberflaeche"]." |
";
} // integer - Entschlüsseln!
if (!$row["bauweise"] == "") {
echo "\n\tBauweise: | ";
if ($showkey) {
echo "".$row["bauweise"]." ";
}
echo $row["bauweise_beschreibung"]." |
"; // integer
}
if (!$row["aog"] == "") {
echo "\n\tAnz. der oberird. Geschosse: | ".$row["aog"]." |
"; //
}
if (!$row["grundflaeche"] == "") {
echo "\n\tGrundfläche: | ".$row["grundflaeche"]." |
"; // integer
}
echo "\n\tGeometrische Fläche: | ".$row["flaeche"]." m² |
";
// if (!$row["individualname"] == "") {
// echo "\n\tIndividualname: | ".$row["individualname"]." |
"; // char(7)
// }
if (!$row["zustand"] == "") {
echo "\n\tZustand: | ".$row["zustand"]." |
"; // integer
}
echo "\n
";
}
}
?>