Index: trunk/var/www/info/alkis/alkisfsnw.php
===================================================================
--- trunk/var/www/info/alkis/alkisfsnw.php	(revision 49)
+++ trunk/var/www/info/alkis/alkisfsnw.php	(revision 53)
@@ -10,4 +10,7 @@
 	07.09.2010  Kennzeichen-Rahmen f. fiktives Blatt, Schluessel anschaltbar
 	15.09.2010  Function "buchungsart" durch JOIN ersetzt
+	30.09.2010  noprint
+	09.11.2010  Nutzung, ehem. php-Functions hier integriert
+	10.11.2010  Felder nutzung.zustand und nutzung.name 
 
 	ToDo: 
@@ -35,5 +38,5 @@
 	<link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck.ico">
 	<style type='text/css' media='print'>
-		.noprint { visibility: hidden;}
+		.noprint {visibility: hidden;}
 	</style>
 </head>
@@ -72,8 +75,11 @@
 	$gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
 	$gmkgnr=$row["gemarkungsnummer"];
+	$bezirk=$row["regierungsbezirk"];
+	$kreis=$row["kreis"];
+	$gemeinde=$row["gemeinde"];
 	$flurnummer=$row["flurnummer"];
 	$flstnummer=$row["zaehler"];
 	$nenner=$row["nenner"];
-	if ($nenner > 0) $flstnummer.="/".$nenner; // BruchNr
+	if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr
 	$flae=number_format($row["amtlicheflaeche"],0,",",".") . " m&#178;";
 } else {echo "Fehler! Kein Treffer fuer gml_id=".$gmlid;}
@@ -120,23 +126,260 @@
 echo "\n<table class='fs'>";
 	
