Index: trunk/mapbender/http/nav/alkisnav_adr.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_adr.php	(revision 356)
+++ trunk/mapbender/http/nav/alkisnav_adr.php	(revision 376)
@@ -1,15 +1,10 @@
 <?php
-/* Version vom 
-	2013-04-26	"import_request_variables" entfÃ€llt in PHP 5.4.
-				ZurÃŒck-Link, Titel der Transaktion anzeigen
-	2013-04-29	Test mit IE
-	2013-05-07	Strukturierung des Programms
-	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
-	2014-09-03	PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2014-09-15	Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL"
-	2014-09-30	RÃŒckbau substring(gml_id)
-	2015-12-10	Umstellen .ico auf .png, Vermeidung nicht initialisierter Variable
+/*	Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil Adressen-Suche 
+	Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer.
+
+Version vom 
+	2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet.
+	2016-03-02 $gemeinde auf feste LÃ€nge korrigieren
+	2016-11-28 Gemeinsam genutzte Datenbanken ermÃ¶glichen
 
 	ToDo:
@@ -27,18 +22,17 @@
 
 $cntget = extract($_GET);
+$gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); // temporÃ€r
 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);
+$con = pg_connect ($dbconn) or die ("Fehler bei der Verbindung zur Datenbank ".$dbpre.$dbgkz);
 
 echo <<<END
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
+<!doctype html>
+<html lang="de">
 <head>
 	<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">
+	<meta charset="utf-8">
 	<title>ALKIS-Suche Adressen</title>
 	<link rel="stylesheet" type="text/css" href="alkisnav.css">
@@ -63,11 +57,16 @@
 END;
 
-function suchStrName() { // Strassen nach Name(-nsanfang)
+function suchStrName() {
+	// Strassen nach Name(-nsanfang)
 	global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath;
-	$linelimit=120;  // -> in die Conf?
-	$str_schl=""; // Loeschen vorheriges Ergebnis
-	preg_match("/^(\D+)(\d*)(\D*)/",$street,$matches); # 4 matches name/nr/zusatz echo "match: ".$matches[1].",".$matches[2].",".$matches[3];
+	//if ($debug > 1) {echo "<p class='dbg'>function suchStrName()<p>";} // Ablauf-Verfolgung
+
+	$linelimit=120;  // -> in Conf?
+	$str_schl=""; // Loeschen vorh. Ergebnis
+	preg_match("/^(\D+)(\d*)(\D*)/",$street,$matches); # 4 matches name/nr/zusatz 
+	//echo "match: 1='".$matches[1]."', 2='".$matches[2]."', 3='".$matches[3]."'";
 	$matches[1] = preg_replace("/strasse/i","str", $matches[1]);
 	$matches[1] = preg_replace("/str\./i","str", $matches[1]); 
+
 	if(preg_match("/\*/",$matches[1])){
 		$match=trim(preg_replace("/\*/i","%", strtoupper($matches[1])));
@@ -75,8 +74,10 @@
 		$match=trim($matches[1])."%";
 	}
+
 	$sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage 
 	FROM ax_lagebezeichnungkatalogeintrag k 
 	JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde 
 	WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL ";
