Index: trunk/info/info/alkis/alkisfsnw.php
===================================================================
--- trunk/info/info/alkis/alkisfsnw.php	(revision 305)
+++ trunk/info/info/alkis/alkisfsnw.php	(revision 306)
@@ -48,5 +48,5 @@
 	<script type="text/javascript">
 		function ALKISexport() {
-				window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=flurstueck&gmlid=".$gmlid."'"; ?>);
+			window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=flurstueck&gmlid=".$gmlid."'"; ?>);
 		}
 	</script>
Index: trunk/info/info/alkis/alkisauszug.css
===================================================================
--- trunk/info/info/alkis/alkisauszug.css	(revision 305)
+++ trunk/info/info/alkis/alkisauszug.css	(revision 306)
@@ -10,4 +10,5 @@
 	2011-11-16	FS-Historie
 	2013-06-27	p.recht
+	2014-01-23	strasse, hsnr
 */
 body	{background-color: #FDFFFD;}
@@ -21,27 +22,28 @@
 p.fshis		{text-align: right; background: gray;	 color: white;}		/* Flurstuecks-Historie */
 p.gbkennz	{text-align: right; background: green;	 color: silver;}	/* Bestandsnachweis */
-p.nakennz	{text-align: right; background: maroon; color: silver;}	/* Personen- und Adressdaten */
-p.geb			{text-align: right; background: yellow; color: gray;}		/* Gebaeude zum FS */
-p.lage		{text-align: right; background: lime;   color: gray;}		/* Lage/Adresse zum FS */
-p.recht		{text-align: right; background: #F0F8FF; color: gray;}	/* Baurecht, Bodenneuordnung */
+p.nakennz	{text-align: right; background: maroon;  color: silver;}		/* Personen- und Adressdaten */
+p.geb		{text-align: right; background: yellow;  color: gray;}		/* Gebaeude zum FS */
+p.lage		{text-align: right; background: lime;    color: gray;}		/* Lage/Adresse zum FS */
+p.strasse	{text-align: right; background: limegreen; color: slategray;}	/* Strasse */
+p.recht		{text-align: right; background: #F0F8FF; color: gray;}		/* Baurecht, Bodenneuordnung */
 
 p.bezieh	{text-align: right; background: olive;	color: silver;} /* Beziehungen */
 p.fsd		{margin-left: 170px;}	/* Flst-Flaeche */
-p.gbl		{position: relative;	left:  60px;}	/* Nam: Buchungsstelle*/
+p.gbl		{position: relative; left: 60px;}	/* Nam: Buchungsstelle*/
 p.zus		{margin: 2pt; padding: 2pt; border:1px dotted maroon; background: white;} /* Zusatz zum Eigent., gerahmt */
 p.avh		{font-style: italic; color: navy;}	/* Anteilsverhaeltnis */
 p.ant		{font-style: italic; position: relative;left: 12px;} /* Anteil am FS */
-p.geig	{color: navy;}		/* GB-Nachw. Eigentuemer Name */
-p.gadr	{color: maroon; margin-top: 1pt;}	/* GB-Nachw. Eigentuemer Adresse */
+p.geig		{color: navy;}		/* GB-Nachw. Eigentuemer Name */
+p.gadr		{color: maroon; margin-top: 1pt;}	/* GB-Nachw. Eigentuemer Adresse */
 p.nwlink, td.nwlink {font-size: 7pt; text-align: right; margin-top: 0pt;}	/* Link zum Nachweis GB, FS, ..*/
 p.err		{font-size: 11px; color: red;}		/* Fehler -> Anwender */
 p.dbg		{font-size: 10px; color: gray;}		/* Debug -> Entwickler */
-p.warn	{color: gray; font-style: italic;}	/* Warnung, Hinweis */
-p.ph		{color: gray;}								/* Platzhalter */
+p.warn		{color: gray; font-style: italic;}	/* Warnung, Hinweis */
+p.ph		{color: gray;}						/* Platzhalter */
 
 /* Links */
 a:link		{color: rgb(0,102,153);}
 a:visited	{color: rgb(0,153,102);}
-a:active		{color: rgb(0,102,102);}
+a:active	{color: rgb(0,102,102);}
 a:hover		{color: rgb(255,40,40);}
 
@@ -52,9 +54,7 @@
 /* komplette Adresse im Rahmen*/
 div.adr {border-left-width: 0px; border-right-width: 0px; border-bottom-width: 2px; border-top-width: 2px; 
-	width: 60%; font-size: 12pt;
-	border-color: #a2d545; border-style: solid; 
+	width: 60%; font-size: 12pt; border-color: #a2d545; border-style: solid; 
 	margin-bottom: 8px; margin-top: 8px; margin-left: 0.7in;
-	overflow: auto; padding: 6px;
-	background: #e4f7dd;}
+	overflow: auto; padding: 6px; background: #e4f7dd;}
 
 span.key 		{color: gray; font-style: italic;} /* Schluesselwert vor Text, Wert zurueck nehmen */
@@ -73,4 +73,5 @@
 table.kennzgbf	{border: 2px dotted green; padding: 3px; margin: 0px;}	/* - fiktiv */
 table.kennzla	{border: 2px solid  lime;  padding: 3px; margin: 0px;}	/* Lage */
+table.kennzstra	{border: 2px solid  limegreen;  padding: 3px; margin: 0px;}	/* Strasse */
 
 /* volle Breite fuer verschiedene Zwecke */
@@ -82,5 +83,5 @@
 td.ll	{width: 130px;}	/* Liste Links */
 td.lr	{color: black;}	/* Liste Rechts */
-td.ph	{color: gray;}		/* Platzhalter, vorlaeufig, spaeter loschen */
+td.ph	{color: gray;}	/* Platzhalter, vorlaeufig, spaeter loschen */
 
 /* Flaechen rechtsbuendig (stellengerecht) */
@@ -88,19 +89,17 @@
 td.key	{width:  35px; padding-right: 4px; padding-left: 4px;}
 /* Ertragsmesszahl der Bodenschaetzung
-td.emz	{width: 45px; padding-right: 4px; padding-left: 4px; 
-			text-align: right;} */
+td.emz	{width: 45px; padding-right: 4px; padding-left: 4px; text-align: right;} */
 td.kurz	{width: 26px; padding-left: 4px;}
 td.nanu	{width: 80px;}				/* Namensnummer */
 td.sond, p.sond	{font-size: 9pt; font-style: italic; background-color: white;
-			border: 1px dotted silver; padding: 6px;}			/* Sondereigentumsbeschreibung */
+		border: 1px dotted silver; padding: 6px;}	/* Sondereigentumsbeschreibung */
 
-td.nrap, p.nrap	{font-size: 9pt; font-style: italic; background-color: white;}			/* Nummer im Aufteilungsplan */
+td.nrap, p.nrap	{font-size: 9pt; font-style: italic; background-color: white;}	/* Nummer im Aufteilungsplan */
 
 td.fett	{font-weight: bold;}
 td.head	{border-bottom: 1px solid gray; font-style: italic; padding-top: 2px;}	/* Kopfzeile, Spaltenueberschrift */
 td.sum {border-top: 2px dotted maroon;	border-bottom:3px solid maroon;
-	border-left:0px dotted maroon;	border-right:0px dotted maroon;
-	font-weight: bold;}				/* unter dem Strich = Summenzeile */
-td.bez	{font-weight: bold;}		/* Beziehungen */
+	border-left:0px dotted maroon;	border-right:0px dotted maroon; font-weight: bold;}	/* unter dem Strich = Summenzeile */
+td.bez	{font-weight: bold;}	/* Beziehungen */
 td.nhd	{width: 150px;}			/* Namen - linke / rechte Spalte */
 td.nam	{font-weight: bold;}
@@ -110,4 +109,5 @@
 /* dienendes GB in FS-Tab im Best-NW  */
 td.dien	{font-size: 9pt; font-style: italic; color: purple; border-bottom: 1px solid silver;}
+td.hsnr	{width: 70px; padding-right: 4px; text-align: right;} /* Hausnummer in StraÃe */
 
 /* Ueberschriften */
@@ -125,11 +125,6 @@
 
 /* Seitenfuss */
-.buttonbereich	{font-size: 7pt;	text-align: right;}
-.confbereich	{font-size: 7pt;
-	background-color: #EFFDFF;
-	width: 88%;
-	position: relative;
-	left: 40px;
-}
+.buttonbereich	{font-size: 7pt; text-align: right;}
+.confbereich	{font-size: 7pt; background-color: #EFFDFF; width: 88%; position: relative; left: 40px;}
 @media print {
 	body {width: 98%; background-color:white;}
Index: trunk/info/info/alkis/alkisfkt.php
===================================================================
--- trunk/info/info/alkis/alkisfkt.php	(revision 305)
+++ trunk/info/info/alkis/alkisfkt.php	(revision 306)
@@ -5,8 +5,9 @@
 
 	Version:
-	17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
-	01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
-	02.11.2011  Parameter debug in function eigentuemer
-	17.11.2011  Variable ($debug, $idanzeige, $showkey) von Parameter nach global. Die heiÃen in allen Programmteilen gleich.
+	2010-12-17  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
+	2011-11-01  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen
+	2011-11-02  Parameter debug in function eigentuemer
+	2011-11-17  Variable ($debug, $idanzeige, $showkey) von Parameter nach global. Die heiÃen in allen Programmteilen gleich.
+	2014-01-22	Eigentuemerart: Mehr Werte und Zugriff auf DB-SchlÃŒssel-Tabelle 
 */
 
@@ -359,5 +360,5 @@
 					echo "\n<p class='dbg'>Keine Person zur Namensnummer ".$namnum."</p>";
 				}
-				if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1=gml(NamNum)= '".$gmlnn."'</p>";}
+				//if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlp."<br>$1=gml(NamNum)= '".$gmlnn."'</p>";}
 			}
 			echo "</td>\n\t<td>&nbsp;</td>\n<tr>";
@@ -397,16 +398,42 @@
 	return $wert;
 }
+
 // Entschluesslung AX_Namensnummer.eigentuemerart
-// Abweichend hier in singular fuer Link-Text
 function eigentuemerart($key) {
+	// Die hÃ€ufigsten Werte direkt aus den Programmcode liefern, ggf. angepasst.
+	// FÃŒr seltene Werte in der Datenbank nachschlagen.
+	// SchlÃŒsseltabelle dazu aus GeoInfoDok ist vorhanden seit 2014-01-22.
+	// Hier Verwendung fÃŒr Text zum Link.
+	// FÃŒr korrekte Wiedergabe der amtlichen Werte einen Join auf Tabelle verwenden statt dieser Function. 
 	switch ($key) {
-		case 1000: $wert = "Nat&uuml;rliche Person"; break;
-		case 2000: $wert = "Juristische Person"; break;
-		case 3000: $wert = "K&ouml;rperschaft"; break;
+		case 1000: $wert = "Nat&uuml;rliche Person"; break; // singular fuer Link-Text
+		case 2000: $wert = "Juristische Person"; break; // singl.
+		case 3000: $wert = "KÃ¶rperschaft"; break; // singl.
+		case 4000: $wert = "Kirchliches Eigentum"; break;
+		case 4100: $wert = "Evangelische Kirche"; break;
+		case 4200: $wert = "Katholische Kirche"; break;
+		case 5100: $wert = "Bundesrepublik Deutschland"; break;
+		case 5400: $wert = "Kreis"; break;
+		case 5500: $wert = "Gemeinde"; break;
+		case 5920: $wert = "Land"; break; // "Eigenes Bundesland"
 		case "":   $wert = "Person"; break; // falls (noch) nicht gefuellt
-		default:   $wert = "** Unbekannte Eigent&uuml;merart '".$key."' **"; break;
+		default: // Datenbank-Abfrage
+			$sql="SELECT bezeichner FROM ax_namensnummer_eigentuemerart WHERE wert= $1 ;";
+			$v=array($key);
+			$res=pg_prepare("", $sql);
+			$res=pg_execute("", $v);
+			if ($res) {
+				$row=pg_fetch_array($res);
+				$wert==htmlentities($row["bezeichner"], ENT_QUOTES, "UTF-8");
+			} else {
+				echo "\n\t<p class='err'>Fehler bei DB-Zugriff auf SchlÃŒssel EigentÃŒmerart.</p>\n";
+				$wert = "** Unbekannte Eigent&uuml;merart '".$key."' **";
+			}
+			break;
 	}
 	return $wert;
 }
+
+
 // Entschluesslung ax_buchungsblatt.blattart
 function blattart($key) {
Index: trunk/info/info/alkis/alkisstrasse.php
===================================================================
--- trunk/info/info/alkis/alkisstrasse.php	(revision 306)
+++ trunk/info/info/alkis/alkisstrasse.php	(revision 306)
@@ -0,0 +1,213 @@
+<?php
+/*	alkisstrasse.php
+
+	ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
+	Alle FlurstÃŒcke an einer Strasse anzeigen, egal ob "mit" oder "ohne" Hausnummer
+	Parameter: gml_id aus der Tabelle ax_lagebezeichnungkatalogeintrag
+
+	Version:
+	2014-01-23  Neu
+
+	ToDo:
+		auch alkisexport.php als CSV-Export auf alle FS an Strasse erweitern. Dann unten ent-kommentieren.
+*/
+session_start();
+$cntget = extract($_GET);
+require_once("alkis_conf_location.php");
+if ($auth == "mapbender") {require_once($mapbender);}
+include("alkisfkt.php");
+
+if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;}
+$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";
+if ($keys == "j") {$showkey=true;} else {$showkey=false;}
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta name="author" content="b600352" >
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<title>ALKIS Stra&szlig;e</title>
+	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
+	<link rel="shortcut icon" type="image/x-icon" href="ico/Lage_an_Strasse.ico">
+	<script type="text/javascript">
+		function ALKISexport() {
+			window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=lage&gmlid=".$gmlid."'"; ?>);
+		}
+	</script>
+	<style type='text/css' media='print'>
+		.noprint {visibility: hidden;}
+	</style>
+</head>
+<body>
+<?php
+$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
+
+$sql ="SELECT s.land, s.regierungsbezirk, s.kreis, s.gemeinde, s.lage, s.bezeichnung AS snam, ";
+$sql.="b.bezeichnung AS bnam, r.bezeichnung AS rnam, k.bezeichnung AS knam, g.bezeichnung AS gnam, o.gml_id AS ogml ";
+$sql.="FROM ax_lagebezeichnungkatalogeintrag s JOIN ax_bundesland b ON s.land=b.land ";
+$sql.="JOIN ax_regierungsbezirk r ON s.land=r.land AND s.regierungsbezirk=r.regierungsbezirk ";
+$sql.="JOIN ax_kreisregion k ON s.land=k.land AND s.regierungsbezirk=k.regierungsbezirk AND s.kreis=k.kreis ";
+$sql.="JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde ";
+$sql.="LEFT JOIN ax_lagebezeichnungohnehausnummer o ON s.land=o.land AND s.regierungsbezirk=o.regierungsbezirk AND s.kreis=o.kreis AND s.gemeinde=o.gemeinde AND s.lage=o.lage ";
+$sql.="WHERE s.gml_id= $1 ;"; 
+
+$v=array($gmlid);
+$res=pg_prepare("", $sql);
+$res=pg_execute("", $v);
+if (!$res) {
+	echo "\n<p class='err'>Fehler bei Lagebezeichnungskatalogeintrag.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
+}
+
+if ($row = pg_fetch_array($res)) {
+	$lage=$row["lage"]; // Strassenschluessel
+	$snam=$row["snam"]; // Strassenname
+	$gem=$row["gemeinde"];
+	// Balken
+	$kennz=$gem."-".$lage." (".$snam.")"; // Schluessel als Sucheingabe in NAV brauchbar?
+	echo "<p class='strasse'>ALKIS Stra&szlig;e ".$kennz."&nbsp;</p>\n";
+} else {
+	echo "\n<p class='err'>Kein Treffer bei Lagebezeichnungskatalogeintrag.</p>\n";
+}
+
+echo "\n<h2><img src='ico/Strassen.ico' width='16' height='16' alt=''> Stra&szlig;e</h2>\n";
+
+echo "\n<table class='outer'>\n<tr>\n\t<td>"; // Tabelle Kennzeichen
+echo "\n\t<table class='kennzstra' title='Lage'>";
+	echo "\n\t<tr>";
+		echo "\n\t\t<td class='head'>Land</td>";
+		echo "\n\t\t<td class='head'>Reg.-Bez.</td>";
+		echo "\n\t\t<td class='head'>Kreis</td>";
+		echo "\n\t\t<td class='head'>Gemeinde</td>";
+		echo "\n\t\t<td class='head'>Stra&szlig;e</td>";
+	echo "\n\t</tr>";
+	echo "\n\t<tr>";
+
+		echo "\n\t\t<td title='Bundesland'>";
+		if ($showkey) {echo "<span class='key'>".$row["land"]."</span><br>";}
+		echo $row["bnam"]."&nbsp;</td>";
+
+		echo "\n\t\t<td title='Regierungsbezirk'>";
+		if ($showkey) {echo "<span class='key'>".$row["regierungsbezirk"]."</span><br>";}
+		echo $row["rnam"]."&nbsp;</td>";
+
+		echo "\n\t\t<td title='Kreis'>";
+		if ($showkey) {echo "<span class='key'>".$row["kreis"]."</span><br>";}
+		echo $row["knam"]."&nbsp;</td>";
+
+		echo "\n\t\t<td title='Gemeinde'>";
+		if ($showkey) {echo "<span class='key'>".$gem."</span><br>";}
+		echo $row["gnam"]."&nbsp;</td>";
+
+		echo "\n\t\t<td title='Stra&szlig;e'>";
+		if ($showkey) {echo "<span class='key'>".$lage."</span><br>";}
+		echo "<span class='wichtig'>".$snam."</span>";
+
+		echo "&nbsp;</td>";
+	echo "\n\t</tr>";
+echo "\n\t</table>";
+
+echo "\n\t</td>\n\t<td>";
+
+// Kopf Rechts:
+$ogml=$row["ogml"]; // ID von "Lage Ohne HsNr"
+if ($ogml != "") {
+	echo "\n\t\t<p class='nwlink noprint'>";
+		echo "\n\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$ogml;
+			if ($idanzeige) {echo "&amp;id=j";}
+			if ($showkey)   {echo "&amp;showkey=j";}
+		echo "' title='Lage Ohne Hausnummer'>Lage <img src='ico/Lage_an_Strasse.ico' width='16' height='16' alt=''></a>";
+	echo "\n\t\t</p>";
+}
+
+echo "\n\t</td>\n</tr>\n</table>";
+// Ende Seitenkopf
+
+// F L U R S T U E C K E
+echo "\n\n<a name='fs'></a><h3><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n";
+echo "\n<p>Zusammenfassung von 'Lage mit Hausnummer' und 'Lage ohne Hausnummer' an dieser StraÃe</p>";
+// ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer  > > Lage "Mit HsNr"  = Hauptgebaeude 
+// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer > > Lage "Ohne HsNr" = Strasse
+$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, duett.lgml, duett.hausnummer FROM ax_flurstueck f ";
+$sql.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+$sql.="JOIN (SELECT v1.beziehung_von AS fsgml, lm.gml_id AS lgml, lm.land, lm.regierungsbezirk ,lm.kreis, lm.gemeinde, lm.lage, lm.hausnummer ";
+$sql.="FROM alkis_beziehungen v1 JOIN ax_lagebezeichnungmithausnummer lm ON lm.gml_id=v1.beziehung_zu AND v1.beziehungsart= 'weistAuf' ";
+$sql.="UNION SELECT v2.beziehung_von AS fsgml, '' AS lgml, lo.land, lo.regierungsbezirk ,lo.kreis, lo.gemeinde, lo.lage, '' AS hausnummer ";
+$sql.="FROM alkis_beziehungen v2 JOIN ax_lagebezeichnungohnehausnummer lo ON lo.gml_id=v2.beziehung_zu AND v2.beziehungsart= 'zeigtAuf' ";
+$sql.=") AS duett ON f.gml_id=duett.fsgml "; 
+$sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON duett.land=s.land AND duett.regierungsbezirk=s.regierungsbezirk AND duett.kreis=s.kreis AND duett.gemeinde=s.gemeinde AND duett.lage=s.lage "; 
+$sql.="WHERE s.gml_id = $1 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+$v=array($gmlid);
+$resf=pg_prepare("", $sql);
+$resf=pg_execute("", $v);
+if (!$resf) {
+	echo "<p class='err'>Fehler bei Flurst&uuml;ck.</p>\n";
+	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}	
+}
+
+echo "\n<table class='fs'>";
+echo "\n<tr>"; // Kopfzeile der Tabelle
+	echo "\n\t<td class='head' title='Name der Gemarkung (Ortsteil)'>Gemarkung</td>";
+	echo "\n\t<td class='head' title='Flur-Nummer'>Flur</td>";
+	echo "\n\t<td class='head' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'>Flurst.</td>";
+	echo "\n\t<td class='head fla' title='amtliche Fl&auml;che in Quadratmeter'>Fl&auml;che</td>";
+	echo "\n\t<td class='head hsnr' title='Hausnummer aus der Lagebezeichnung des Flurst&uuml;cks'>HsNr.</td>";
+	echo "\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>";
+echo "\n</tr>";
+$j=0;
+while($rowf = pg_fetch_array($resf)) {
+	$flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
+	$fskenn=$rowf["zaehler"]; // Bruchnummer
+	if ($rowf["nenner"] != "") {$fskenn.="/".$rowf["nenner"];}
+	$flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
+	$lgml=$rowf["lgml"]; // ID von "Lage Mit" oder leer
+
+	echo "\n<tr>";
+		echo "\n\t<td>";
+		if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";}
+		echo $rowf["bezeichnung"]."</td>";
+		echo "\n\t<td>".$flur."</td>";
+		echo "\n\t<td><span class='wichtig'>".$fskenn."</span>";
+		if ($idanzeige) {linkgml($gkz, $rowf["gml_id"], "Flurst&uuml;ck");}
+		echo "</td>";
+		echo "\n\t<td class='fla'>".$flae."</td>";
+		echo "\n\t<td class='hsnr'>".$rowf["hausnummer"]."</td>";
+		echo "\n\t<td>\n\t\t<p class='nwlink noprint'>";
+
+			if ($lgml != '') {
+				echo "\n\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=m&amp;gmlid=".$lgml;
+				if ($idanzeige) {echo "&amp;id=j";}
+				if ($showkey)   {echo "&amp;showkey=j";}
+				echo "' title='Lage Mit Hausnummer'>Lage <img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>&nbsp;";
+			}
+
+			echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
+			if ($idanzeige) {echo "&amp;id=j";}
+			if ($showkey)   {echo "&amp;showkey=j";}
+			echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.ico' width='16' height='16' alt=''></a>";
+
+		echo "\n\t\t</p>\n\t</td>";
+	echo "\n</tr>";
+	$j++;
+}
+echo "\n</table>";
+
+?>
+
+<form action=''>
+	<div class='buttonbereich noprint'>
+	<hr>
+		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
+		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken"></a>&nbsp;
+<!--	<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.ico" width="16" height="16" alt="Export" /></a>&nbsp; -->
+	</div>
+</form>
+
+<?php footer($gmlid, $_SERVER['PHP_SELF']."?", "&amp;ltyp=".$ltyp); ?>
+
+</body>
+</html>
Index: trunk/info/info/alkis/alkishaus.php
===================================================================
--- trunk/info/info/alkis/alkishaus.php	(revision 305)
+++ trunk/info/info/alkis/alkishaus.php	(revision 306)
@@ -18,5 +18,4 @@
 */
 session_start();
