Changeset 140 for trunk/data/mapbender/http/nav/alkisnav_eig.php
- Timestamp:
- 12/09/11 14:29:57 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/mapbender/http/nav/alkisnav_eig.php
r135 r140 1 1 <?php 2 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 24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 7 17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 8 02.12.2011 Suche nach Vorname Nachname oder Nachname 3 24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 4 17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 5 02.12.2011 Suche nach Vorname Nachname oder Nachname 6 09.12.2011 Filter "Gemeinde" fÃŒr Ebene FlurstÃŒcke. 7 Filter "Gemeinde" fÃŒr Personen ÃŒber neue Hilfstabelle "gemeinde_person". 8 Format css Person (Rahmen). 9 ToDo: Auf der Stufe 2 "getGBbyPerson" noch Filtern nach Gemeinde 9 10 */ 10 11 import_request_variables("PG"); … … 12 13 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 13 14 $con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname.$dbvers.$gkz); 14 // ToDo: Buchung zwischen Blatt und Flst?15 15 ?> 16 16 … … 39 39 // Eigentuemer nach Name(-nsanfang) 40 40 // =============================== 41 global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb ;41 global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $gfilter, $persfilter, $auskpath; 42 42 $linelimit=120; 43 43 $arr = explode(",", $name); … … 49 49 $match = trim($name0)."%"; 50 50 } 51 52 51 if(preg_match("/\*/",$name1)){ 53 52 $match1 = trim(preg_replace("/\*/i","%", strtoupper($name1))); … … 56 55 } 57 56 58 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person as p "; 57 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; 58 59 if ($persfilter and ($gfilter > 0)) { 60 $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; 61 switch ($gfilter) { 62 case 1: // Einzelwert 63 $sql.="g.gemeinde=".$gemeinde." AND "; break; 64 case 2: // Liste 65 $sql.="g.gemeinde in (".$gemeinde.") AND "; break; 66 } 67 } else { 68 $sql.="WHERE "; 69 } 59 70 if($match1 != '%'){ 60 $sql.=" WHEREnachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 ";71 $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 "; 61 72 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; 62 73 $v=array($match, $match1, $linelimit); 63 74 }else{ 64 $sql.=" WHEREnachnameoderfirma ILIKE $1 ";75 $sql.="nachnameoderfirma ILIKE $1 "; 65 76 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; 66 77 $v=array($match, $linelimit); 67 78 } 68 // +++ Adresse der Person zur eindeutigen Bestimmung?69 79 $res=pg_prepare("", $sql); 70 80 $res=pg_execute("", $v); … … 74 84 } 75 85 $cnt = 0; 76 // einfache Liste ohne div und Icon77 86 while($row = pg_fetch_array($res)) { 78 87 $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 79 88 $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 80 89 $gml=$row["gml_id"]; 81 // +++ Icon mit Link auf Person-Auskunft, ÃŒber gml_id 82 // Zur Zeit siehe unten: erst nach Auswahl einer einzelnen Person 83 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>"; 90 // Link zur Auskunft Person +++ Icon differenzieren? Firma/Person 91 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gml."\")'>"; 92 echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 93 echo "\n\t</a> "; 94 echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$gml."&name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>"; 84 95 $cnt++; 85 96 } … … 117 128 if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} 118 129 // Daten der Person 119 echo "\n <div class='nam'>";120 // Link zur Auskunft Person130 echo "\n\t<table>\n\t<tr>\n\t\t<td valign='top'>"; 131 // Sp. 1: Icon, Link zur Auskunft Person 121 132 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$person."\")'>"; 122 133 echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 123 echo "\n\t</a> 124 echo "\n\t<p class='nam'>"; 134 echo "\n\t</a></td>\n\t\t<td>"; 135 echo "\n\t<p class='nam'>"; // Sp. 2: Rahmen 125 136 if ($row = pg_fetch_array($res)) { 126 137 $namzeil=$row["nachnameoderfirma"].", ".$row["vorname"]; … … 135 146 if (trim($namzeil) != "") {echo "\n\t<br>".htmlentities($namzeil, ENT_QUOTES, "UTF-8");} 136 147 } 137 echo "\n\t</p>"; 138 echo "\n</div>"; 148 echo "\n\t</p></td></tr>\n\t</table>"; 139 149 140 150 // Suche nach GrundbÃŒchern der Person … … 181 191 // FlurstÃŒcke zum gewÀhlten Grundbuch 182 192 // =================================== 183 global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg ;193 global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg, $gfilter, $persfilter; 184 194 $linelimit=120; 185 195 … … 197 207 } 198 208 209 // SQL-Bausteine vorbereiten 210 $sql1 ="SELECT s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 211 if($epsg == "25832") { // Transform nicht notwendig 212 $sql1.="x(st_centroid(f.wkb_geometry)) AS x, "; 213 $sql1.="y(st_centroid(f.wkb_geometry)) AS y, "; 214 } else { 215 $sql1.="x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 216 $sql1.="y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 217 } 218 $sql1.="g.gemarkungsnummer, g.bezeichnung "; 219 $sql1.="FROM alkis_beziehungen vbg "; 220 $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id "; 221 222 // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 223 $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 224 $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 225 226 $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 227 $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 228 229 $sql2.="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; 230 $sql2.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 231 232 if ($persfilter and ($gfilter > 0)) { 233 $sql2.="JOIN gemeinde_gemarkung v ON g.land=v.land AND g.gemarkungsnummer=v.gemarkung "; 234 } 235 236 $sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 237 238 if ($persfilter and ($gfilter > 0)) { 239 switch ($gfilter) { 240 case 1: // Einzelwert 241 $sql2.="AND v.gemeinde=".$gemeinde." "; break; 242 case 2: // Liste 243 $sql2.="AND v.gemeinde in (".$gemeinde.") "; break; 244 } 245 } 246 $sql2.="ORDER BY s1.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 247 199 248 // Blatt <vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< Flurstck. 200 $sql ="SELECT s.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 201 if($epsg == "25832") { // Transform nicht notwendig 202 $sql.="x(st_centroid(f.wkb_geometry)) AS x, "; 203 $sql.="y(st_centroid(f.wkb_geometry)) AS y, "; 204 } else { 205 $sql.="x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 206 $sql.="y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 207 } 208 $sql.="g.gemarkungsnummer, g.bezeichnung "; 209 $sql.="FROM alkis_beziehungen vbg "; 210 $sql.="JOIN ax_buchungsstelle s ON vbg.beziehung_von = s.gml_id "; 211 $sql.="JOIN alkis_beziehungen vfb ON s.gml_id = vfb.beziehung_zu "; 212 $sql.="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; 213 $sql.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 214 $sql.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 215 $sql.="ORDER BY s.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 216 217 // +++ Sonderfall Fehlt noch: Blatt -> Buchung -> (Recht an) Buchung -> FlurstÃŒck 218 // +++ Ebene Buchung dazwischen wie im Teil 'Grundbuch' ? 249 $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 250 219 251 $v=array($gb, $linelimit); 220 252 $res=pg_prepare("", $sql); … … 225 257 return; 226 258 } 227 $zfs =0;259 $zfs1=0; 228 260 while($row = pg_fetch_array($res)) { 229 261 $fs_gml=$row["gml_id"]; 230 262 $bvnr=$row["lfd"]; 231 if ($bvnr > 0) { 232 $bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT); 233 } else { 234 $bvnr=""; 235 } 263 if ($bvnr > 0) {$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);} else {$bvnr="";} 236 264 $gmkg=$row["bezeichnung"]; 237 265 $flur=$row["flurnummer"]; … … 251 279 echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; 252 280 echo "\n</div>"; 253 $zfs++; 254 } 255 if($zfs == 0) { 256 echo "\n<p class='err'>Kein Flurstück.</p>"; 257 echo "\n<p class='hilfe'>Hinweis: Sonderfälle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>"; 281 $zfs1++; 282 } 283 284 // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen 285 // buchungsStelle2 < an < buchungsStelle1 286 $sql=$sql1.$sqlz.$sqla2.$sql2; // Rechte an 287 288 $v=array($gb, $linelimit); 289 $res=pg_prepare("", $sql); 290 $res=pg_execute("", $v); 291 if (!$res) { 292 echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 293 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 294 return; 295 } 296 $zfs2=0; 297 while($row = pg_fetch_array($res)) { 298 $fs_gml=$row["gml_id"]; 299 $bvnr=$row["lfd"]; 300 if ($bvnr > 0) {$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);} else {$bvnr="";} 301 $gmkg=$row["bezeichnung"]; 302 $flur=$row["flurnummer"]; 303 $fskenn=$row["zaehler"]; 304 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 305 $x=$row["x"]; 306 $y=$row["y"]; 307 echo "\n<div class='fs'>"; 308 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 309 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 310 echo "\n\t</a> "; 311 echo "\n\tRecht an <a title='Flurstück positionieren 1:".$scalefs."' href='"; 312 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 313 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 314 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 315 echo "onmouseout='parent.parent.hideHighlight()'>"; 316 echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; 317 echo "\n</div>"; 318 $zfs2++; 319 } 320 321 if($zfs1 + $zfs2 == 0) { 322 echo "\n<p class='err'>Kein Flurstück im berechtigten Bereich.</p>"; 323 // echo "\n<p class='hilfe'>Hinweis: Sonderfälle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>"; 258 324 } elseif($zfs >= $linelimit) { 259 325 echo "\n<p>... und weitere</p>"; … … 277 343 } 278 344 if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";} 345 if ($gemeinde == "") { 346 $gfilter = 0; // ungefiltert 347 } elseif(strpos($gemeinde, ",") === false) { 348 $gfilter = 1; // Einzelwert 349 } else { 350 $gfilter = 2; // Liste 351 } 279 352 280 353 // Welche Parameter?
Note: See TracChangeset
for help on using the changeset viewer.