-	fs_gebietszug($con, $row["gemeinde"], $row["kreis"], $row["regierungsbezirk"], $showkey); // Gebietszugehoerigkeit
-
-	fs_lage($con, $gmlid, $gkz, $showkey); // Adresse, Lagebezeichnung
-
-	fs_nutz($con, $gmlid, $showkey); // Tatsaechliche Nutzung
-
-	// Flaeche und Link auf GebÃ€ude-Auswertung
-	echo "\n<tr>";
-		echo "\n\t<td class='ll'>Fl&auml;che:</td>"; // Sp. 1
-		echo "\n\t<td class='lr'>".$flae."</td>"; // Sp. 2
-		echo "\n\t<td>"; // Sp. 3
-			echo "\n\t\t<p class='nwlink noprint'>"; // Gebaeude-Verschneidung
-				echo "\n\t\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
-				if ($idanzeige) {echo "&amp;id=j";}
-				if ($showkey)   {echo "&amp;id=j";}
-				echo "' title='Geb&auml;udenachweis'>Geb&auml;ude <img src='ico/Haus.ico' width='16' height='16' alt=''></a>";
-			echo "\n\t\t</p>";
-		echo "\n\t</td>";
+// ** G e b i e t s z u g e h o e r i g k e i t **
+// eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben
+// Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist?
+echo "\n<tr>\n\t<td class='ll'><img src='ico/Gemeinde.ico' width='16' height='16' alt=''> Im Gebiet von:</td>";
+
+// G e m e i n d e
+$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk='".$bezirk."' AND kreis='".$kreis."' AND gemeinde='".$gemeinde."' "; 
+$res=pg_query($con, $sql);
+if (!$res) echo "<p class='err'>Fehler bei Gemeinde<br>".$sql."<br></p>";
+$row = pg_fetch_array($res);
+$gnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+echo "\n\t<td class='lr'>Gemeinde ";
+if ($showkey) {
+	echo "<span class='key'>(".$gemeinde.")</span> ";
+}
+echo $gnam."<br>";
+
+// K r e i s
+$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk='".$bezirk."' AND kreis='".$kreis."' "; 
+$res=pg_query($con, $sql);
+if (!$res) echo "<p class='err'>Fehler bei Kreis<br>".$sql."<br></p>";
+$row = pg_fetch_array($res);
+$knam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+echo "Kreis ";
+if ($showkey) {
+	echo "<span class='key'>(".$kreis.")</span> ";
+}	
+echo $knam."<br>";
+
+// R e g - B e z
+$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk='".$bezirk."' "; 
+$res=pg_query($con, $sql);
+if (!$res) echo "<p class='err'>Fehler bei Regierungsbezirk<br>".$sql."<br></p>";
+$row = pg_fetch_array($res);
+$bnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+echo "Regierungsbezirk ";
+if ($showkey) {
+	echo "<span class='key'>(".$bezirk.")</span> ";
+}
+echo $bnam."</td>";
+echo "\n\t<td>&nbsp;</td>\n</tr>"; // 3. Spalte fÃŒr NW-Link (in weiteren Tab-Zeilen)
+// ENDE G e b i e t s z u g e h o e r i g k e i t
+
+
+// ** L a g e b e z e i c h n u n g **
+
+// Lagebezeichnung Mit Hausnummer
+//   ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer
+//                  <gehoertZu<
+$sql ="SELECT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung ";
+$sql.="FROM  alkis_beziehungen v ";
+$sql.="JOIN  ax_lagebezeichnungmithausnummer  l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN
+$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage ";
+$sql.="WHERE v.beziehung_von='".$gmlid."' "; // id FS";
+$sql.="AND   v.beziehungsart='weistAuf' ";
+$sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;";
+
+// Theoretisch JOIN notwendig ÃŒber den kompletten SchlÃŒssel bestehend aus land+regierungsbezirk+kreis+gemeinde+lage
+// bei einem SekundÃ€rbestand fÃŒr eine Gemeinde oder einen Kreis reicht dies hier:
+
+//$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.gemeinde=s.gemeinde AND l.lage=s.lage ";
+// Problem: ax_lagebezeichnungkatalogeintrag.lage  ist char,
+//          ax_lagebezeichnungmithausnummer.lage   ist integer,
+
+// cast() scheitert weil auch nicht numerische Inhalte
+//$sql.="JOIN  ax_lagebezeichnungkatalogeintrag s ON l.gemeinde=s.gemeinde AND l.lage=cast(s.lage AS integer) ";
+
+// http://www.postgresql.org/docs/8.3/static/functions-formatting.html
+
+$res=pg_query($con, $sql);
+if (!$res) {echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer<br>\n".$sql."</p>";}
+$j=0;
+while($row = pg_fetch_array($res)) {
+	$sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name
+	//echo "<!-- Adresse -->";		
+	echo "\n<tr>\n\t";
+		if ($j == 0) {		
+			echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>";
+		} else {
+			echo "<td>&nbsp;</td>";
+		}
+		echo "\n\t<td class='lr'>";
+		if ($showkey) {
+			echo "<span class='key'>(".$row["lage"].")</span>&nbsp;";
+		}
+		echo $sname."&nbsp;".$row["hausnummer"]."</td>";
+		echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
+			echo "\n\t\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$row["gml_id"]."'>Lage ";
+			echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>";
+		echo "\n\t\t</p>\n\t</td>";
 	echo "\n</tr>";
+	$j++;
+}
+// Verbesserung: mehrere HsNr zur gleichen StraÃe als Liste?
+
+// L a g e b e z e i c h n u n g   O h n e   H a u s n u m m e r  (Gewanne oder nur Strasse)
+//   ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer
+//                  <gehoertZu<
+$sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung ";
+$sql.="FROM alkis_beziehungen v ";
+$sql.="JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=v.beziehung_zu ";
+$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde ";
+//	$sql.="AND l.lage=s.lage ";
+// hier beide .lage als Char(5)
+//  in ax_lagebezeichnungKatalogeintrag mit fÃŒhrenden Nullen
+//  in ax_lagebezeichnungOhneHausnummer jedoch ohne fÃŒhrende Nullen
+$sql.="AND l.lage=trim(leading '0' from s.lage) ";
+//	$sql.="AND cast(l.lage AS integer)=cast(s.lage AS integer) "; // Fehlversuch, auch nicht-numerische Inhalte
+$sql.="WHERE v.beziehung_von='".$gmlid."' "; // id FS";
+$sql.="AND   v.beziehungsart='zeigtAuf';"; //ORDER?
+$res=pg_query($con, $sql);
+if (!$res) echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer<br>\n".$sql."</p>";
+$j=0;
+// Es wird auch eine Zeile ausgegeben, wenn kein Eintrag gefunden!	
+while($row = pg_fetch_array($res)) {
+	$gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8");
+	$skey=$row["lage"]; // Strassenschluessel
+	$lgml=$row["gml_id"]; // key der Lage
+	if (!$gewann == "") {
+		echo "\n<tr>";		
+			echo "\n\t<td class='ll'><img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''> Gewanne:</td>";
+			echo "\n\t<td class='lr'>".$gewann."</td>";
+			echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
+				echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml."'>";
+				echo "\n\t\t\tLage <img src='ico/Lage_Gewanne.ico' width='16' height='16' alt=''></a>";
+			echo "\n\t\t</p>\n\t</td>";
+		echo "\n</tr>";		
+	}
+	// Gleicher DB-Eintrag in zwei HTML-Zeilen, besser nur ein Link	
+	if ($skey > 0) {
+		echo "\n<tr>";	
+			echo "\n\t<td class='ll'><img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''> Stra&szlig;e:</td>";				
+			echo "\n\t<td class='lr'>";
+			if ($showkey) {
+				echo "<span class='key'>(".$skey.")</span>&nbsp;";
+			}
+			echo $row["bezeichnung"]."</td>";
+			echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
+				echo "\n\t\t\t<a title='Lagebezeichnung Ohne Hausnummer' href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$lgml."'>";
+				echo "\n\t\t\tLage <img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''>\n\t\t\t</a>";
+			echo "\n\t\t</p>\n\t</td>";
+		echo "\n</tr>";
+	}		
+	$j++;
+}
+// ENDE  L a g e b e z e i c h n u n g
+
+// ** N U T Z U N G **
+// Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben
+$sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, c.class, n.info, n.zustand, n.name, n.bezeichnung, ";
+// ", m.gruppe,  ";
+// Gemeinsame FlÃ€che von NUA und FS
+$sql.="round(st_area(st_intersection(n.wkb_geometry,f.wkb_geometry))::numeric,1) AS schnittflae, ";
+$sql.="c.label, c.blabla ";
+//	$sql.="round(area(n.wkb_geometry)::numeric,2) AS nflae "; // Flaeche NUA gesamt
+$sql.="FROM ax_flurstueck f, nutzung n ";
+$sql.="JOIN nutzung_meta m ON m.nutz_id=n.nutz_id ";
+$sql.="LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class ";
+$sql.="WHERE f.gml_id='".$gmlid."' "; // id FS";
+$sql.="AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true "; // ueberlappende Flaechen
+$sql.="AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 "; // unter Rundung
+$sql.="ORDER BY schnittflae DESC;";
+
+$res=pg_query($con, $sql);
+if (!$res) {echo "<p class='err'>Fehler bei Suche tats. Nutzung<br>\n".$sql."</p>";}
+$j=0;
+while($row = pg_fetch_array($res)) {
+//	$grupp = $row["gruppe"];  // Individuelles Icon?
+	$title = htmlentities($row["title"], ENT_QUOTES, "UTF-8"); // NUA-Titel
+	$fldclass=$row["fldclass"]; // Feldname erstes  Zusatzfeld
+	$fldinfo= $row["fldinfo"];  // Feldname zweites Zusatzfeld
+	$gml=$row["gml_id"]; // Objekt-Kennung
+	$class=$row["class"];  // erstes Zusatzfeld verschlÃŒsselt -> nutzung_class
+	$info=$row["info"]; // zweites Zusatzfeld verschlÃŒsselt (noch keine Info zum entschl.)
+	$schnittflae=$row["schnittflae"];
+	$label=$row["label"]; // Nutzungsart
+	$zus=$row["zustand"]; // im Bau
+	$nam=$row["name"]; // Eigenname
+	$bez=$row["bezeichnung"]; // weiterer Name (unverschl.)
+	$blabla=htmlentities($row["blabla"], ENT_QUOTES, "UTF-8");  // Achtung, enthÃ€lt auch ""
+//	$nflae=$row["nflae"];
+
+// Icon nach Gruppe?: 
+// Siedlung - Abschnitt.ico, Verkehr - Strassen_Klassifikation.ico, GewÃ€sser - Wasser.ico
+// Vegetation - Wald.ico, Title=Landwirtschaft Landwirt.ico
+	echo "\n<tr>\n\t";
+		if ($j == 0) {		
+			echo "<td class='ll'><img src='ico/Abschnitt.ico' width='16' height='16' alt=''> Nutzung:</td>";
+		} else {
+			echo "<td>&nbsp;</td>";
+		}
+		echo "\n\t<td class='lr'>".$schnittflae." m&#178;</td>";
+		
+		echo "\n\t<td class='lr'>";
+			// Eigene Nachweis-Seite fÃŒr Nutzungsart-FlÃ€che sinnvoll? dann hier verlinken 
+			//echo "\n\t\t<p class='nwlink noprint'>";
+				//echo "\n\t\t\t<a href='alkisnua.php?gkz=".$gkz."amp;gmlid=".$gml."'>Nutzung ";
+				//echo "<img src='ico/Abschnitt.ico' width='16' height='16' alt=''></a>";
+				//if ($idanzeige) {linkgml($gkz, $gml, "Nutzung");} // Nein, ist mit nix verknuepft
+			//echo "\n\t\t</p>";
+			echo $title;
+			If ($class != "") {  // SchlÃŒssel
+				echo ", ".$fldclass.": "; // Feldname
+				if ($label != "") { // Bedeutung dazu wurde erfasst
+					if ($showkey) {echo "<span class='key'>(".$class.")</span> ";}
+					echo "<span title='".$blabla."'>".$label."</span> ";
+				} else { // muss noch erfasst werden
+					echo $class." "; // SchlÃŒssel als Ersatz fÃŒr Bedeutung
+				}
+			}
+			If ($info != "") { // manchmal ein zweites Zusatzfeld (wie entschlÃŒsseln?)
+				echo ", ".$fldinfo."=".$info;
+			}
+			If ($zus != "") {
+				echo "\n\t\t<br>";
+				if ($showkey) {echo "<span class='key'>(".$zus.")</span> ";}
+				switch ($zus) {
+					case 2100:
+						echo "AuÃer Betrieb, stillgelegt, verlassen";
+						break;
+					case 4000:
+						echo "Im Bau";
+						break;
+					case 8000:
+						echo "Erweiterung, Neuansiedlung";
+						break;
+					default:
+						echo "Zustand: ".$zus;
+						break;
+				}
+			}
+			If ($nam != "") {
+				echo "<br>Name: ".$nam;
+			}
+			If ($bez != "") {
+				echo "<br>Bezeichnung: ".$bez;
+			}
+		echo "</td>";
+	echo "\n</tr>";
+	$j++;
+}
+// ENDE  N U T Z U N G
+
+// Flaeche und Link auf GebÃ€ude-Auswertung
+echo "\n<tr>";
+	echo "\n\t<td class='ll'>Fl&auml;che:</td>"; // Sp. 1
+	echo "\n\t<td class='lr'><span class='flae'>".$flae."</span></td>"; // Sp. 2
+	echo "\n\t<td>"; // Sp. 3
+		echo "\n\t\t<p class='nwlink noprint'>"; // Gebaeude-Verschneidung
+			echo "\n\t\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&amp;gmlid=".$gmlid;
+			if ($idanzeige) {echo "&amp;id=j";}
+			if ($showkey)   {echo "&amp;id=j";}
+			echo "' title='Geb&auml;udenachweis'>Geb&auml;ude <img src='ico/Haus.ico' width='16' height='16' alt=''></a>";
+		echo "\n\t\t</p>";
+	echo "\n\t</td>";
+echo "\n</tr>";
 
 echo "\n</table>";
@@ -159,5 +402,5 @@
 					echo "&amp;eig=n#gb' title='Flurst&uuml;cksnachweis'>ohne Eigent&uuml;mer</a>";
 				} else {	
-					echo "&amp;eig=j#gb' title='Flurst&uuml;cks- und Eigent&uuml;mernachweis'>mit Eigent&uuml;mer";
+					echo "&amp;eig=j#gb' title='Flurst&uuml;cks- und Eigent&uuml;mernachweis'>mit Eigent&uuml;mer ";
 					echo "<img src='ico/EigentuemerGBzeile.ico' width='16' height='16' alt=''></a>";
 				}
@@ -259,5 +502,5 @@
 					linkgml($gkz, $gmlg, "Buchungsblatt");
 				}
-				echo "\n\t<p class='nwlink'>weitere Auskunft:<br>";
+				echo "\n\t<p class='nwlink noprint'>weitere Auskunft:<br>";
 					echo "\n\t\t<a href='alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gmlg."#bvnr".$lfd;
 						if ($idanzeige) {echo "&amp;id=j";}
@@ -268,5 +511,6 @@
 							echo "' title='Grundbuchnachweis'>";
 						}						
-						echo $blattartg." <img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''></a>";
+						echo $blattartg." <img src='ico/GBBlatt_link.ico' width='16' height='16' alt=''>";
+					echo "</a>";
 				echo "\n\t</p>";
 			echo "\n</td>";