-//import_request_variables("G"); // php 5.3 deprecated, php 5.4 entfernt
 $cntget = extract($_GET);
 require_once("alkis_conf_location.php");
@@ -271,22 +270,10 @@
 				// weiteregebaeudefunktion ist jetzt ein Array
 				$wgflist=trim($wgf, "{}"); // kommagetrennte(?) Liste der Schluesselwerte
-				$wgfarr=explode(",", $wgflist);
-				$sqlw="SELECT wert, bezeichner FROM ax_gebaeude_weiterefunktion WHERE wert in ( ";
-				foreach($wgfarr as $key => $val) {
-						$v[$key] = $val;
-						if ($key > 0){
-							$sqlw.=",";
-						}
-						$sqlw.=" $".($key+1);
-
-        			}
-				 
-				$sqlw.= ") ORDER BY wert;";
-								
-				
-				#echo $sqlw;
+				//$wgfarr=explode(",", $wgflist);
+				//for each ...
+				$sqlw="SELECT wert, bezeichner FROM ax_gebaeude_weiterefunktion WHERE wert in ( $1 ) ORDER BY wert;";
+				$v = array($wgflist);
 				$resw = pg_prepare("", $sqlw);
 				$resw = pg_execute("", $v);
-				
 				if (!$resw) {
 					echo "\n<p class='err'>Fehler bei Geb&auml;ude - weitere Funktion.</p>\n";
Index: trunk/info/info/alkis/alkisrelationen.php
===================================================================
--- trunk/info/info/alkis/alkisrelationen.php	(revision 305)
+++ trunk/info/info/alkis/alkisrelationen.php	(revision 306)
@@ -8,10 +8,9 @@
 
 	Version:
-	10.11.2011  Relationen-ZÃ€hler ausgeben, ab 5 Zeilen nicht mehr 'auf einen Blick' erkennbar.
-	30.11.2011  import_request_variables
+	2011-11-10  Relationen-ZÃ€hler ausgeben, ab 5 Zeilen nicht mehr 'auf einen Blick' erkennbar.
+	2011-11-30  import_request_variables
 	2013-04-08  deprecated "import_request_variables" ersetzt
 */
 session_start();
-//import_request_variables("G"); // php 5.3 deprecated, php 5.4 entfernt
 $cntget = extract($_GET);
 require_once("alkis_conf_location.php");
Index: trunk/info/info/alkis/alkisbestnw.php
===================================================================
--- trunk/info/info/alkis/alkisbestnw.php	(revision 305)
+++ trunk/info/info/alkis/alkisbestnw.php	(revision 306)
@@ -16,5 +16,4 @@
 */
 session_start();
-//import_request_variables("G"); // php 5.3 deprecated, php 5.4 entfernt
 $cntget = extract($_GET);
 require_once("alkis_conf_location.php");
@@ -39,5 +38,5 @@
 	<script type="text/javascript">
 		function ALKISexport() {
-				window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=grundbuch&gmlid=".$gmlid."'"; ?>);
+			window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=grundbuch&gmlid=".$gmlid."'"; ?>);
 		}
 	</script>
@@ -60,5 +59,4 @@
 $sql.="FROM ax_buchungsblatt g ";
 $sql.="LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk ";  // BBZ
-//$sql.="LEFT JOIN ax_dienststelle a ON b.\"gehoertzu|ax_dienststelle_schluessel|land\"=a.land AND b.stelle=a.stelle ";
 $sql.="LEFT JOIN ax_dienststelle a ON b.land = a.land AND b.stelle = a.stelle ";
 $sql.="WHERE g.gml_id= $1 ";
Index: trunk/info/info/alkis/alkisnamstruk.php
===================================================================
--- trunk/info/info/alkis/alkisnamstruk.php	(revision 305)
+++ trunk/info/info/alkis/alkisnamstruk.php	(revision 306)
@@ -12,5 +12,4 @@
 */
 session_start();
-//import_request_variables("G"); // php 5.3 deprecated, php 5.4 entfernt
 $cntget = extract($_GET);
 require_once("alkis_conf_location.php");
@@ -35,5 +34,5 @@
 	<script type="text/javascript">
 		function ALKISexport() {
-				window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=person&gmlid=".$gmlid."'"; ?>);
+			window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=person&gmlid=".$gmlid."'"; ?>);
 		}
 	</script>
Index: trunk/info/info/alkis/alkisgebaeudenw.php
===================================================================
--- trunk/info/info/alkis/alkisgebaeudenw.php	(revision 305)
+++ trunk/info/info/alkis/alkisgebaeudenw.php	(revision 306)
@@ -4,12 +4,9 @@
 
 	Version:
-	22.11.2011  Feld ax_gebaeude.description ist entfallen, neue Spalte Zustand
-	30.11.2011
-		Fehlerkorrektur Gebaeude mit mehreren Adressen nicht mehrfach
-		Sonderfall lage aus PostNAS 05 entfernt, import_request_variables
+	2011-11-22  Feld ax_gebaeude.description ist entfallen, neue Spalte Zustand
+	2011-11-30	Fehlerkorrektur Gebaeude mit mehreren Adressen nicht mehrfach
 	2013-04-08  deprecated "import_request_variables" ersetzt
 */
 session_start();
-//import_request_variables("G"); // php 5.3 deprecated, php 5.4 entfernt
 $cntget = extract($_GET);
 require_once("alkis_conf_location.php");
Index: trunk/info/info/alkis/alkislage.php
===================================================================
--- trunk/info/info/alkis/alkislage.php	(revision 305)
+++ trunk/info/info/alkis/alkislage.php	(revision 306)
@@ -6,20 +6,12 @@
 
 	Version:
-	2011-11-22
-		Felder ax_gebaeude.description und .individualname sind entfallen
-		GebÃ€ude als Tabelle
-		Link auf neues Modul "alkishaus". 
-		Sonderfall PostNAS-Vers. 05 entfernt.
-		Kennzeichen im Balken verkÃŒrzt.
-	2011-11-30  import_request_variables
 	2013-03-06  Korrektur URL des Link im Abs. Lage bei eingeschalteten Test-Optionen
 	2013-04-08  deprecated "import_request_variables" ersetzt
+	2014-01-23	gml des Katalogs, Link auf Modul "strasse"
 
 	ToDo:
-	- Entschluesseln Kreis usw.
 	- Das Balken-Kennzeichen noch kompatibel machen mit der Eingabe der Navigation fÃŒr Adresse 
 */
 session_start();
-//import_request_variables("G"); // php 5.3 deprecated, php 5.4 entfernt
 $cntget = extract($_GET);
 require_once("alkis_conf_location.php");
@@ -62,5 +54,5 @@
 
 // L a g e b e z e i c h n u n g
-$sql ="SELECT s.bezeichnung AS snam, k.bezeichnung AS knam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, ";
+$sql ="SELECT s.gml_id AS strgml, s.bezeichnung AS snam, b.bezeichnung AS bnam, r.bezeichnung AS rnam, k.bezeichnung AS knam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, ";
 switch ($ltyp) {
 	case "m": // "Mit HsNr"
@@ -74,10 +66,10 @@
 	break;
 }
-$sql.="FROM ".$tnam." l ";
-// Gemeinde, Kreis, Strasse entschluesseln
+$sql.="FROM ".$tnam." l "; // Left: Bei sub-Typ "Gewanne" von Typ "o" sind keine SchlÃŒsselfelder gefÃŒllt!
 $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_regierungsbezirk r ON l.land=r.land AND l.regierungsbezirk=r.regierungsbezirk ";
+$sql.="LEFT JOIN ax_bundesland b ON l.land=b.land ";
 $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ";
-// ab PostNAS 0.6: Feld "lage" 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;";
@@ -92,15 +84,18 @@
 
 if ($row = pg_fetch_array($res)) {
+	$strgml=$row["strgml"]; // gml_id des Katalogeintrag StraÃe
 	$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
+	$rnam=$row["rnam"];
+	$bnam=$row["bnam"];
+	$gem=$row["gemeinde"];
+	$gnam=$row["gnam"];
+	$lage=$row["lage"]; // Strassenschluessel
+	$snam=$row["snam"]; //Strassennamen
 	$unver=$row["unverschluesselt"]; // Gewanne
-//	$kennz=$land."-".$regbez."-".$kreis."-".$gem."-".$lage."-";
-	$kennz=$gem."-".$lage."-"; // ToDo: Kompatibel machen als Eingabe in in Navigation/Adresse 
+//	$kennz=$land."-".$regbez."-".$kreis.  ...
+	$kennz=$gem."-".$lage."-"; // ToDo: Kompatibel machen als Eingabe in Navigation/Adresse 
 	
 	switch ($ltyp) {
@@ -111,4 +106,5 @@
 			// Balken
 			echo "<p class='lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
+			$osub="";
 		break;
 		case "p": // "mit PseudoNr"
@@ -118,13 +114,19 @@
 			$untertitel="NebengebÃ€ude mit laufender Nummer (Lagebezeichnung mit Pseudonummer)";
 			echo "<p class='lage'>ALKIS Lagebezeichnung NebengebÃ€ude ".$kennz."&nbsp;</p>\n"; // Balken
+			$osub="";
 		break;
-		case "o": //"Ohne HsNr"
+		case "o": // "Ohne HsNr"
+			// 2 Unterarten bzw. Zeilen-Typen in der Tabelle
 			if ($lage == "") {
+				$osub="g"; // Sub-Typ Gewanne
 				$kennz=" - ".$unver;
+				$untertitel="Gewanne (unverschl&uuml;sselte Lage)";
+				echo "<p class='lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
 			} else {
+				$osub="s"; // Sub-Typ Strasse (ohne HsNr)
 				$kennz.=$unver;
-			}
-			$untertitel="Stra&szlig;e ohne Hausnummer und/oder Gewanne (unverschl&uuml;sselte Lage)";
-			echo "<p class='lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
+				$untertitel="Stra&szlig;e ohne Hausnummer";
+				echo "<p class='lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken
+			}
 		break;
 	}
@@ -133,5 +135,5 @@
 }
 
