Changeset 374 for trunk/mapbender/http/nav/alkisnav_eig.php
- Timestamp:
- 11/25/16 09:23:52 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_eig.php
r356 r374 1 1 <?php 2 /* Version vom 3 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 4 2013-04-26 Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung". 5 Stufe 2: GB *und* FS mit einem Klick anzeigen. 6 BlÀtterfunktion (Folgeseiten) fÃŒr lange Listen. 7 Function extern gemeinsam genutzt in _eig und _grd. 8 Dazu Var-Namen harmonisieren: $gb wird $blattgml. 9 ZurÃŒck-Link, Titel der Transaktion anzeigen. 10 2013-04-29 Darstellung mit IE 11 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 12 2013-05-14 Hervorhebung aktuelles Objekt, Parameter "gbkennz" auswerten, 13 Title auch auf Icon, IE zeigt sonst alt= als Title dar. 14 2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 15 2014-09-15 Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL" 16 2014-09-30 RÃŒckbau substring(gml_id) 17 2015-12-10 Umstellen .ico auf .png, Vermeidung nicht initialisierter Variable 2 /* Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil EigentÃŒmer-Suche 3 Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 4 5 Version vom 6 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 7 2016-03-02 $gemeinde auf feste LÀnge korrigieren 8 2016-07-18 Personendaten: Zeilen getauscht. Wie Brief-Anschrift. 18 9 */ 19 10 … … 24 15 25 16 $cntget = extract($_GET); 17 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); // temporÀr .. 26 18 include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 27 19 include("alkisnav_fkt.php"); // Funktionen 28 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$ dbvers.$gkz." user=".$user." password=".$password;29 $con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname.$ dbvers.$gkz);20 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$gkz." user=".$user." password=".$password; 21 $con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname.$gkz); 30 22 31 23 echo <<<END … … 59 51 END; 60 52 61 // Einen Link generieren, um nach anderen Personen mit gleichem Familiennamen zu suchen62 53 function familiensuche() { 54 // Einen Link generieren, um nach anderen Personen mit gleichem Familiennamen (Nachnamen) zu suchen. 55 // Bei versehendlich falschem Vornamen muss nicht von vorn begonnen werden. 63 56 global $gkz, $gemeinde, $epsg, $name; 64 57 if(isset($name)) { // Familiensuche … … 71 64 } 72 65 73 function personendaten() { // Adresse und Geburtsdatum der aktuellen Person ausgeben 66 function personendaten() { 67 // Adresse und Geburtsdatum der aktuellen Person ausgeben 74 68 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug 75 69 … … 78 72 FROM ax_person p LEFT JOIN ax_anschrift a ON a.gml_id=ANY(p.hat) 79 73 WHERE p.gml_id= $1 AND p.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 80 // Es wird nur eineZeile ausgewertet74 // Es wird nur EINE Zeile ausgewertet 81 75 82 76 $v=array($person); … … 85 79 if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} 86 80 $row = pg_fetch_array($res); 81 87 82 $zeil1=$row["nachnameoderfirma"].", ".$row["vorname"]; 88 83 $gebdat=$row["geburtsdatum"]; … … 92 87 $zeil1=htmlentities($zeil1, ENT_QUOTES, "UTF-8"); 93 88 94 $zeil2=trim($row["plz"]." ".$row["ort_post"]); 89 // 2016-07-18: Zeile 2 mit 3 getauscht. Wie Brief-Anschrift 90 $zeil2= trim($row["strasse"]." ".$row["hausnummer"]); 95 91 if ($zeil2 != "") { 96 $zeil2= "\n\t<br>".htmlentities($zeil2, ENT_QUOTES, "UTF-8");97 } 98 99 $zeil3= trim($row["strasse"]." ".$row["hausnummer"]);92 $zeil2= "\n\t<br>".htmlentities($zeil2, ENT_QUOTES, "UTF-8"); 93 } 94 95 $zeil3=trim($row["plz"]." ".$row["ort_post"]); 100 96 if ($zeil3 != "") { 101 $zeil3= 97 $zeil3="\n\t<br>".htmlentities($zeil3, ENT_QUOTES, "UTF-8"); 102 98 } 103 99 104 100 // Tabelle: Sp.1=Icon, Link zur Auskunft Person, Sp.2=Rahmen 105 echo "101 echo " 106 102 <div class='pe aktuell'> 107 103 <table> … … 118 114 </table> 119 115 </div>"; 120 return;116 return; 121 117 } 122 118 123 119 function getEigByName() { 124 120 // 1 // Eigentuemer nach Name(-nsanfang) 125 global $gkz, $ gemeinde, $epsg, $name, $person, $gfilter;121 global $gkz, $debug, $gemeinde, $epsg, $name, $person, $gfilter; 126 122 $linelimit=150; 127 123 $arr = explode(",", $name); … … 141 137 } else { 142 138 $match1 = trim($name1)."%"; 143 } 139 } 140 144 141 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; 145 if ($gfilter > 0) { 142 143 // Der Filter auf "Gemeinde" bleibt hier zunÀchst unberÃŒcksichtigt, bis im NorGIS-ALKIS-Importer ein Ersatz 144 // geschaffen wurde fÃŒr die Tabelle "gemeinde_person" aus dem Post-Processing der "klassischen" Datenstruktur. 145 // Es können somit Personen gefunden werden, die kein GrundstÃŒck im berechtigten Bereich haben. 146 // Wenn eine Gemeinde-DB aus eigenem NBA geladen wurde, ist das unkritisch. 147 // Wenn eine Gemeinde aus einer kreisweiten DB beauskunftet wird, ist das so noch nicht einsetzbar. 148 149 /* if ($gfilter > 0) { 146 150 $sql.="JOIN gemeinde_person g ON p.gml_id=g.person WHERE p.endet IS NULL AND "; 147 151 switch ($gfilter) { … … 151 155 $sql.="g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') AND "; break; 152 156 } 153 } else { 157 } else { */ 154 158 $sql.="WHERE p.endet IS NULL AND "; 155 } 159 // } 160 156 161 if($match1 != '%'){ 157 162 $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 "; … … 167 172 if (!$res) { 168 173 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; 174 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1='".$match."'</p>";} 169 175 return; 170 176 } … … 192 198 // 2 // GrundbÃŒcher zur gewÀhlten Person 193 199 // Es wird in dieser Function nicht geprÃŒft, ob die gefundenen GrundbÃŒcher auch FlurstÃŒcke 194 // haben, die im gefilterten Bereich (Gemeinde) liegen. Es können daher Sackgassenentstehen,200 // haben, die im gefilterten Bereich (Gemeinde) liegen. Es können daher "Sackgassen" entstehen, 195 201 // also GrundbÃŒcher, die in der nÀchsten Stufe bei Filterung nicht zu Treffern fÃŒhren. 196 // Das Joinen bis zum FS unter BerÃŒcksichtigung von speziellen Buchungen ist zu aufwÀndig.202 // Das Joinen bis zum FS unter BerÃŒcksichtigung von speziellen Buchungen ist aber zu aufwÀndig. 197 203 // Dann kann entweder das FS gleich mit ausgegeben werden -> getGBuFSbyPerson. 198 204 // Alternativ wÃŒrde eine Hilfstabelle benötigt, in der im PostProcessing 199 205 // das GB-zu-Gemeinde-VerhÀltnis vorbereitet wird. 200 206 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $debug, $bltbez, $bltblatt, $bltseite, $kennztyp, $zgbbez; 201 # $zblatt, $zblattn, $zblattz, $zbvnr;202 207 $linelimit=150; 203 208 … … 252 257 $gml=$row["gml_g"]; 253 258 $blatt=$row["blatt"]; 254 zeile_blatt($zgbbez, $beznam, $gml, $blatt, false, $person, false);259 zeile_blatt($zgbbez, "", $gml, $blatt, false, $person, false); 255 260 $cnt++; 256 261 } … … 313 318 $blatt=$row["blatt"]; 314 319 zeile_gbbez ($beznam, $bezirk, false); 315 zeile_blatt($bezirk, $beznam, $blattgml, $blatt, false, $person, true);320 zeile_blatt($bezirk, "", $blattgml, $blatt, false, $person, true); 316 321 } 317 322 GB_Buchung_FS(250, ""); // Blatt > Grundst. > FS, max. 250, ohne Link "Buchung" … … 349 354 // Baustein 1: SQL-Anfang fuer beide Varianten 350 355 $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam, 351 s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gema rkung, ot.gemarkungsname, ";356 s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemashl, trim(trailing from ot.gemarkung) AS gemarkungsname, "; 352 357 if($epsg == "25832") { // Transform nicht notwendig 353 358 $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; … … 373 378 374 379 // Baustein 2: SQL-Ende fuer beide Varianten 375 $sql2 ="JOIN pp_gemarkung ot ON f.land=ot.land AND f.gemarkungsnummer=ot.gemarkung"; // Ortsteil380 $sql2 ="JOIN gema_shl ot ON f.land || f.gemarkungsnummer = ot.gemashl "; // Ortsteil 376 381 $sql2.="WHERE nn.benennt = $1 AND nn.endet IS NULL AND gb.endet IS NULL AND s1.endet IS NULL AND f.endet IS NULL "; 377 378 382 $sqlw2="AND s2.endet IS NULL "; 379 383 … … 389 393 switch ($gfilter) { // Gemeinde-Filter 390 394 case 1: // Einzelwert 391 $sql2.="AND ot.gemeinde='".$gemeinde."' "; break;395 $sql2.="AND substring(ot.gemshl from 6 for 3)='".$gemeinde."' "; break; 392 396 case 2: // Liste 393 $sql2.="AND ot.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 394 } 397 $sql2.="AND substring(ot.gemshl from 6 for 3) in ('".str_replace(",", "','", $gemeinde)."') "; break; 398 } 399 395 400 $sql3 ="ORDER BY b.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 396 401 // Sortier-Problem: laufendenummer in varchar linksbÃŒndig … … 448 453 if ($gwgb != $gb_gml) { // Gruppierung Blatt (Grundbuch) 449 454 $blatt=$row["blatt"]; 450 zeile_blatt($bezirk, $beznam, $gb_gml, $blatt, false, $person, false); 455 // zeile_blatt($bezirk, $beznam, $gb_gml, $blatt, false, $person, false); 456 zeile_blatt($bezirk, "", $gb_gml, $blatt, false, $person, false); 451 457 $gwgb = $gb_gml; // Steuerg GW GB 452 458 $gwbv = ""; // Steuerg GW BVNR … … 466 472 $zfs1++; 467 473 } 474 468 475 if($zfs1 == 0) { 469 476 if ($bltrecht == "ohne") {echo "\n<p class='anz'>Keine direkte Buchung gefunden.</p>";} 477 /* nur Entw. 478 if ($debug > 1) { 479 echo "\n<p class='dbg'>Keine direkte Buchung gefunden.</p>"; 480 if ($debug > 2) {echo "<p class='err'>SQL = '".$sql."', $1 = '".$person."'<p>";} 481 } */ 470 482 } elseif($zfs1 >= $linelimit) { // das Limit war zu knapp 471 483 echo "\n<p class='blt'>"; … … 492 504 } 493 505 } 494 } 506 } 507 495 508 if ($bltrecht == "" and $zfs1 > 0) { // beides 496 509 echo "<hr>"; // dann Trenner … … 523 536 $beznam=$row["beznam"]; 524 537 $blatt=$row["blatt"]; 525 zeile_blatt ($bezirk, $beznam, $gb_gml, $blatt, false, $person, false);538 zeile_blatt ($bezirk, "", $gb_gml, $blatt, false, $person, false); 526 539 $gwgb = $gb_gml; // Steuerg GW GB 527 540 $gwbv = ""; // Steuerg GW BVNR … … 532 545 $bsgml=$row["bsgml"]; 533 546 zeile_buchung($bsgml, $bvnr, "", true, false); // Recht an ... // ohne Link! 534 # zeile_buchung($bsgml, $bvnr, $bezirk."-".$blatt, true, false); // Recht an ...535 547 } 536 548 $fs_gml=$row["gml_id"]; … … 620 632 } else { // mit Filter auf Gemeinde: weniger Daten? 621 633 if ($kennztyp > 1) { 622 #trans="Grundb. und Flurst. in ".$zgbbez." von .. "; // zu lang623 634 $trans="Grdb. und Flst. von .. in .."; // Filter GB-Bez, 624 635 // darunter sind dann Name und Bezirk farblich markiert … … 650 661 651 662 // Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion 652 // im Kopf des Ergebnisrahmens anzeigen.663 // im Kopf des Ergebnisrahmens anzeigen. 653 664 // Dazu die im HTML-Header definierte Javascript-Function benutzen. 654 665 // Alternativ wird auch aus dem Javascript "positionieren Karte" dieser Titel gesetzt.
Note: See TracChangeset
for help on using the changeset viewer.