+
 	switch ($gfilter) {
 		case 1: // Einzelwert
@@ -114,24 +115,16 @@
 		$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."'>";
-		// 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.png' 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
+		$sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+		zeile_strasse ($gkey, $skey, $sname, $kgml, $gemname);
 		$cnt++;
 	}
 
 	if($cnt == 0) {
-		echo "<pclass='anz'>Keine Stra&szlig;e</p>";
+		echo "\n<p class='anz'>Keine Stra&szlig;e</p>";
+		//if ($debug > 2) {echo "<p class='err'>SQL = '".$sql."'<br>$1 = '".$match."'<p>";}
 	} elseif($cnt == 1) { // Eindeutig
 		$str_schl=$gkey; // dann gleich weiter
 	} elseif($cnt >= $linelimit) {
-		echo "<p class='anz'>".$cnt." Stra&szlig;en ... und weitere</p>";			
+		echo "\n<p class='anz'>".$cnt." Stra&szlig;en ... und weitere</p>";			
 	} elseif ($cnt > 1) {
 		echo "\n<p class='anz'>".$cnt." Stra&szlig;en</p>";	
@@ -142,4 +135,5 @@
 function suchStrKey() { // Strassen nach num. Schluessel
 	global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath;
+	//if ($debug > 1) {echo "<p class='dbg'>function suchStrKey()<p>";} // Ablauf-Verfolgung
 	$linelimit=60;
 	if(preg_match("/\*/",$street)) {
@@ -177,26 +171,5 @@
 		$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.png' 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>";
-			switch ($gfilter) {
-				case 0: // Kein Filter
-					echo " in ".$gemname;
-					break;
-				case 2: // Liste
-					echo " in ".$gemname;
-					break;
-			}
-		echo "</div>";
-// function ende
-
+		zeile_strasse ($gkey, $skey, $sname, $kgml, $gemname);
 		$cnt++;
 	}
@@ -215,4 +188,5 @@
 function suchHausZurStr($showParent) { // Haeuser zu einer Strasse
 	global $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug, $auskpath;
+	//if ($debug > 1) {echo "<p class='dbg'>function suchHausZurStr()<p>";} // Ablauf-Verfolgung
 
 	// Head
@@ -256,4 +230,5 @@
 			$sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 ";	
 			$sqlko.="LIMIT 1;"; // die erstbeste Koordinate
+
 			$v=array($land,$regb,$kreis,$gemnd,$nr);
 			$resko=pg_prepare("", $sqlko);
@@ -267,4 +242,5 @@
 			}
 
+			// "function zeile_strasse()" hier nicht verwendbar. ZusÃ€tzlicher Map-Link mit Koordinate 
 			// Icon -> Buchnachweis
 			echo "\n\t<br><a href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&amp;gmlid=".$kgml."\")'>";
@@ -371,4 +347,6 @@
 	$epsg=$gui_epsg; // aus Conf
 }
+
+// Filter auf Zustaendigkeit z.B. ein Stadtgebiet
 if ($gemeinde == "") {
 	$gfilter = 0; // ungefiltert
@@ -378,16 +356,19 @@
 	$gfilter = 2; // Liste
 }
-
-// +++	Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage":
-//		Numerisch: Gem-Str-Haus-lfd
-
-if ($str_schl != "") { // aus Link
+// ax_lagebezeichnungkatalogeintrag.gemeinde: z.B. Classic='40' / NorBit  = '040'
+// Im Mapbender mit fuehrenden Nullen eingeben: gazetteer_alkis.SRC
+// alkisnav.htm?..&gemeinde=040&..
+
+// +++Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage": Numerisch: Gem-Str-Haus-lfd
+
+if ($str_schl != "") { // Wert kommt aus aus Link
 	$trans="Hausnummern zur Stra&szlig;e";
 	suchHausZurStr(true);
-} elseif($street != "") { // Eingabe in Form
-	if (trim($street, "*,0..9") == "") { // Zahl, ggf. mit Wildcard
+// Wert aus Eingabe in Formular
+} elseif($street != "") { 
+	if (trim($street, "*,0..9, ") == "") { // Zahl, ggf. mit Wildcard
 		$trans="Suche Stra&szlig;enschl&uuml;ssel \"".$street."\"";
 		suchStrKey();
-	} else {
+	} else { // Name suchen
 		$trans="Suche Stra&szlig;enname \"".$street."*\"";
 		suchStrName();
@@ -402,5 +383,5 @@
 
 // Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion 
-// im Kopf des Ergebnisrahmens anzeigen.
+//  im Kopf des Ergebnisrahmens anzeigen.
 // Dazu die im HTML-Header definierte Javascript-Function benutzen.
 // Alternativ wird auch aus dem Javascript "positionieren Karte" dieser Titel gesetzt.
