Index: trunk/info/info/alkis/alkisbaurecht.php
===================================================================
--- trunk/info/info/alkis/alkisbaurecht.php	(revision 355)
+++ trunk/info/info/alkis/alkisbaurecht.php	(revision 376)
@@ -4,9 +4,6 @@
 
 	Version:
-	2013-06-27Neu als Variante von alkis*inlay*baurecht.ph (mit Footer, Balken und Umschaltung Key)
-	2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-	2015-12-09 Austausch .ico durch .png
-
-	ToDo: id-Anzeige hinzufÃŒgen fÃŒr Baurecht und FlurstÃŒck
+	2016-02-24 Version fuer norGIS-ALKIS-Import
+	2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen
 */
 session_start();
@@ -15,17 +12,11 @@
 if ($auth == "mapbender") {require_once($mapbender);}
 include("alkisfkt.php"); // f. Footer
-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>
+echo <<<END
+<!doctype html>
+<html lang="de">
 <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">
+	<meta charset="utf-8">
 	<title>ALKIS Bau-, Raum- oder Bodenordnungsrecht</title>
 	<link rel="stylesheet" type="text/css" href="alkisauszug.css">
@@ -33,29 +24,30 @@
 </head>
 <body>
+END;
 
-<?php
-$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
+
+$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbaurecht.php'");
 if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
 
-// wie View "baurecht"
-$sql ="SELECT r.ogc_fid, r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez, a.bezeichner AS adfbez, d.bezeichnung AS stellbez, d.stellenart, round(st_area(r.wkb_geometry)::numeric,0) AS flae 
+// 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 v_baurecht_adf a ON r.artderfestlegung=a.wert 
-LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;";
+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<p class='err'>Fehler bei Baurecht.</p>\n";
-	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
+	if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
 }
