source: trunk/info/info/alkisn/alkisbaurecht.php @ 362

Revision 362, 6.5 KB checked in by frank.jaeger, 8 years ago (diff)

Anpassung der ALKIS-Buchauskunft an die Datenbank-Struktur des norGIS-ALKIS-Importer.

Line 
1<?php
2/*      alkisbaurecht.php - Baurecht
3        ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo).
4
5        Version:
6        2016-02-24 Version fuer norGIS-ALKIS-Import
7*/
8session_start();
9$cntget = extract($_GET);
10require_once("alkis_conf_location.php");
11if ($auth == "mapbender") {require_once($mapbender);}
12include("alkisfkt.php"); // f. Footer
13$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n";
14if ($keys == "j") {$showkey=true;} else {$showkey=false;}
15
16?>
17<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
18<html>
19<head>
20        <meta name="author" content="b600352" >
21        <meta http-equiv="cache-control" content="no-cache">
22        <meta http-equiv="pragma" content="no-cache">
23        <meta http-equiv="expires" content="0">
24        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
25        <title>ALKIS Bau-, Raum- oder Bodenordnungsrecht</title>
26        <link rel="stylesheet" type="text/css" href="alkisauszug.css">
27        <link rel="shortcut icon" type="image/x-icon" href="ico/Gericht.ico">
28</head>
29<body>
30
31<?php
32$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass);
33if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n";
34
35// Spalte "a.d" ist immer leer
36$sql ="SELECT r.ogc_fid, r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez,
37a.v AS adfbez, d.bezeichnung AS stellbez, d.stellenart, wd.v, wd.d, round(st_area(r.wkb_geometry)::numeric,0) AS flae
38FROM ax_bauraumoderbodenordnungsrecht r
39LEFT JOIN alkis_wertearten a ON cast(r.artderfestlegung AS character varying)=a.k AND a.element='ax_bauraumoderbodenordnungsrecht' AND a.bezeichnung='artderfestlegung'
40LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle
41LEFT JOIN alkis_wertearten wd ON cast(d.stellenart AS character varying)=wd.k AND wd.element='ax_dienststelle' AND wd.bezeichnung='stellenart'
42WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;";
43
44$v = array($gmlid);
45$res = pg_prepare("", $sql);
46$res = pg_execute("", $v);
47if (!$res) {
48        echo "\n<p class='err'>Fehler bei Baurecht.</p>\n";
49        if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
50}
51
52if ($row = pg_fetch_array($res)) {
53        $artfest=$row["adfkey"];  // Art der Festlegung, Key
54        $verfnr=$row["rechtbez"]; // Verfahrens-Nummer
55        $enam=$row["name"];
56        $stellb=$row["stellbez"];
57        $stella=$row["stellenart"];
58
59        // Balken
60        echo "<p class='recht'>ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr."&nbsp;</p>\n";
61
62        echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>\n";
63
64        echo "\n<table>"
65                ."\n<tr>"
66                        ."\n\t<td class='li'>Art der Festlegung:</td>\n\t<td>";
67                        if ($showkey) {echo "<span class='key'>(".$artfest.")</span> ";}
68                        echo "<span class='wichtig'>".$row["adfbez"]."</span></td>"
69                ."\n</tr>";
70                if ($enam != "") {
71                        echo "\n<tr>"
72                                ."\n\t<td class='li'>Eigenname des Gebietes:</td>"
73                                ."\n\t<td>".$enam."</td>"
74                        . "\n</tr>";
75                }
76                if ($verfnr != "") {
77                        echo "\n<tr>"
78                                ."\n\t<td class='li'>Verfahrensnummer:</td>"
79                                ."\n\t<td>".$verfnr."</td>"
80                        ."\n</tr>";
81                }
82                if ($stellb != "") { // z.B. Umlegung *mit* und Baulast *ohne* Dienststelle, darum bezirk testen
83                        echo "\n<tr>"
84                                ."\n\t<td class='li'>Dienststelle:</td>\n\t<td>";
85                                        if ($showkey) {echo "<span class='key'>(".$row["stelle"].")</span> ";}
86                                        echo $stellb
87                                ."</td>"
88                        ."\n</tr>";
89                        if ($stella != "") {
90                                echo "\n<tr>"
91                                        ."\n\t<td class='li'>Art der Dienststelle:</td>"
92                                        ."\n\t<td>";
93                                                if ($showkey) {echo " <span class='key'>(".$stella.")</span>";}
94                                                echo "<span title='".$row["d"]."'>".$row["v"]."</span>";
95                                        echo "</td>"
96                                ."\n</tr>";
97                        }
98                }
99                echo "\n<tr>"
100                        ."\n\t<td class='li'>Fl&auml;che:</td>";
101                        $flae=number_format($row["flae"],0,",",".")." m&#178;";
102                        echo "\n\t<td>".$flae."</td>"
103                ."\n</tr>"
104        . "\n</table>";
105} else {
106        echo "\n<p class='err'>Fehler! Kein Treffer bei gml_id=".$gmlid."</p>";
107}
108
109echo "\n<h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''> betroffene Flurst&uuml;cke</h2>\n"
110."\n<p>Ermittelt durch geometrische Verschneidung. Nach Gr&ouml;&szlig;e absteigend.</p>";
111
112$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
113FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r
114WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL
115AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true
116AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05
117ORDER BY schnittflae DESC LIMIT 50;";
118// > 0.0 ist gemeint, Ungenauigkeit durch st_simplify
119// Limit: Flurbereinig. kann gross werden!
120// Trotz Limit lange Antwortzeit, wegen OrderBy -> intersection
121$v=array($gmlid);
122$res=pg_prepare("", $sql);
123$res=pg_execute("", $v);
124
125if (!$res) {
126        echo "\n<p class='err'>Keine Flurst&uuml;cke ermittelt.<br>\nSQL=<br></p>\n";
127        if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = ".$gmlid."</p>\n";}
128}
129
130echo "\n<table class='fs'>"
131        ."\n<tr>"
132                ."\n\t<td class='head' title='Flur- und Flurst&uuml;cksnummer'>Flurst&uuml;ck</td>"
133                ."\n\t<td class='head fla' title='geometrische Schnittfl&auml;che'>Fl&auml;che</td>"
134                ."\n\t<td class='head fla' title='amtliche Flurst&uuml;cksfl&auml;che, Buchfl&auml;che'>von</td>"
135                ."\n\t<td class='head nwlink' title='Link zum Flurst&uuml;ck'>weitere Auskunft</td>"
136        ."\n</tr>";
137
138        $fscnt=0;
139        while($row = pg_fetch_array($res)) {
140                $fscnt++;
141                echo "\n<tr>"
142                        ."\n\t<td>".$row["flurnummer"]."-<span class='wichtig'>".$row["zaehler"];
143                                $nen=$row["nenner"];
144                                if ($nen != "") {echo "/".$nen;}
145                        echo "</span></td>"
146                        ."\n\t<td class='fla'>".$row["schnittflae"]." m&#178;</td>"
147                        ."\n\t<td class='fla'>".$row["amtlicheflaeche"]." m&#178;</td>"
148                        ."\n\t<td class='nwlink noprint'>"
149                                ."\n\t\t<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$row["gml_id"]."&amp;eig=n' "
150                                        ."title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck "
151                                        ."\n\t\t\t<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"
152                                ."\n\t\t</a>"
153                        ."\n\t</td>"
154                ."\n</tr>";
155        }
156echo "\n</table>";
157
158if ($fscnt == 50) {
159        echo "<p>... und weitere Flurst&uuml;cke (Limit 50 erreicht).</p>";
160}
161
162pg_close($con);
163echo <<<END
164
165<form action=''>
166        <div class='buttonbereich noprint'>
167        <hr>
168                <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck" /></a>&nbsp;
169                <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken" /></a>&nbsp;
170        </div>
171</form>
172END;
173
174footer($gmlid, $_SERVER['PHP_SELF']."?", "");
175
176?>
177
178</body>
179</html>
Note: See TracBrowser for help on using the repository browser.