1 | <?php
|
---|
2 | /* Version vom |
---|
3 | 13.01.2011 |
---|
4 | 11.04.2011 epsg in Link, transform nur wenn notwendig |
---|
5 | 25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden |
---|
6 | */
|
---|
7 | import_request_variables("PG");
|
---|
8 | include("../../conf/alkisnav_conf.php");
|
---|
9 | $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password;
|
---|
10 | $con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname.$dbvers.$gkz);
|
---|
11 | // ToDo: Buchung zwischen Blatt und Flst? |
---|
12 | ?> |
---|
13 | |
---|
14 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
---|
15 | <html>
|
---|
16 | <head>
|
---|
17 | <meta http-equiv="cache-control" content="no-cache">
|
---|
18 | <meta http-equiv="pragma" content="no-cache">
|
---|
19 | <meta http-equiv="expires" content="0">
|
---|
20 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
---|
21 | <title>ALKIS-Suche Eigentümer</title>
|
---|
22 | <link rel="stylesheet" type="text/css" href="alkisnav.css">
|
---|
23 | </head>
|
---|
24 | <body> |
---|
25 | |
---|
26 | <?php |
---|
27 |
|
---|
28 | function getEigByName() { |
---|
29 | // 1 =============================
|
---|
30 | // Eigentuemer nach Name(-nsanfang) |
---|
31 | // =============================== |
---|
32 | global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb; |
---|
33 | $linelimit=120; |
---|
34 | if(preg_match("/\*/",$name)){
|
---|
35 | $match = trim(preg_replace("/\*/i","%", strtoupper($name)));
|
---|
36 | } else {
|
---|
37 | $match = trim($name)."%";
|
---|
38 | } |
---|
39 | $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person as p "; |
---|
40 | $sql.="WHERE nachnameoderfirma ILIKE $1 ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; |
---|
41 | // +++ Adresse der Person zur eindeutigen Bestimmung? |
---|
42 | $v=array($match, $linelimit); |
---|
43 | $res=pg_prepare("", $sql); |
---|
44 | $res=pg_execute("", $v); |
---|
45 | if (!$res) { |
---|
46 | echo "\n<p class='err'>Fehler bei Eigentümer</p>"; |
---|
47 | return; |
---|
48 | } |
---|
49 | $cnt = 0;
|
---|
50 | // einfache Liste ohne div und Icon |
---|
51 | while($row = pg_fetch_array($res)) { |
---|
52 | $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8");
|
---|
53 | $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); |
---|
54 | $gml=$row["gml_id"];
// +++ Icon mit Link auf Person-Auskunft, ÃŒber gml_id |
---|
55 | // Zur Zeit siehe unten: erst nach Auswahl einer einzelnen Person |
---|
56 | echo "\n<a class='nam' title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$gml."&name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>";
$cnt++;
|
---|
57 | }
|
---|
58 | if($cnt == 0){ |
---|
59 | echo "\n<p class='err'>Keine Person.</p>"; |
---|
60 | } elseif($cnt >= $linelimit) { |
---|
61 | echo "\n<p title='Bitte den Namen eindeutiger qualifizieren'>... und weitere</p>"; |
---|
62 | } elseif($cnt == 1){ // Eindeutig! |
---|
63 | $person = $gml; |
---|
64 | } |
---|
65 | return;
|
---|
66 | } |
---|
67 | |
---|
68 | function getGBbyPerson() { |
---|
69 | // 2 =================================
|
---|
70 | // GrundbÌcher zur gewÀhlten Person |
---|
71 | // =================================== |
---|
72 | global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $auskpath; |
---|
73 | $linelimit=120; |
---|
74 | if(isset($name)) { // Familiensuche |
---|
75 | echo "\n<div class='back' title='Andere Personen mit diesem Nachnamen'>"; |
---|
76 | echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer_2.ico' width='16' height='16' alt='FAM'> "; |
---|
77 | echo "\n<a class='back' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&name=".$name."'>\"".$name."\"</a>"; |
---|
78 | echo "\n</div>\n<br>"; |
---|
79 | } |
---|
80 | $sql="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; |
---|
81 | $sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer "; |
---|
82 | $sql.="FROM ax_person p "; |
---|
83 | $sql.="JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; |
---|
84 | $sql.="JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu "; |
---|
85 | $sql.="WHERE p.gml_id= $1 AND b.beziehungsart='hat';"; |
---|
86 | $v=array($person); |
---|
87 | $res=pg_prepare("", $sql); |
---|
88 | $res=pg_execute("", $v); |
---|
89 | if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} |
---|
90 | // Daten der Person |
---|
91 | echo "\n<div class='nam'>"; |
---|
92 | // Link zur Auskunft Person |
---|
93 | echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$person."'>"; |
---|
94 | echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; |
---|
95 | echo "\n\t</a> "; |
---|
96 | echo "\n\t<p class='nam'>"; |
---|
97 | if ($row = pg_fetch_array($res)) { |
---|
98 | $namzeil=$row["nachnameoderfirma"].", ".$row["vorname"]; |
---|
99 | $gebdat=$row["geburtsdatum"]; |
---|
100 | if ($gebdat != "") {$namzeil.= ", geb. ".$gebdat;} |
---|
101 | $best=$row["namensbestandteil"]; |
---|
102 | if ($best != "") {$namzeil.= ", ".$best;} |
---|
103 | echo htmlentities($namzeil, ENT_QUOTES, "UTF-8"); |
---|
104 | $namzeil=$row["plz"]." ".$row["ort_post"]; |
---|
105 | if (trim($namzeil) != "") {echo "\n\t<br>".htmlentities($namzeil, ENT_QUOTES, "UTF-8");} |
---|
106 | $namzeil=$row["strasse"]." ".$row["hausnummer"]; |
---|
107 | if (trim($namzeil) != "") {echo "\n\t<br>".htmlentities($namzeil, ENT_QUOTES, "UTF-8");} |
---|
108 | } |
---|
109 | echo "\n\t</p>"; |
---|
110 | echo "\n</div>"; |
---|
111 | |
---|
112 | // Suche nach GrundbÃŒchern der Person |
---|
113 | $sql ="SELECT g.gml_id AS gml_g, g.buchungsblattnummermitbuchstabenerweiterung as nr, b.bezeichnung AS beznam "; |
---|
114 | $sql.="FROM alkis_beziehungen bpn "; |
---|
115 | $sql.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id "; |
---|
116 | $sql.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von "; |
---|
117 | $sql.="JOIN ax_buchungsblatt g ON bng.beziehung_zu=g.gml_id "; |
---|
118 | $sql.="JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk "; |
---|
119 | $sql.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' "; |
---|
120 | $sql.="ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;";
$v=array($person, $linelimit); |
---|
121 | $res=pg_prepare("", $sql); |
---|
122 | $res=pg_execute("", $v); |
---|
123 | if (!$res) { |
---|
124 | echo "\n<p class='err'>Fehler bei Grundbuch</p>"; |
---|
125 | return; |
---|
126 | } |
---|
127 | $cnt = 0; |
---|
128 | while($row = pg_fetch_array($res)) { |
---|
129 | $gml=$row["gml_g"]; |
---|
130 | $beznam=$row["beznam"]; |
---|
131 | $nr=$row["nr"];
echo "\n<div class='gb'>"; |
---|
132 | echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisbestnw.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gml."'>"; |
---|
133 | echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; |
---|
134 | echo "\n\t</a> "; |
---|
135 | echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gb=".$gml."&person=".$person."'> Blatt ".$nr." </a>";
|
---|
136 | echo "\n</div>"; |
---|
137 | $cnt++;
|
---|
138 | }
|
---|
139 | if($cnt == 0){ |
---|
140 | echo "\n<p class='err'>Kein Grundbuch.</p>"; |
---|
141 | } elseif($cnt >= $linelimit) { |
---|
142 | echo "\n<p>... und weitere</p>"; |
---|
143 | } elseif($cnt == 1){ // Eindeutig! |
---|
144 | $gb=$gml; // dann Stufe 3 gleich nachschieben |
---|
145 | } |
---|
146 | return; |
---|
147 | } |
---|
148 | |
---|
149 | function getFSbyGB($backlink) { |
---|
150 | // 3 =================================
|
---|
151 | // FlurstÌcke zum gewÀhlten Grundbuch |
---|
152 | // =================================== |
---|
153 | global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg; |
---|
154 | $linelimit=120; |
---|
155 | |
---|
156 | if($backlink) { |
---|
157 | echo "\n\t<div class='back' title='zurück zur Person'>"; |
---|
158 | echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'> "; |
---|
159 | echo "\n\t<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person."'>"; |
---|
160 | echo "zurück</a><br>"; |
---|
161 | echo "</div>"; |
---|
162 | echo "<div class='gb'>"; |
---|
163 | echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$gb."'>"; |
---|
164 | echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; |
---|
165 | echo "\n\t</a> Grundbuch"; |
---|
166 | echo "</div>"; |
---|
167 | } |
---|
168 | |
---|
169 | // Blatt <vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< Flurstck. |
---|
170 | $sql ="SELECT s.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; |
---|
171 | if($epsg == "25832") { // Transform nicht notwendig |
---|
172 | $sql.="x(st_centroid(f.wkb_geometry)) AS x, "; |
---|
173 | $sql.="y(st_centroid(f.wkb_geometry)) AS y, "; |
---|
174 | } else { |
---|
175 | $sql.="x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; |
---|
176 | $sql.="y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; |
---|
177 | } |
---|
178 | $sql.="g.gemarkungsnummer, g.bezeichnung "; |
---|
179 | $sql.="FROM alkis_beziehungen vbg "; |
---|
180 | $sql.="JOIN ax_buchungsstelle s ON vbg.beziehung_von = s.gml_id "; |
---|
181 | $sql.="JOIN alkis_beziehungen vfb ON s.gml_id = vfb.beziehung_zu "; |
---|
182 | $sql.="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; |
---|
183 | $sql.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; |
---|
184 | $sql.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; |
---|
185 | $sql.="ORDER BY s.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; |
---|
186 | |
---|
187 | // +++ Sonderfall Fehlt noch: Blatt -> Buchung -> (Recht an) Buchung -> FlurstÃŒck |
---|
188 | // +++ Ebene Buchung dazwischen wie im Teil 'Grundbuch' ? |
---|
189 | $v=array($gb, $linelimit); |
---|
190 | $res=pg_prepare("", $sql); |
---|
191 | $res=pg_execute("", $v); |
---|
192 | if (!$res) { |
---|
193 | echo "\n<p class='err'>Fehler bei Buchung und Flurstück.</p>"; |
---|
194 | if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} |
---|
195 | return; |
---|
196 | } |
---|
197 | $zfs=0; |
---|
198 | while($row = pg_fetch_array($res)) { |
---|
199 | $fs_gml=$row["gml_id"]; |
---|
200 | $bvnr=$row["lfd"]; |
---|
201 | if ($bvnr > 0) { |
---|
202 | $bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT); |
---|
203 | } else { |
---|
204 | $bvnr=""; |
---|
205 | } |
---|
206 | $gmkg=$row["bezeichnung"]; |
---|
207 | $flur=$row["flurnummer"]; |
---|
208 | $fskenn=$row["zaehler"]; |
---|
209 | if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer |
---|
210 | $x=$row["x"]; |
---|
211 | $y=$row["y"]; |
---|
212 | echo "\n<div class='fs'>"; |
---|
213 | echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."'>"; |
---|
214 | echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; |
---|
215 | echo "\n\t</a> "; |
---|
216 | echo "\n\tFlst. <a title='Flurstück positionieren 1:".$scalefs."' href='"; |
---|
217 | echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); ";
|
---|
218 | echo "parent.parent.hideHighlight();' "; |
---|
219 | echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' ";
|
---|
220 | echo "onmouseout='parent.parent.hideHighlight()'>"; |
---|
221 | echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; |
---|
222 | echo "\n</div>"; |
---|
223 | $zfs++; |
---|
224 | } |
---|
225 | if($zfs == 0) { |
---|
226 | echo "\n<p class='err'>Kein Flurstück.</p>"; |
---|
227 | echo "\n<p class='hilfe'>Hinweis: Sonderfälle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>"; |
---|
228 | } elseif($zfs >= $linelimit) { |
---|
229 | echo "\n<p>... und weitere</p>"; |
---|
230 | } |
---|
231 | return; |
---|
232 | } |
---|
233 | |
---|
234 | // =========== |
---|
235 | // Start hier! |
---|
236 | // =========== |
---|
237 | // Parameter: |
---|
238 | // 1. name = Suche nach Namensanfang oder -bestandteil. |
---|
239 | // 2. person = gml_id der Person -> Suche nach GrundbÃŒchern |
---|
240 | // 3. gb = gml_id des Grundbuches -> Suche nach FlurstÃŒcken |
---|
241 | if(isset($epsg)) { |
---|
242 | if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";} // aus MB |
---|
243 | $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); |
---|
244 | } else { |
---|
245 | if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";} |
---|
246 | $epsg=$gui_epsg; // aus Conf |
---|
247 | } |
---|
248 | if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";} |
---|
249 | |
---|
250 | // Welche Parameter? |
---|
251 | // 3. Stufe: FlurstÃŒcke zum Grundbuch |
---|
252 | if(isset($gb)) { // gml_id |
---|
253 | // Das Programm hat sich selbst verlinkt aus einer Liste der GB zu einem EigentÃŒmer. |
---|
254 | // Wenn Parameter mitgegeben wurden, können diese fÌr einen "Link zurÌck" verwendet werden. |
---|
255 | getFSbyGB(true); |
---|
256 | } elseif(isset($person)) { // gml_id - 2. Stufe: GrundbÃŒcher zur Person |
---|
257 | // Das Programm hat sich selbst verlinkt aus einer Liste der Personen zu einer Suchmaske. |
---|
258 | getGBbyPerson(); |
---|
259 | if(isset($gb) ) { getFSbyGB(false);} // Es wurde nur EIN Grundbuch zu der Person gefunden. |
---|
260 | } elseif(isset($name)) { // Suchbegriff aus Form - 1. Stufe: Suche nach Name |
---|
261 | getEigByName(); |
---|
262 | if(isset($person)) { getGBbyPerson();} |
---|
263 | } elseif ($debug >= 2) { |
---|
264 | echo "\n<p>Parameter?</p>"; // Programmfehler |
---|
265 | } |
---|
266 | ?> |
---|
267 |
|
---|
268 | </body>
|
---|
269 | </html> |
---|