-
 if ($row = pg_fetch_array($res)) {
 	$artfest=$row["adfkey"];  // Art der Festlegung, Key
 	$verfnr=$row["rechtbez"]; // Verfahrens-Nummer
 	$enam=$row["name"];
-	$stellk=$row["stelle"]; // LEFT JOIN !
 	$stellb=$row["stellbez"];
 	$stella=$row["stellenart"];
@@ -66,112 +58,112 @@
 	echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>\n";
 
-	echo "\n<table>";
-
-		echo "\n<tr>";
-			echo "\n\t<td class='li'>Art der Festlegung:</td>\n\t<td>";
-			if ($showkey) {
-				echo "<span class='key'>(".$artfest.")</span> ";
-			}
-			echo "<span class='wichtig'>".$row["adfbez"]."</span></td>";
-		echo "\n</tr>";
-
+	echo "\n<table>"
+		."\n<tr>"
+			."\n\t<td class='li'>Art der Festlegung:</td>\n\t<td>";
+			if ($showkey) {echo "<span class='key'>(".$artfest.")</span> ";}
+			echo "<span class='wichtig'>".$row["adfbez"]."</span></td>"
+		."\n</tr>";
 		if ($enam != "") {
-			echo "\n<tr>";
-				echo "\n\t<td class='li'>Eigenname des Gebietes:</td>\n\t<td>".$enam."</td>";
-			echo "\n</tr>";
+			echo "\n<tr>"
+				."\n\t<td class='li'>Eigenname des Gebietes:</td>"
+				."\n\t<td>".$enam."</td>"
+			. "\n</tr>";
 		}
-
 		if ($verfnr != "") {
-			echo "\n<tr>";
-				echo "\n\t<td class='li'>Verfahrensnummer:</td>";
-				echo "\n\t<td>".$verfnr."</td>";
-				// if ($idanzeige) {linkgml($gkz, $gmlid, "Verfahren", ""); } // KEINE Bez.!
-			echo "\n</tr>";
+			echo "\n<tr>"
+				."\n\t<td class='li'>Verfahrensnummer:</td>"
+				."\n\t<td>".$verfnr."</td>"
+			."\n</tr>";
 		}
-
-		if ($stellb != "") { // z.B. Umlegung mit und Baulast ohne Dienststelle
-			echo "\n<tr>";
-				echo "\n\t<td class='li'>Dienststelle:</td>\n\t<td>";
-					if ($showkey) {echo "<span class='key'>(".$stellk.")</span> ";}
-					echo $stellb;
-				echo "</td>";
-			echo "\n</tr>";
+		if ($stellb != "") { // z.B. Umlegung *mit* und Baulast *ohne* Dienststelle, darum bezirk testen
+			echo "\n<tr>"
+				."\n\t<td class='li'>Dienststelle:</td>\n\t<td>";
+					if ($showkey) {echo "<span class='key'>(".$row["stelle"].")</span> ";}
+					echo $stellb
+				."</td>"
+			."\n</tr>";
 			if ($stella != "") {
-				echo "\n<tr>";
-					echo "\n\t<td class='li'>Art der Dienststelle:</td>";
-					echo "\n\t<td>";
+				echo "\n<tr>"
+					."\n\t<td class='li'>Art der Dienststelle:</td>"
+					."\n\t<td>";
 						if ($showkey) {echo " <span class='key'>(".$stella.")</span>";}
-						// d.stellenart -- weiter entschluesseln 1000, 1200, 1300
-						// Dazu SchlÃŒsseltabelle aus GeoInfoDok erfassen
-						echo "&nbsp;"; // Platzhalter
-					echo "</td>";
-				echo "\n</tr>";
+						echo "<span title='".$row["d"]."'>".$row["v"]."</span>"; 
+					echo "</td>"
+				."\n</tr>";
 			}
 		}
-
-		echo "\n<tr>";
-			echo "\n\t<td class='li'>Fl&auml;che:</td>";
+		echo "\n<tr>"
+			."\n\t<td class='li'>Fl&auml;che:</td>";
 			$flae=number_format($row["flae"],0,",",".")." m&#178;";
-			echo "\n\t<td>".$flae."</td>";
-		echo "\n</tr>";
-
-	echo "\n</table>";
+			echo "\n\t<td>".$flae."</td>"
+		."\n</tr>"
+	. "\n</table>";
 } else {
 	echo "\n<p class='err'>Fehler! Kein Treffer bei gml_id=".$gmlid."</p>";
 }
 
-echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> betroffene Flurst&uuml;cke</h2>\n";
-echo "\n<p>Ermittelt durch geometrische Verschneidung. Nach Gr&ouml;&szlig;e absteigend.</p>";
+echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> betroffene Flurst&uuml;cke</h2>\n"
+."\n<p>Ermittelt durch geometrische Verschneidung. Nach Gr&ouml;&szlig;e absteigend.</p>";
 
 $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
-AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true 
+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 40;"; 
+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
-$v = array($gmlid);
-$res = pg_prepare("", $sql);
-$res = pg_execute("", $v);
 
+$res=pg_prepare("", $sql);
+$res=pg_execute("", $v);
 if (!$res) {
 	echo "\n<p class='err'>Keine Flurst&uuml;cke ermittelt.<br>\nSQL=<br></p>\n";
-	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
+//	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
 }
 
-echo "\n<table class='fs'>";
-	echo "\n<tr>"; // Header
-		echo "\n\t<td class='head' title='Flur- und Flurst&uuml;cksnummer'>Flurst&uuml;ck</td>";
-		echo "\n\t<td class='head fla' title='geometrische Schnittfl&auml;che'>Fl&auml;che</td>";
-		echo "\n\t<td class='head fla' title='amtliche Flurst&uuml;cksfl&auml;che, Buchfl&auml;che'>von</td>";
-		echo "\n\t<td class='head nwlink' title='Link zum Flurst&uuml;ck'>weitere Auskunft</td>";
-	echo "\n</tr>";
+echo "\n<table class='fs'>"
+	."\n<tr>"
+		."\n\t<td class='head' title='Flur- und Flurst&uuml;cksnummer'>Flurst&uuml;ck</td>"
+		."\n\t<td class='heads fla' title='geometrische Schnittfl&auml;che'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Fl&auml;che</td>"
+		."\n\t<td class='head fla' title='amtliche Flurst&uuml;cksfl&auml;che, Buchfl&auml;che'>von</td>"
+		."\n\t<td class='head nwlink' title='Link zum Flurst&uuml;ck'>weitere Auskunft</td>"
+	."\n</tr>";
 
 	$fscnt=0;
 	while($row = pg_fetch_array($res)) {
 		$fscnt++;
-		echo "\n<tr>";
-			echo "\n\t<td>".$row["flurnummer"]."-<span class='wichtig'>".$row["zaehler"];
-			$nen=$row["nenner"];
-			if ($nen != "") {
-				echo "/".$nen;
-			}
-			echo "</span></td>";
-			echo "\n\t<td class='fla'>".$row["schnittflae"]." m&#178;</td>"; 
-			echo "\n\t<td class='fla'>".$row["amtlicheflaeche"]." m&#178;</td>";
-			echo "\n\t<td class='nwlink noprint'>";
-				echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$row["gml_id"]."&amp;eig=n' " ;
-					echo "title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck ";
-					echo "\n\t\t\t<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>";
-				echo "\n\t\t</a>";
-			echo "\n\t</td>";
-		echo "\n</tr>";
+		echo "\n<tr>"
+			."\n\t<td>".$row["flurnummer"]."-<span class='wichtig'>".$row["zaehler"];
+				$nen=$row["nenner"];
+				if ($nen != "") {echo "/".$nen;}
+			echo "</span></td>"
+			."\n\t<td class='fla'>".$row["schnittflae"]." m&#178;</td>"
+			."\n\t<td class='fla'>".$row["amtlicheflaeche"]." m&#178;</td>"
+			."\n\t<td class='nwlink noprint'>"
+				."\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$row["gml_id"]."&amp;eig=n' "
+					."title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck "
+					."\n\t\t\t<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"
+				."\n\t\t</a>"
+			."\n\t</td>"
+		."\n</tr>";
 	}
 echo "\n</table>";
 
-if ($fscnt == 40) {
-	echo "<p>... und weitere Flurst&uuml;cke (Limit 40 erreicht).</p>";
+if ($fscnt == 0) { // nicht gefunden
+	if ($filtgem == '' ) { // ungefiltert
+		echo "<p class='err'>Kein Flurst&uuml;ck gefunden.</p>";
+	} else { // Wahrscheinliche Ursache = Filter
+		echo "<p class='err'>Kein Flurst&uuml;ck im berechtigten Bereich.</p>";
+	//	if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."</p>\n";}
+	}
+} elseif ($fscnt == 50) {
+	echo "<p>... und weitere Flurst&uuml;cke (Limit 50 erreicht).</p>";
 }
 
@@ -179,11 +171,9 @@
 echo <<<END
 
-<form action=''>
-	<div class='buttonbereich noprint'>
-	<hr>
-		<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
-		<a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken" /></a>&nbsp;
-	</div>
-</form>
+<div class='buttonbereich noprint'>
+<hr>
+	<a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
+	<a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken" /></a>&nbsp;
+</div>
 END;
 