-echo "\n<h2><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Lagebezeichnung</h2>\n";
+echo "\n<h2><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt='HAUS'> Lagebezeichnung</h2>\n";
 
 echo "<p>Typ: ".$untertitel."</p>";
@@ -141,9 +143,11 @@
 	echo "\n\t<table class='kennzla' title='Lage'>";
 		echo "\n\t<tr>";
-			echo "\n\t\t<td class='head'>Land</td>";
-			echo "\n\t\t<td class='head'>Reg.-Bez.</td>";
-			echo "\n\t\t<td class='head'>Kreis</td>";
-			echo "\n\t\t<td class='head'>Gemeinde</td>";
-			echo "\n\t\t<td class='head'>Stra&szlig;e</td>";
+			if ($osub != "g") { // nicht bei Gewanne
+				echo "\n\t\t<td class='head'>Land</td>";
+				echo "\n\t\t<td class='head'>Reg.-Bez.</td>";
+				echo "\n\t\t<td class='head'>Kreis</td>";
+				echo "\n\t\t<td class='head'>Gemeinde</td>";
+				echo "\n\t\t<td class='head'>Stra&szlig;e</td>";
+			}
 			switch ($ltyp) {
 				case "m": // "Mit HsNr"
@@ -155,32 +159,38 @@
 				break;
 				case "o": //"Ohne HsNr"
-					echo "\n\t\t<td class='head'>unverschl&uuml;sselte Lage</td>";
+					if ($osub == "g") {
+						echo "\n\t\t<td class='head'>unverschl&uuml;sselte Lage</td>";
+					}
 				break;
 			}
 		echo "\n\t</tr>";
 		echo "\n\t<tr>";
