source: trunk/info/info/alkis/alkisstrasse.php @ 376

Revision 376, 9.5 KB checked in by frank.jaeger, 7 years ago (diff)

Verbesserungen an der ALKIS-Buchauskunft (Geschwindigkeit, Fehlerkorrekturen, Mandantenfähigkeit) und an der Mapbender2-Navigation.

Line 
1<?php
2/*      alkisstrasse.php
3
4        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
5        Alle FlurstÃŒcke an einer Strasse anzeigen, egal ob "mit" oder "ohne" Hausnummer
6        Parameter: "gml_id" aus der Tabelle "ax_lagebezeichnungkatalogeintrag"
7
8        Version:
9        2016-02-24 Version fuer norGIS-ALKIS-Import
10        2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen, SQL optimiert (FS-Liste jetzt schneller)
11*/
12session_start();
13$id="n";
14$cntget = extract($_GET);
15require_once("alkis_conf_location.php");
16if ($auth == "mapbender") {require_once($mapbender);}
17include("alkisfkt.php");
18
19$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";
20if ($keys == "j") {$showkey=true;} else {$showkey=false;}
21?>
22<!doctype html>
23<html lang="de">
24<head>
25        <meta charset="utf-8">
26        <title>ALKIS Stra&szlig;e</title>
27        <link rel="stylesheet" type="text/css" href="alkisauszug.css">
28        <link rel="shortcut icon" type="image/x-icon" href="ico/Strassen.ico">
29        <script type="text/javascript">
30                function ALKISexport() {
31                        window.open(<?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=strasse&gmlid=".$gmlid."'"; ?>);
32                }
33        </script>
34        <style type='text/css' media='print'>
35                .noprint {visibility: hidden;}
36        </style>
37</head>
38<body>
39<?php
40$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisstrasse.php'");
41if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
42
43$sql ="SELECT s.land, s.regierungsbezirk, s.kreis, s.gemeinde, s.lage, s.bezeichnung AS snam,
44b.bezeichnung AS bnam, r.bezeichnung AS rnam, k.bezeichnung AS knam, g.bezeichnung AS gnam, o.gml_id AS ogml
45FROM ax_lagebezeichnungkatalogeintrag s JOIN ax_bundesland b ON s.land=b.land
46JOIN ax_regierungsbezirk r ON s.land=r.land AND s.regierungsbezirk=r.regierungsbezirk
47JOIN ax_kreisregion k ON s.land=k.land AND s.regierungsbezirk=k.regierungsbezirk AND s.kreis=k.kreis
48JOIN ax_gemeinde g ON s.land=g.land AND s.regierungsbezirk=g.regierungsbezirk AND s.kreis=g.kreis AND s.gemeinde=g.gemeinde
49LEFT 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
50WHERE s.gml_id= $1 AND s.endet IS NULL AND o.endet IS NULL ;";
51
52$v=array($gmlid);
53$res=pg_prepare("", $sql);
54$res=pg_execute("", $v);
55if (!$res) {
56        echo "\n<p class='err'>Fehler bei Lagebezeichnungskatalogeintrag.</p>\n";
57        if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
58}
59if ($row = pg_fetch_array($res)) {
60        $lage=$row["lage"]; // Strassenschluessel
61        $snam=$row["snam"]; // Strassenname
62        $gem=$row["gemeinde"];
63        // Balken
64        $kennz=$gem."-".$lage." (".$snam.")"; // Schluessel als Sucheingabe in NAV brauchbar?
65        echo "<p class='strasse'>ALKIS Stra&szlig;e ".$kennz."&nbsp;</p>\n";
66} else {
67        echo "\n<p class='err'>Kein Treffer bei Lagebezeichnungskatalogeintrag.</p>\n";
68}
69
70echo "\n<h2><img src='ico/Strassen.png' width='16' height='16' alt=''> Stra&szlig;e</h2>\n";
71
72// Tabelle Kennzeichen
73echo "\n<table class='outer'>\n<tr>\n\t<td>"
74."\n\t<table class='kennzstra' title='Lage'>"
75        ."\n\t<tr>"
76                ."\n\t\t<td class='head'>Land</td>"
77                ."\n\t\t<td class='head'>Reg.-Bez.</td>"
78                ."\n\t\t<td class='head'>Kreis</td>"
79                ."\n\t\t<td class='head'>Gemeinde</td>"
80                ."\n\t\t<td class='head'>Stra&szlig;e</td>"
81        ."\n\t</tr>"
82        ."\n\t<tr>";
83                echo "\n\t\t<td title='Bundesland'>";
84                if ($showkey) {echo "<span class='key'>".$row["land"]."</span><br>";}
85                echo $row["bnam"]."&nbsp;</td>"
86                ."\n\t\t<td title='Regierungsbezirk'>";
87                if ($showkey) {echo "<span class='key'>".$row["regierungsbezirk"]."</span><br>";}
88                echo $row["rnam"]."&nbsp;</td>"
89                ."\n\t\t<td title='Kreis'>";
90                if ($showkey) {echo "<span class='key'>".$row["kreis"]."</span><br>";}
91                echo $row["knam"]."&nbsp;</td>"
92                ."\n\t\t<td title='Gemeinde'>";
93                if ($showkey) {echo "<span class='key'>".$gem."</span><br>";}
94                echo $row["gnam"]."&nbsp;</td>"
95                . "\n\t\t<td title='Stra&szlig;e'>";
96                if ($showkey) {echo "<span class='key'>".$lage."</span><br>";}
97                echo "<span class='wichtig'>".$snam."</span>"
98                . "&nbsp;</td>"
99        ."\n\t</tr>"
100."\n\t</table>";
101
102echo "\n\t</td>\n\t<td>";
103
104// Kopf Rechts:
105$ogml=$row["ogml"]; // ID von "Lage Ohne HsNr"
106if ($ogml != "") {
107        echo "\n\t\t<p class='nwlink noprint'>"
108                ."\n\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=o&amp;gmlid=".$ogml;
109                if ($showkey)   {echo "&amp;showkey=j";}
110                echo "' title='Lage Ohne Hausnummer'>Lage <img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''></a>"
111        ."\n\t\t</p>";
112}
113
114echo "\n\t</td>\n</tr>\n</table>";
115pg_free_result($res);
116// Ende Seitenkopf
117
118// F L U R S T U E C K E
119echo "\n\n<a id='fs'></a><h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurst&uuml;cke</h3>\n";
120echo "\n<p>Zusammenfassung von 'Lage mit Hausnummer' und 'Lage ohne Hausnummer' an dieser Straße</p>";
121
122// ax_Flurstueck >weistAuf> ax_LagebezeichnungMitHausnummer  > = Hauptgebaeude
123// ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer > = Strasse
124// Suchkriterium: gml_id aus Katalog
125$sql="SELECT f.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, l.gml_id AS lgml, l.hausnummer, 'm' AS ltyp
126 FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistAuf)
127 JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer
128 JOIN ax_lagebezeichnungkatalogeintrag s 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
129 WHERE s.gml_id = $1 AND f.endet IS NULL AND s.endet IS NULL AND l.endet IS NULL
130UNION SELECT f.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, l.gml_id AS lgml, '' AS hausnummer, 'o' AS ltyp
131 FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=ANY(f.zeigtauf)
132 JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer
133 JOIN ax_lagebezeichnungkatalogeintrag s 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
134 WHERE s.gml_id = $1 AND f.endet IS NULL AND s.endet IS NULL AND l.endet IS NULL
135ORDER BY gemarkungsnummer, flurnummer, zaehler, nenner;";
136
137$v=array($gmlid);
138$resf=pg_prepare("", $sql);
139$resf=pg_execute("", $v);
140if (!$resf) {
141        echo "<p class='err'>Fehler bei Flurst&uuml;ck.</p>\n";
142        if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}     
143}
144
145echo "\n<table class='fs'>"
146."\n<tr>"
147        ."\n\t<td class='heads' title='Name der Gemarkung (Ortsteil)'>Gemarkung<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
148        ."\n\t<td class='heads' title='Flur-Nummer'>Flur<img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'></td>"
149        ."\n\t<td class='heads' title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Flurst.</td>"
150        ."\n\t<td class='head fla' title='amtliche Fl&auml;che in Quadratmeter'>Fl&auml;che</td>"
151        ."\n\t<td class='head hsnr' title='Hausnummer aus der Lagebezeichnung des Flurst&uuml;cks'>HsNr.</td>"
152        ."\n\t<td class='head nwlink noprint' title='Link: weitere Auskunft'>weit. Auskunft</td>"
153."\n</tr>";
154$j=0;
155$cnths=0; // Count Haus
156$gwgmkg=""; // Gruppenwechsel
157$gwflur="";
158
159while($rowf = pg_fetch_array($resf)) {
160        $gmkg=$rowf["bezeichnung"];
161        $flur=str_pad($rowf["flurnummer"], 3, "0", STR_PAD_LEFT);
162        $fskenn=$rowf["zaehler"]; // Bruchnummer
163        if ($rowf["nenner"] != "") {$fskenn.="/".$rowf["nenner"];}
164        $flae=number_format($rowf["amtlicheflaeche"],0,",",".") . " m&#178;";
165        $lgml=$rowf["lgml"]; // ID von "Lage Mit" oder leer
166        $ltyp=$rowf["ltyp"]; // mit/ohne HsNr
167
168        echo "\n<tr>"
169                ."\n\t<td>";
170                if ($showkey) {echo "<span class='key'>".$rowf["gemarkungsnummer"]."</span> ";}
171                if ($gwgmkg != $gmkg) {
172                        echo "<b>".$gmkg."</b></td>";
173                        $gwgmkg=$gmkg;
174                        $gwflur="";
175                } else {
176                        echo $gmkg."</td>";
177                }
178
179                if ($gwflur != $flur) {
180                        echo "\n\t<td><b>".$flur."</b></td>";
181                        $gwflur=$flur;
182                } else {
183                        echo "\n\t<td>".$flur."</td>";
184                }
185
186                echo "\n\t<td><span class='wichtig'>".$fskenn."</span></td>"
187                ."\n\t<td class='fla'>".$flae."</td>"
188                ."\n\t<td class='hsnr'>".$rowf["hausnummer"]."</td>"
189                ."\n\t<td>\n\t\t<p class='nwlink noprint'>";
190
191                        // Link "Lage"
192// ++++ FEHLER kann auch Typ "o" sein
193                        if ($lgml != '') {
194                                echo "\n\t\t<a href='alkislage.php?gkz=".$gkz."&amp;ltyp=".$ltyp."&amp;gmlid=".$lgml;
195                                if ($showkey) {echo "&amp;showkey=j";}
196                                echo "' title='Lage Mit Hausnummer'>Lage <img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>&nbsp;";
197                                $cnths++;
198                        }
199
200                        // Link FlurstÃŒcksnachweis
201                        echo "\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$rowf["gml_id"]."&amp;eig=n";
202                        if ($showkey) {echo "&amp;showkey=j";}
203                        echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>";
204                echo "\n\t\t</p>\n\t</td>"
205        ."\n</tr>";
206        $j++;
207}
208echo "\n</table>";
209if ($j > 6) {
210        echo "<p class='cnt'>".$j." Flurst&uuml;cke";
211        if ($cnths > 4) {echo ", ".$cnths." H&auml;user";}
212        echo "</p>";
213}
214pg_free_result($resf);
215?>
216
217<div class='buttonbereich noprint'>
218<hr>
219        <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp;
220        <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp;
221        <a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download.png" width="16" height="16" alt="Export"></a>&nbsp;
222</div>
223
224<?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>
225
226</body>
227</html>
Note: See TracBrowser for help on using the repository browser.