-			echo "\n\t\t<td title='Bundesland'>".$land."</td>";
-			echo "\n\t\t<td title='Regierungsbezirk'>".$regbez."</td>";
-			echo "\n\t\t<td title='Kreis'>";
-				if ($showkey) {
-						echo "<span class='key'>".$kreis."</span><br>";
-				}
-			echo $knam."&nbsp;</td>";
-			echo "\n\t\t<td title='Gemeinde'>";
-				if ($showkey) {
-					echo "<span class='key'>".$gem."</span><br>";
-				}
-			echo $gnam."&nbsp;</td>";
-
-			echo "\n\t\t<td title='Stra&szlig;e'>";
-				if ($showkey) {
-					echo "<span class='key'>".$lage."</span><br>";
-				}
-			if ($ltyp == "o") {
-				echo "<span class='wichtig'>".$snam."</div>";
-			} else {
-				echo $snam;
-			}	
-			echo "&nbsp;</td>";
+			if ($osub != "g") { // nicht bei Gewanne
+
+				echo "\n\t\t<td title='Bundesland'>";
+				if ($showkey) {echo "<span class='key'>".$land."</span><br>";}
+				echo $bnam."&nbsp;</td>";
+
+				echo "\n\t\t<td title='Regierungsbezirk'>";
+				if ($showkey) {echo "<span class='key'>".$regbez."</span><br>";}
+				echo $rnam."&nbsp;</td>";
+
+				echo "\n\t\t<td title='Kreis'>";
+				if ($showkey and $osub != "g") {echo "<span class='key'>".$kreis."</span><br>";}
+				echo $knam."&nbsp;</td>";
+
+				echo "\n\t\t<td title='Gemeinde'>";
+				if ($showkey and $osub != "g") {echo "<span class='key'>".$gem."</span><br>";}
+				echo $gnam."&nbsp;</td>";
+
+				echo "\n\t\t<td title='Stra&szlig;e'>";
+				if ($showkey and $osub != "g") {echo "<span class='key'>".$lage."</span><br>";}
+				if ($ltyp == "o") {
+					echo "<span class='wichtig'>".$snam."</span>";
+				} else {
+					echo $snam;
+				}	
+				echo "&nbsp;</td>";
+			}
 
 			switch ($ltyp) {
@@ -193,5 +203,7 @@
 				break;
 				case "o":
-					echo "\n\t\t<td title='Gewanne'><span class='wichtig'>".$unver."</span></td>";
+					if ($osub == "g") {
+						echo "\n\t\t<td title='Gewanne'><span class='wichtig'>".$unver."</span></td>";
+					}
 				break;
 			}
@@ -202,6 +214,14 @@
 
 	// Kopf Rechts: weitere Daten?
-	// z.B. hier Ausgabe von "georeferenzierte GebÃ€udeadresse" ?
 	if ($idanzeige) {linkgml($gkz, $gmlid, "Lage"); }
+
+	if ($osub != "g") { // Link zu Strasse
+		echo "\n\t\t<p class='nwlink noprint'>";
+			echo "\n\t\t<a href='alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$strgml;
+				if ($idanzeige) {echo "&amp;id=j";}
+				if ($showkey)   {echo "&amp;showkey=j";}
+			echo "' title='Stra&szlig;e'>Stra&szlig;e <img src='ico/Strassen.ico' width='16' height='16' alt=''></a>";
+		echo "\n\t\t</p>";
+	}
 
 echo "\n\t</td>\n</tr>\n</table>";
@@ -209,9 +229,9 @@
 
 // F L U R S T U E C K E
+	// ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer
+	// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
 if ($ltyp <> "p") { // Pseudonummer linkt nur GebÃ€ude
 	echo "\n\n<a name='fs'></a><h3><img src='ico/Flurstueck.ico' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n";
 	echo "\n<p>mit dieser Lagebezeichnung.</p>";
-	// ax_Flurstueck  >weistAuf>  ax_LagebezeichnungMitHausnummer
-	// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
 	switch ($ltyp) {
 		case "m": $bezart="weistAuf"; break;
@@ -219,5 +239,5 @@
 	}
 	$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.="f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche ";
 	$sql.="FROM ax_flurstueck f ";
 	$sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von "; 
@@ -300,5 +320,5 @@
 				echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
 			}
-			echo "\n</p>";
+			echo "</p>";
 		break;
 
@@ -316,5 +336,5 @@
 				echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=m'>Haus-Nr ".$pseu."</a>&nbsp;&nbsp;";
 			}
-			echo "\n</p>";
+			echo "</p>";
 
 			echo "\n<p>weitere Nebengeb&auml;ude: ";
@@ -331,5 +351,5 @@
 				echo "\n\t<a href='".$url.$row["gml_id"]."&amp;ltyp=p'>lfd.-Nr ".$row["laufendenummer"]."</a>&nbsp;&nbsp;";
 			}
-			echo "\n</p>";
+			echo "</p>";
 		break;
 	}
@@ -405,8 +425,6 @@
 	<div class='buttonbereich noprint'>
 	<hr>
-		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
-		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp;
-<!--	<a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.ico" width="16" height="16" alt="Export" /></a>&nbsp;
-		<a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>	-->
+		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.ico" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
+		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken"></a>&nbsp;
 	</div>
 </form>
@@ -416,3 +434,2 @@
 </body>
 </html>
-
Index: trunk/mapbender/http/nav/alkisnav_adr.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_adr.php	(revision 305)
+++ trunk/mapbender/http/nav/alkisnav_adr.php	(revision 306)
@@ -5,8 +5,11 @@
 	2013-04-29	Test mit IE
 	2013-05-07  Strukturierung des Programms
-	2013-05-14  Feinkorrekturen.
-
+	2013-05-14  Feinkorrekturen
+	2013-05-15  Gruppierung nach Gemeinde, mehrfache HsNr (ap_pto.advstandardmodell) unterdrÃŒcken, Icon f. StraÃe
+	2014-01-23	Link zum Auskunft-Modul fÃŒr StraÃe
 	ToDo:
+	-	Gruppierung (mit Zeile) der StraÃenliste nach Gemeinde
 	-	Eingabe aus "Balken" von Buchauskunft "Lage" zulassen: Numerisch: Gem-Str-Haus-lfd
+		-- lfd (NebengebÃ€ude) als Untergliederung der geklickten Haus-Nr anzeigen
 		Analog zur Zerlegung des FS-Kennz in _fls
 	-	Mouse-Over in StraÃenliste soll Position zeigen.
@@ -15,4 +18,5 @@
 $cntget = extract($_GET);
 include("../../conf/alkisnav_conf.php");
+include("alkisnav_fkt.php"); // Funktionen
 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password;
 $con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$$dbname.$dbvers.$gkz);
@@ -32,4 +36,8 @@
 			document.getElementById('transaktiontitle').innerHTML = trans;
 		}
+		function imFenster(dieURL) {
+			var link = encodeURI(dieURL);
+			window.open(link,'','left=10,top=10,width=620,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes');
+		}
 	</script>
 </head>
@@ -42,7 +50,6 @@
 END;
 
-function suchStrName() {
-	// Strassen nach Name(-nsanfang)
-	global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug;
+function suchStrName() { // Strassen nach Name(-nsanfang)
+	global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath;
 	$linelimit=120;  // -> in die Conf?
 	preg_match("/^(\D+)(\d*)(\D*)/",$street,$matches); # 4 matches name/nr/zusatz echo "match: ".$matches[1].",".$matches[2].",".$matches[3];
@@ -54,5 +61,5 @@
 		$match=trim($matches[1])."%";
 	}
-	$sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.schluesselgesamt, k.lage ";
+	$sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage ";
 	$sql.="FROM ax_lagebezeichnungkatalogeintrag as k ";
 	$sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde ";
@@ -68,5 +75,5 @@
 			break;
 	}
-	$sql.="ORDER BY k.bezeichnung, g.bezeichnung, k.lage LIMIT $2 ;";
+	$sql.="ORDER BY g.bezeichnung, k.bezeichnung, k.lage LIMIT $2 ;";
  	$v=array($match,$linelimit);
 	$res=pg_prepare("", $sql);
@@ -74,26 +81,28 @@
 	if (!$res) {return "\n<p class='err'>Fehler bei Name</p>";}
 	$cnt = 0;
+	$gwgem="";
 	while($row = pg_fetch_array($res)) {
-		$sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");		
-		$gkey=$row["schluesselgesamt"]; // Land-Kreis-Gem-Strasse
-		$gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8");
-		$skey=$row["lage"];
+		$gemname=$row["gemname"];
+		$gemnr=$row["gemeinde"] ;
+		if ($gwgem != $gemname) {
+			if ($gfilter != 1) {
+				zeile_gemeinde($gemnr, $gemname, false); // ToDo: aber ohne Link oder Link verarbeiten kÃ¶nnen
+			}
+			$gwgem=$gemname;
+		}
+		$gkey=$row["schluesselgesamt"]; // Land-RegBez-Kreis-Gem-Strasse - fÃŒr weitere Suche
+		$skey=$row["lage"]; // Nur Str.-schl. daraus
+		$kgml=$row["gml_id"]; // ID von Katalog
+
+// +++ in function_zeile_strasse()
+		$sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");	
 		echo "\n\t<div class='stl' title='Stra&szlig;enschl&uuml;ssel ".$skey."'>";
-			if (trim($skey, "0..9") == "") { // Integer
-				echo "<a class='stl' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$gkey."'>".$sname."</a>";
-			} else { // Klassifizierung?
-				echo $sname; // nicht brauchbar fuer ax_lagebezeichnungmithausnummer.lage (Integer)
-			}	
-			switch ($gfilter) {
-				case 0: // Kein Filter
-					echo " in ".$gemname;
-					break;
-				case 2: // Liste
-					echo " in ".$gemname;
-					break;
-				default: // Einzelwert
-					break;
-			}			
+		// Icon -> Buchnachweis
+		echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$kgml."\")'>";
+			echo "\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.ico' width='16' height='16' alt='STR' title='Stra&szlig;e'>";
+		echo "\n\t</a>";
+		echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$gkey."'>".$sname."</a>";
 		echo "</div>";
+// +++ function ende
 		$cnt++;
 	}
@@ -110,16 +119,14 @@
 }
 
-function suchStrKey() {
-	// Strassen nach Strassen-Schluessel
-	global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug;
-	$linelimit=50;
+function suchStrKey() { // Strassen nach num. Schluessel
+	global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath;
+	$linelimit=60;
 	if(preg_match("/\*/",$street)) {
 		$match=trim(preg_replace("/\*/i","%",$street));
-		// -> Anwender muss fuehrende Nullen eingeben oder fuehrende Wildcard
+		// fuehrende Nullen eingeben oder fuehrende Wildcard
 	} else {
 		$match=str_pad($street, 5, "0", STR_PAD_LEFT); // "Wie eine Zahl" verarbeiten 
 	}
-   //if ($debug >= 2) {echo "<p>sql-Match='".$match."'</p>";}
-	$sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.schluesselgesamt, k.lage ";
+	$sql ="SELECT g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage ";
 	$sql.="FROM ax_lagebezeichnungkatalogeintrag as k ";
 	$sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde ";
@@ -132,8 +139,5 @@
 			$sql.="AND k.gemeinde in (".$gemeinde.") ";
 			break;
-		default: // kein Filter
-			break;
-	}
-
+	}
 	$sql.="ORDER BY k.lage, k.bezeichnung LIMIT $2 ;";
  	$v=array($match,$linelimit);
@@ -147,5 +151,14 @@
 		$gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8");
 		$skey=$row["lage"];
+		$kgml=$row["gml_id"]; // ID von Katalog	
+		
+// +++ in function_zeile_strasse()
 		echo "\n\t<div class='stl' title='Stra&szlig;enschl&uuml;ssel ".$skey."'>";
+
+			// Icon -> Buchnachweis
+			echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$kgml."\")'>";
+				echo "\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.ico' width='16' height='16' alt='STR' title='Stra&szlig;e'>";
+			echo "\n\t</a>";		
+		
 			echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$gkey."' title='".$gemname."'>".$sname;
 			echo "</a>";
@@ -159,4 +172,5 @@
 			}
 		echo "</div>";
+// function ende
 		$cnt++;
 	}
@@ -173,7 +187,8 @@
 }
 
-function suchHausZurStr($showParent){
-	// Haeuser zu einer Strasse
+function suchHausZurStr($showParent) { // Haeuser zu einer Strasse
 	global $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug;
+
+	// Head
 	// Strasse zum Strassenschluessel
 	$sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage ";
@@ -181,17 +196,17 @@
 	$sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde ";
 	$sql.="WHERE k.schluesselgesamt = $1 LIMIT 1"; 
-  	$v=array($str_schl);
+  	$v=array($str_schl);	// Schluessel-Gesamt ..
 	$res=pg_prepare("", $sql);
 	$res=pg_execute("", $v);
-	if($row = pg_fetch_array($res)) { // Strassenschluessel gefunden
+	if($row = pg_fetch_array($res)) { // .. gefunden
 		$sname=$row["bezeichnung"];
-		$land =$row["land"];
+		$land =$row["land"];	// Einzel-Felder fÃŒr JOIN _lagebezeichnung_
 		$regb =$row["regierungsbezirk"];
 		$kreis=$row["kreis"];
 		$gemnd=$row["gemeinde"];
+		$nr=$row["lage"];
 		$gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8");
-		$nr=$row["lage"];
 		if ($showParent) {
-			// eine Koordinate zur Strasse besorgen
+			// EINE Koordinate zur Strasse besorgen
 			// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
 			$sqlko ="SELECT ";
@@ -224,5 +239,5 @@
 						echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalestr."); ";
 						echo "parent.parent.showHighlight(".$x.",".$y."); ";
-						//echo "document.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$str_schl."\"";
+					//	echo "document.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$str_schl."\"";
 					echo "' "; // end href
 					echo "\n\t\tonmouseover='parent.parent.showHighlight(" .$x. "," .$y. ")' ";
@@ -243,12 +258,14 @@
 		}
 		echo "\n<hr>";
+
+		// Body
 		// Haeuser zum Strassenschluessel
-		$sql="SELECT replace(h.hausnummer,' ','') AS hsnr, ";
+		$sql="SELECT min(replace(h.hausnummer,' ','')) AS hsnr, ";
 		if($epsg == "25832") { // Transform nicht notwendig
-			$sql.="st_x(p.wkb_geometry) AS x, ";
-			$sql.="st_y(p.wkb_geometry) AS y ";		
+			$sql.="avg (st_x(p.wkb_geometry)) AS x, ";
+			$sql.="avg (st_y(p.wkb_geometry)) AS y ";		
 		} else {  
-			$sql.="st_x(st_transform(p.wkb_geometry,".$epsg.")) AS x, ";
-			$sql.="st_y(st_transform(p.wkb_geometry,".$epsg.")) AS y ";		
+			$sql.="avg (st_x(st_transform(p.wkb_geometry,".$epsg."))) AS x, ";
+			$sql.="avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y ";		
 		}
 		$sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von ";
@@ -256,9 +273,18 @@
 		$sql.="WHERE v.beziehungsart='dientZurDarstellungVon' AND p.art = 'HNR' ";
 		$sql.="AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 ";
+		$sql.="GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2) ";
 		$sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);";
+		// Problem: mehrere Koordinaten fÃŒr verschiedene MaÃstÃ€be der Kartendarstellung
+		// Diese sollten nicht mehrfach gelistet werden. FÃŒr Positionierung "irgendeine" nehmen.
+		// LÃ¶sung: ÃŒber GROUP BY in SQL. Alternative LÃ¶sungen wÃ€ren: 
+		//  1. Gruppenwechsel bei Abarbeitung des Result
+		//  2. Subquery mit LIMIT 1 statt JOIN
+		//  3. Geometrie aus GebÃ€ude-Mittelpunkt statt aus PrÃ€sentationsobjekt der Hausnummer
 
  		$v=array($land,$regb,$kreis,$gemnd,$nr);
 		$resh=pg_prepare("", $sql);
 		$resh=pg_execute("", $v);
+		#echo "<p class='dbg'>SQL='".$sql."'<br>Array=".$v[]."</p>"; // TEST
+
 		$cnt=0;
 		$count=0;
@@ -272,5 +298,5 @@
 				echo "<a href='";
 					echo "javascript:";
-					echo "transtitle(\"auf Haus positioniert\"); ";
+					echo "transtitle(\"auf Haus ".$hsnr." positioniert\"); ";
 					echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalehs."); ";
 					echo "parent.parent.showHighlight(".$x.",".$y.");' ";
@@ -288,5 +314,7 @@
 		if($count > 0) {echo "\n</tr>";}
 		echo "\n</table>";
-		echo "\n<p class='anz'>".$cnt." Hausnummern</p>";
+		if ($cnt > 1) {
+			echo "\n<p class='anz'>".$cnt." Hausnummern</p>";
+		}
 	} else {
 		echo "\n<p class='anz'>Keine Stra&szlig;e</p>";
@@ -298,11 +326,8 @@
 // ===========
 if(isset($epsg)) {
-	#if ($debug >= 2) {echo "\n<p>aktueller EPSG='".$epsg."'</p>";} // aus MB
 	$epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);	
 } else {
-	#if ($debug >= 1) {echo "\n<p class='err'>kein EPSG gesetzt</p>";}	
 	$epsg=$gui_epsg; // aus Conf
 }
-#if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";}
 if ($gemeinde == "") {
 	$gfilter = 0; // ungefiltert
@@ -312,8 +337,12 @@
 	$gfilter = 2; // Liste
 }
-if (isset($str_schl)) { // aus Link
+
+// +++	Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage":
+//			Numerisch: Gem-Str-Haus-lfd
+
+if ($str_schl != "") { // aus Link
 	$trans="Hausnummern zur Stra&szlig;e";
 	suchHausZurStr(true);
-} elseif(isset($street)) { // Eingabe in Form
+} elseif($street != "") { // Eingabe in Form
 	if (trim($street, "*,0..9") == "") { // Zahl, ggf. mit Wildcard
 		$trans="Suche Stra&szlig;enschl&uuml;ssel \"".$street."\"";
Index: trunk/mapbender/http/nav/alkisnav_grd.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_grd.php	(revision 305)
+++ trunk/mapbender/http/nav/alkisnav_grd.php	(revision 306)
@@ -9,4 +9,5 @@
 	2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen
 	2013-05-14  Hervorhebung aktuelles Objekt. Title "Nachweis" auch auf Icon.
+	2013-12-12	Limit in EinBlatt von 200 weit hoch gesetzt (bis BlÃ€ttern mÃ¶glich wird)
 */
 $cntget = extract($_GET);
@@ -289,5 +290,7 @@
 	}
 	// Body
-	GB_Buchung_FS(200, $zgbbez."-".$zblatt); // Blatt -> Buchung -> Flurstueck (max. 200)
+	// 2013-12-12 Limit von ursprÃŒnglich 200 weit hoch gesetzt
+	GB_Buchung_FS(1000, $zgbbez."-".$zblatt); // Blatt -> Buchung -> Flurstueck (Limitiert)
+	// ++ besser Limit wieder runter und "BlÃ€ttern"-Funktion einfÃŒhren
 	return; 
 }
Index: trunk/mapbender/http/nav/alkisnav_fls.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_fls.php	(revision 305)
+++ trunk/mapbender/http/nav/alkisnav_fls.php	(revision 306)
@@ -8,4 +8,5 @@
 	2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen
 	2013-05-14  Variablen-Namen geordnet, Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar.
+	2013-10-15  missing Parameter
 */
 $cntget = extract($_GET);
@@ -123,18 +124,4 @@
 }
 
-function zeile_gemeinde ($gmdnr, $gmdname, $aktuell) {
-	// Eine Zeile zu Gemeinde ausgeben, SchlÃŒssel und Name wird ÃŒbergeben
-	global $gkz, $gemeinde, $epsg;
-	$stadt=htmlentities($gmdname, ENT_QUOTES, "UTF-8");
-	$bez=urlencode($gmdname);
-	if ($aktuell) {$cls=" aktuell";}
-	echo "\n<div class='gm".$cls."' title='Gemeinde'>";
-		echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>";
-		echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gm=".$gmdnr."&amp;bez=".$bez."'>";		
-		echo  " ".$stadt."</a> (".$gmdnr.")";
-	echo "\n</div>";
-	return;
-}
-
 function zeile_gemarkung($gkgnr, $gkgname, $aktuell) {
 	// Eine Zeile zu Gemarkung ausgeben
@@ -167,5 +154,5 @@
 	$url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gkgnr."-".$flurnr;
 	echo "<a title='Aktuelle Flurst&uuml;cke suchen' href='".$url."'>Flur ".$flurnr." </a>"; 
-	If ($histlnk) { // Link zur hist. Suche anbieten
+	if ($histlnk) { // Link zur hist. Suche anbieten
 		echo " <a class='hislnk' title='Historische Flurst&uuml;cke der Flur' href='".$url."&amp;hist=j'>Hist.</a>";
 	}
@@ -447,5 +434,6 @@
 		$zfs++;
 	}
-	// Foot
+
+	// Flur-Foot
 	if($zfs == 0) {
 		echo "\n<p class='anz'>Kein Flurst&uuml;ck.</p>";
@@ -507,5 +495,5 @@
 	// Head
 	gg_head($zgemkg, false);
-	zeile_flur($zgemkg, $zflur, true);
+	zeile_flur($zgemkg, $zflur, true, false);
 
 	// Body
