- Timestamp:
- 05/08/13 09:04:34 (11 years ago)
- Location:
- trunk/mapbender/http/nav
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_adr.php
r280 r282 1 1 <?php 2 2 /* Version vom 3 2011-04-11 epsg in Link, transform nur wenn notwendig4 2011-07-25 PostNAS 0.5/0.6 Versionen unterscheiden5 2011-10-24 Nach Pos-Klick Highlight erneuern statt hideHighlight6 2011-12-09 Sonderfall PostNAS 0.5 raus,7 2012-12-03 A.E.: Ausgabe von Hausnr ohne Gebaeude8 2013-01-15 F.J.: HsNr ohne GebÀude auf NRW/krz-Daten anpassen9 3 2013-04-26 "import_request_variables" entfÀllt in PHP 5.4. 10 4 ZurÃŒck-Link, Titel der Transaktion anzeigen 11 5 2013-04-29 Test mit IE 6 2013-05-07 Strukturierung des Programms 12 7 13 8 ToDo: … … 40 35 <body> 41 36 <a href='javascript:history.back()'> 42 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück" />37 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück"> 43 38 </a> 44 39 <dfn class='title' id='transaktiontitle'></dfn> … … 129 124 $sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 130 125 $sql.="WHERE k.lage LIKE $1 "; 131 132 126 switch ($gfilter) { 133 127 case 1: // Einzelwert … … 155 149 echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$gkey."' title='".$gemname."'>".$sname; 156 150 echo "</a>"; 157 158 151 switch ($gfilter) { 159 152 case 0: // Kein Filter … … 162 155 case 2: // Liste 163 156 echo " in ".$gemname; 164 break;165 default: // Einzelwert166 157 break; 167 158 } … … 247 238 echo " in ".$gemname; 248 239 break; 249 default: // Einzelwert250 break;251 240 } 252 241 echo "\n</div>"; 253 242 } 254 243 echo "\n<hr>"; 255 256 244 // Haeuser zum Strassenschluessel 257 // $sql="SELECT replace(h.hausnummer,' ','') AS hsnr, subq.geb, "; // Subquery258 245 $sql="SELECT replace(h.hausnummer,' ','') AS hsnr, "; 259 246 if($epsg == "25832") { // Transform nicht notwendig … … 264 251 $sql.="st_y(st_transform(p.wkb_geometry,".$epsg.")) AS y "; 265 252 } 266 267 /* Version mit // Subquery268 Liefert Informationen ÃŒber GebÀude zur Hausnummer. LÀuft aber spÃŒrbar langsamer.269 $sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von ";270 $sql.="JOIN ax_lagebezeichnungmithausnummer h ON v.beziehung_zu = h.gml_id ";271 $sql.="LEFT JOIN (SELECT b.beziehung_zu AS zu, g.gml_id AS geb FROM alkis_beziehungen b ";272 $sql.="JOIN ax_gebaeude g ON b.beziehung_von=g.gml_id WHERE b.beziehungsart='zeigtAuf') subq ";273 $sql.="ON h.gml_id = subq.zu WHERE v.beziehungsart='dientZurDarstellungVon' AND p.art = 'HNR' ";274 $sql.="AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 ";275 $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; */276 277 // Version ohne Subquery278 253 $sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von "; 279 254 $sql.="JOIN ax_lagebezeichnungmithausnummer h ON v.beziehung_zu = h.gml_id "; … … 291 266 if($count == 0){echo "\n<tr>";} 292 267 $hsnr=$rowh["hsnr"]; 293 // $geb=$rowh["geb"]; // Subquery294 268 $x=$rowh["x"]; 295 269 $y=$rowh["y"]; 296 /* // Subquery297 if ($geb == "") { // kein GebÀude298 $cls=" class='hsnro'";299 $ttl="kein Haus";300 } else {301 $cls="";302 $ttl="Haus ".$geb;303 }304 */305 270 echo "\n\t<td class='hsnr'>"; 306 // echo "<a".$cls." href='";307 271 echo "<a href='"; 308 272 echo "javascript:"; … … 312 276 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 313 277 echo "onmouseout='parent.parent.hideHighlight()"; 314 // echo "' title='".$ttl."'>".$hsnr."</a>"; // Subquery315 278 echo "'>".$hsnr."</a>"; 316 279 echo "</td>"; -
trunk/mapbender/http/nav/alkisnav_eig.php
r280 r282 1 1 <?php 2 2 /* Version vom 3 24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight4 17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster5 02.12.2011 Suche nach Vorname Nachname oder Nachname6 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 3 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 10 4 2013-04-26 Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung". … … 14 8 Dazu Var-Namen harmonisieren: $gb wird $blattgml. 15 9 ZurÃŒck-Link, Titel der Transaktion anzeigen. 16 2013-04-29 Test mit IE 10 2013-04-29 Darstellung mit IE 11 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 17 12 */ 18 13 $cntget = extract($_GET); … … 43 38 <body> 44 39 <a href='javascript:history.back()'> 45 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück" />40 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück"> 46 41 </a> 47 42 <dfn class='title' id='transaktiontitle'></dfn> … … 51 46 // Einen Link generieren, um nach anderen Personen mit gleichem Familiennamen zu suchen 52 47 function familiensuche() { 53 global $gkz, $gemeinde, $epsg, $name; // $debug48 global $gkz, $gemeinde, $epsg, $name; 54 49 if(isset($name)) { // Familiensuche 55 50 echo "\n<div class='back' title='Andere Personen mit diesem Nachnamen'>"; … … 61 56 } 62 57 63 // Adresse und Geburtsdatum der aktuellen Person ausgeben 64 function personendaten() { 58 function personendaten() { // Adresse und Geburtsdatum der aktuellen Person ausgeben 65 59 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug 66 60 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; 67 61 $sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer "; 68 $sql.="FROM ax_person p "; 69 $sql.="LEFT JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; 70 $sql.="LEFT JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu "; 71 #sql.="WHERE p.gml_id= $1 AND b.beziehungsart='hat';"; // passt nicht zum LEFT 72 $sql.="WHERE p.gml_id= $1 ;"; 62 $sql.="FROM ax_person p LEFT JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; 63 $sql.="LEFT JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu WHERE p.gml_id= $1 ;"; 73 64 $v=array($person); 74 65 $res=pg_prepare("", $sql); 75 66 $res=pg_execute("", $v); 76 if (!$res) { 77 echo "\n<p class='err'>Fehler bei Name</p>\n"; 78 } 67 if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} 79 68 echo "\n\t<table>\n\t<tr>\n\t\t<td valign='top'>"; 80 69 // Sp. 1: Icon, Link zur Auskunft Person … … 100 89 101 90 function getEigByName() { 102 // 1 ============================= 103 // Eigentuemer nach Name(-nsanfang) 104 // =============================== 105 global $gkz, $gemeinde, $epsg, $name, $person, $gfilter, $auskpath; 91 // 1 // Eigentuemer nach Name(-nsanfang) 92 global $gkz, $gemeinde, $epsg, $name, $person, $gfilter; 106 93 $linelimit=150; 107 108 94 $arr = explode(",", $name); 109 95 $name0 = trim($arr[0]); … … 148 134 $cnt = 0; 149 135 while($row = pg_fetch_array($res)) { 150 $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 151 $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 152 $gml=$row["gml_id"]; 153 // Link zur Auskunft Person +++ Icon differenzieren? Firma/Person 154 echo "\n<br>\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gml."\")'>"; 155 echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 156 echo "\n\t</a> "; 157 echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$gml."&name=".$nnam."'>".$nnam.", ".$vnam."</a>"; 136 $nachname=$row["nachnameoderfirma"]; 137 $vorname=$row["vorname"]; 138 $persongml=$row["gml_id"]; 139 zeile_person ($persongml, $nachname, $vorname); 158 140 $cnt++; 159 141 } … … 163 145 echo "\n<p class='anz' title='Bitte den Namen eindeutiger qualifizieren'>... und weitere</p>"; 164 146 } elseif($cnt == 1){ // Eindeutig! 165 $person = $ gml;147 $person = $persongml; 166 148 } else { 167 149 echo "\n<p class='anz'>".$cnt." Eigentümer mit '".$name."'</p>"; // im Limit … … 171 153 172 154 function getGBbyPerson() { 173 // 2 ================================= 174 // GrundbÃŒcher zur gewÀhlten Person 175 // =================================== 155 // 2 // GrundbÃŒcher zur gewÀhlten Person 176 156 // Es wird in dieser Function nicht geprÃŒft, ob die gefundenen GrundbÃŒcher auch FlurstÃŒcke 177 157 // haben, die im gefilterten Bereich (Gemeinde) liegen. Es können daher Sackgassen entstehen, … … 181 161 // Alternativ wÃŒrde eine Hilfstabelle benötigt, in der im PostProcessing 182 162 // das GB-zu-Gemeinde-VerhÀltnis vorbereitet wird. 183 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $ auskpath, $debug, $bltbez, $bltblatt, $bltseite;163 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $debug, $bltbez, $bltblatt, $bltseite; 184 164 $linelimit=150; 185 $linelimit=15; // +++ TEST +++186 165 familiensuche(); 187 166 personendaten(); 188 #if ($debug > 0) {echo "\n<p>Nur Grundbücher</p>"; }189 167 // Suche nach GrundbÃŒchern der Person 190 168 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam "; … … 218 196 $beznam=$row["beznam"]; 219 197 $blatt=$row["blatt"]; 220 echo "\n<div class='gb'>"; 221 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gml."\")'>"; 222 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 223 echo "\n\t</a> "; 224 echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$gml."&person=".$person."'> Blatt ".$blatt." </a>"; 225 echo "\n</div>"; 198 zeile_blatt ($zgbbez, $beznam, $gml, $blatt, false, $person); 226 199 $cnt++; 227 200 } … … 245 218 246 219 function getFSbyGB($backlink) { 247 // 3 ================================= 248 // FlurstÃŒcke zum gewÀhlten Grundbuch 249 // =================================== 220 // 3 // FlurstÃŒcke zum Grundbuch 250 221 // Zu einem Grundbuch (gml_id als Parameter) werden alle darauf gebuchten FlurstÃŒcke gesucht. 251 222 // Im ersten Schritt sind das direkt gebuchten FlurstÃŒcke. 252 223 // Im zweiten Schritt wird gesucht nach Rechten einer Buchungstelle des durchsuchten Blattes an anderen 253 // Buchungstellen. Es werden dann die FlurstÃŒcke darauf gelistet. 254 global $gkz, $gemeinde, $name, $person, $blattgml, $scalefs, $auskpath, $epsg, $gfilter, $debug; 255 $linelimit=150; 224 // Buchungstellen. 225 global $gkz, $gemeinde, $name, $person, $blattgml, $epsg, $gfilter, $debug; 256 226 if($backlink) { // Erneuter Ansatz bei Person oder GB möglich. 257 258 227 // Namen ermitteln 259 228 $sql ="SELECT nachnameoderfirma, vorname FROM ax_person WHERE gml_id = $1 "; … … 261 230 $res=pg_prepare("", $sql); 262 231 $res=pg_execute("", $v); 263 if (!$res) { 264 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; 265 } 232 if (!$res) {echo "\n<p class='err'>Fehler bei Eigentümer</p>";} 266 233 $row = pg_fetch_array($res); // nur eine Zeile 267 234 $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 268 235 $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 236 269 237 echo "\n\t<div class='back' title='zurück zur Person'>"; 270 238 echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'> "; … … 274 242 275 243 // Grundbuch-Daten ermitteln 276 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bez eichnung AS beznam ";277 $sql.="FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk =b.bezirk ";244 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam "; 245 $sql.="FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; 278 246 $sql.="WHERE gb.gml_id= $1 ;"; 279 247 $v=array($blattgml); 280 248 $res=pg_prepare("", $sql); 281 249 $res=pg_execute("", $v); 282 if (!$res) { 283 echo "\n<p class='err'>Fehler bei Grundbuch</p>"; 284 } 285 $row = pg_fetch_array($res); // nur eine Zeile 250 if (!$res) {echo "\n<p class='err'>Fehler bei Grundbuch</p>";} 251 $row = pg_fetch_array($res); // eine Zeile 286 252 $gml=$row["gml_g"]; 253 $bezirk=$row["bezirk"]; 287 254 $beznam=$row["beznam"]; 288 255 $blatt=$row["blatt"]; 289 echo "<div class='gb'>"; 290 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>"; 291 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 292 echo "\n\t</a> ".$beznam." Blatt ".$blatt; 293 echo "</div>"; 294 } 295 296 GB_Buchung_FS($linelimit); // Externe Function: Blatt > GrundstÃŒck > Flurst. 297 256 zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, false, $person); 257 } 258 GB_Buchung_FS(200); // Blatt > GrundstÃŒck > Flurst. (max. 200)) 298 259 return; 299 260 } 300 261 301 262 function getGBuFSbyPerson() { 302 // 2 + 3 ========================================= 303 // GrundbÃŒcher UND FlurstÃŒcke zur gewÀhlten Person 304 // =============================================== 263 // 2 + 3 // GrundbÃŒcher UND FlurstÃŒcke zur gewÀhlten Person 264 // 305 265 // Dies ist die Kombination von Stufe 2 (GrundbÃŒcher zur Person) und 3 (FlurstÃŒcke zum Grundbuch) 306 266 // in einem einzelnen Schritt. Wenn auf Gemeinde gefiltert wird, dann können in Stufe 2 (noch ohne Filter) … … 311 271 // Stufe 2 und 3 nacheinander verwendet werden. Dies ist wahrscheinlich ÃŒbersichtlicher, 312 272 // weil "ungefiltert" in "2+3" zu lange Listen entstehen wÃŒrden, die durchblÀttert werden mÃŒssen. 313 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $ auskpath, $scalefs, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht;273 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht; 314 274 $linelimit=80; // als Limit "Anzahl FlurstÃŒcke" in den beiden folgenden Abfragen 315 275 // darf nun etwas knapper sein, weil man jetzt blÀttern kann … … 375 335 $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung > '".$bltblatt."') "; 376 336 $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung = '".$bltblatt."' AND cast(s1.laufendenummer AS integer) >= ".$bltbvnr." )) "; 377 } // FlurstÃŒcke in der BVNR werden ggf. wiederholt337 } // FlurstÃŒcke in der angeblÀtterten BVNR werden ggf. wiederholt 378 338 379 339 if ($bltseite == "") { // auf Seite 1 beide Teile ausgegeben … … 395 355 // Blatt <vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< Flurstck. 396 356 $sql=$sql1.$sqla1.$sql2.$bltwhere.$sql3; // Direkte Buchungen 397 398 357 $v=array($person, $linelimit); 399 358 $res=pg_prepare("", $sql); … … 401 360 if (!$res) { 402 361 echo "\n<p class='err'>Fehler bei Buchung und Flurstück.</p>"; 403 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}404 362 return; 405 363 } … … 408 366 while($row = pg_fetch_array($res)) { 409 367 $gb_gml=$row["gml_g"]; 410 411 // Gruppenwechsel auf Ebene Grundbuch 412 if ($gwgb != $gb_gml) { 368 if ($gwgb != $gb_gml) { // Gruppierung Blatt (Grundbuch) 413 369 $beznam=$row["beznam"]; 414 370 $blatt=$row["blatt"]; 415 echo "\n<div class='gb'>"; // Ausgabe GB - B L A T T 416 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gb_gml."\")'>"; 417 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 418 echo "\n\t</a> "; 419 echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$gb_gml."&person=".$person."'> Blatt ".$blatt." </a>"; 420 echo "\n</div>"; 371 zeile_blatt ($bezirk, $beznam, $gb_gml, $blatt, false, $person); 421 372 $gwgb = $gb_gml; // Steuerg GW GB 422 373 $gwbv = ""; // Steuerg GW BVNR 423 374 } 424 425 // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR)426 375 $bvnr=$row["lfd"]; 427 if ($gwbv != $bvnr) { 428 if ($bvnr == 0) { 429 $bvnra = "-"; 430 } else { 431 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 432 } 433 $gwbv = $bvnr; // Steuerg GW BVNR 434 echo "\n<div class='gs' title='Grundstück'>"; 435 echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 436 echo "Buchung ".$bvnra."</div>"; 376 if ($gwbv != $bvnr) { // Gruppierung Buchung (BVNR) 377 $gwbv = $bvnr; 378 zeile_buchung ($bsgml, $bvnr, "", false); 437 379 } 438 439 380 $fs_gml=$row["gml_id"]; 440 381 $gmkg=$row["gemarkungsname"]; … … 444 385 $x=$row["x"]; 445 386 $y=$row["y"]; 446 echo "\n<div class='fs'>"; // F L U R S T à C K 447 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 448 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 449 echo "\n\t</a> "; 450 echo "\n\t".$gmkg." <a title='Flurstück positionieren 1:".$scalefs."' href='"; 451 echo "javascript:"; 452 echo "transtitle(\"auf Flurstück positioniert\"); "; 453 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 454 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 455 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 456 echo "onmouseout='parent.parent.hideHighlight()'>"; 457 echo " Flur ".$flur." ".$fskenn."</a>"; 458 echo "\n</div>"; 387 zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur ); 459 388 $zfs1++; 460 389 } 461 390 if($zfs1 == 0) { 462 if ($bltrecht == "ohne") { 463 echo "\n<p class='anz'>Keine direkte Buchung gefunden.</p>"; 464 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 465 } 391 if ($bltrecht == "ohne") {echo "\n<p class='anz'>Keine direkte Buchung gefunden.</p>";} 466 392 } elseif($zfs1 >= $linelimit) { // das Limit war zu knapp, das B l À t t e r n anbieten 467 393 echo "\n<p class='blt'>".$zfs1." Flurstücke"; … … 476 402 } 477 403 } 478 479 404 if ($bltrecht == "" and $zfs1 > 0) { // beides 480 405 echo "<hr>"; // dann Trenner … … 491 416 if (!$res) { 492 417 echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 493 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";}494 418 return; 495 419 } … … 497 421 $gwgb=""; 498 422 while($row = pg_fetch_array($res)) { 499 // Gruppenwechsel auf Ebene Grundbuch500 423 $gb_gml=$row["gml_g"]; 501 if ($gwgb != $gb_gml) { 424 if ($gwgb != $gb_gml) { // Gruppierung Blatt (Grundbuch) 502 425 $beznam=$row["beznam"]; 503 426 $blatt=$row["blatt"]; 504 echo "\n<div class='gb'>"; // Ausgabe GB 505 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gb_gml."\")'>"; 506 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>"; 507 echo "\n\t</a> "; 508 echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$gb_gml."&person=".$person."'> Blatt ".$blatt." </a>"; 509 echo "\n</div>"; 427 zeile_blatt ($bezirk, $beznam, $gb_gml, $blatt, false, $person); 510 428 $gwgb = $gb_gml; // Steuerg GW GB 511 429 $gwbv = ""; // Steuerg GW BVNR 512 430 } 513 514 // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR)515 431 $bvnr=$row["lfd"]; 516 if ($gwbv != $bvnr) { 517 if ($bvnr == 0) { 518 $bvnra = "-"; 519 } else { 520 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 521 } 522 $gwbv = $bvnr; // Steuerg GW BVNR 523 echo "\n<div class='gs' title='Grundstück'>"; 524 echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 525 echo "Buchung ".$bvnra."</div>"; 432 if ($gwbv != $bvnr) { // Gruppierung Buchungs (BVNR) 433 $gwbv = $bvnr; 434 zeile_buchung ($bsgml, $bvnr, "", true); // Recht an ... 526 435 } 527 528 436 $fs_gml=$row["gml_id"]; 529 437 $gmkg=$row["gemarkungsname"]; 530 438 $flur=$row["flurnummer"]; 531 439 $fskenn=$row["zaehler"]; 532 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer440 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 533 441 $x=$row["x"]; 534 442 $y=$row["y"]; 535 echo "\n<div class='fs'>"; 536 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 537 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 538 echo "\n\t</a> "; 539 echo "\n\tRecht an ".$gmkg." <a title='Flurstück positionieren 1:".$scalefs."' href='"; 540 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 541 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 542 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 543 echo "onmouseout='parent.parent.hideHighlight()'>"; 544 echo " Flur ".$flur." ".$fskenn."</a>"; 545 echo "\n</div>"; 443 zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur); 546 444 $zfs2++; 547 445 } … … 549 447 if ($zfs1 == 0 or $bltrecht == "nur") { // keine Meldung wenn schon in Teil 1 eine Ausgabe 550 448 echo "\n<p class='anz'>Keine Rechte an Buchungen.</p>"; 551 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";}552 449 } 553 450 } elseif($zfs2 >= $linelimit) { // das Limit war zu knapp, das B l À t t e r n anbieten … … 569 466 // Start hier! 570 467 // =========== 571 572 468 // Parameter: 573 469 // 1. name = Suche nach Namensanfang oder -bestandteil. … … 576 472 577 473 if(isset($epsg)) { 578 #if ($debug >= 2) {echo "\n<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB579 474 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 580 475 } else { 581 #if ($debug >= 1) {echo "<p class='dbg'>kein EPSG gesetzt</p>";}582 476 $epsg=$gui_epsg; // aus Conf 583 477 } 584 #if ($debug >= 2) {echo "\n<p class='dbg'>Filter Gemeinde = '".$gemeinde."'</p>";}585 478 if ($gemeinde == "") { 586 479 $gfilter = 0; // Gemeinde ungefiltert … … 592 485 593 486 // Quo Vadis? 594 if(isset($blattgml)) { // 3. Stufe:FlurstÃŒcke zum Grundbuch487 if(isset($blattgml)) { // FlurstÃŒcke zum Grundbuch 595 488 596 489 // Das Programm hat sich selbst verlinkt aus einer Liste der GB zu einem EigentÃŒmer. … … 599 492 getFSbyGB(true); // mit BackLink 600 493 601 } elseif(isset($person)) { // 2. Stufe:GrundbÃŒcher zur Person494 } elseif(isset($person)) { // GrundbÃŒcher zur Person 602 495 // Das Programm hat sich selbst verlinkt aus einer Liste der Personen zu einer Suchmaske. 603 496 if ($debug >= 2) {echo "\n<p class='dbg'>Gemeinde-Filter-Steuerung = '".$gfilter."'</p>";} … … 609 502 getGBbyPerson(); 610 503 // Also schrittweise erst mal Stufe 2 = GrundbÃŒcher zur Person suchen. 611 // Diese Function hat auch noch keine Gemeinde-Filter-Funktion auf GB-Ebene.612 613 504 if(isset($blattgml) ) { // Es wurde nur EIN Grundbuch zu der Person gefunden. 614 505 $trans="1 Blatt zum Eigentümer"; … … 617 508 618 509 } else { // mit Filter auf Gemeinde: weniger Daten? 619 620 510 $trans="Grundb. und Flurst. zum Eigentümer"; 621 511 getGBuFSbyPerson(); // Schritte 2+3 gleichzeitig, dabei Gemeinde-Filter auf Stufe 3 622 512 } 623 513 624 } elseif(isset($name)) { // Suchbegriff aus Form - 1. Stufe: Suche nach Name514 } elseif(isset($name)) { // Suchbegriff aus Form: Suche nach Name 625 515 626 516 $trans="Namensuche \"".$name."\""; 627 517 getEigByName(); // Suchen nach Namensanfang 628 518 629 if(isset($person)) { // genau EIN Treffer 630 $trans="1 Grundbuch zum Namen"; 631 getGBbyPerson(); // Dann gleich das Grundbuch hinterher 519 if(isset($person)) { // genau EIN Treffer zum Namen 520 if ($gfilter == 0) { 521 $trans="Grundbücher zum Namen"; 522 getGBbyPerson(); // Dann gleich das Grundbuch hinterher 523 } else { 524 $trans="Grdb. und Flst. zum Namen"; 525 getGBuFSbyPerson(); // .. oder auch GB + FS 526 } 632 527 } 633 528 -
trunk/mapbender/http/nav/alkisnav_fkt.php
r278 r282 1 1 <?php 2 2 /* Version vom 3 2013-04-26 NEU Function "GB_Buchung_FS" ausgelagert. 4 Code aus aus _eig soll auch in _grd verwendet werden 5 Dazu Var-Namen harmonisieren: 6 _eig _grd NEU 7 $gb $gblatt $blattgml 3 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 8 4 */ 9 5 6 // function Typ "zeile_**" = Ausgabe eines Knotens 7 // - Icon, ggf. mit Link zur Buchauskunft 8 // - Zeile, ggf. mit Link zur weiteren Auflösung untergeordneter Knoten 9 // Hierin die Encodierung fÃŒr url und HTML. 10 11 function zeile_ag ($ag, $anr) { // Zeile A m t s g e r i c h t 12 global $gkz, $gemeinde, $epsg, $auskpath; 13 if ($ag == "") { 14 $agd=$anr; // Ersatz: Nummer statt Name. Besser: Name immer fÃŒllen 15 } else { 16 $agd=htmlentities($ag, ENT_QUOTES, "UTF-8"); 17 } 18 echo "\n<div class='ga' title='Amtsgericht'>"; 19 echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> "; 20 echo "AG <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>"; 21 echo $agd."</a> (".$anr.")"; 22 echo "\n</div>"; 23 return; 24 } 25 26 function zeile_gbbez ($gnam, $zgbbez) { // Zeile Grundbuch - B e z i r k 27 global $gkz, $gemeinde, $epsg, $auskpath; 28 $gnamd=htmlentities($gnam, ENT_QUOTES, "UTF-8"); 29 echo "\n<div class='gk' title='GB-Bezirk'>"; 30 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 31 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."'>"; 32 echo "Bezirk ".$gnamd."</a> (".suchfeld($zgbbez).")"; 33 echo "\n</div>"; 34 return; 35 } 36 37 function zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, $dienend, $person) { 38 global $gkz, $gemeinde, $epsg, $auskpath; 39 // Zeile Grundbuch - B l a t t 40 $blattd=ltrim($blatt, "0"); // Display-Version ohne fÃŒhrende Nullen 41 if ( $dienend) {$dientxt="dienendes ";} 42 $blattlnk=urlencode($blatt); // trailing Blank 43 if ($beznam != "") {$nam = $beznam." ";} 44 echo "\n<div class='gb' title='".$dientxt."GB-Blatt'>"; 45 if ($blattgml == "") { // Link zum Nachweis nur wenn GML bekannt 46 echo "\n\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 47 } else { 48 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>"; 49 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 50 echo "\n\t</a> "; 51 } 52 echo $nam." <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg; 53 echo "&blattgml=".$blattgml."&gbkennz=".$bezirk."-".$blattlnk; 54 55 echo "&gbbeznam=".urlencode($beznam); 56 57 if ($person != "") {echo "&person=".$person;} // nur fÃŒr EigentÃŒmer-Suche 58 echo "'>Blatt ".$blattd."</a>\n</div>"; 59 return; 60 } 61 62 function zeile_buchung ($buchunggml, $bvnr, $gbkennz, $dienend) { 63 // Zeile B u c h u n g s s t e l l e - GrundstÃŒck ausgeben 64 global $gkz, $gemeinde, $epsg, $auskpath; 65 if ($bvnr == 0) { 66 $bvnra = "-"; 67 } else { 68 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 69 } 70 if ($diened) { 71 $ti="dienendes "; 72 $re="Recht an "; 73 } else { 74 $ti=""; 75 $re=""; 76 } 77 echo "\n<div class='gs' title='".$ti."Grundstück'>"; 78 echo "\n\t<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 79 echo $re."Buchung"; 80 81 if ($gbkennz == "") { // ohne Link 82 echo " ".$bvnra." "; 83 } else { // Bezirk-Blatt-lfd 84 echo "\n\t<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&buchunggml=".$buchunggml; 85 echo "&gbkennz=".$gbkennz; 86 echo "'> ".$bvnra." </a>"; 87 } 88 echo "\n</div>"; 89 return 0; 90 } 91 92 function zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur) { 93 // Zeile mit Icon (Link zum Buch-Nachweis) und Text (Link zum Positionieren) 94 global $gkz, $gemeinde, $epsg, $auskpath, $scalefs; 95 96 echo "\n<div class='fs'>"; 97 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 98 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 99 echo "\n\t</a>\n\t"; 100 101 echo " <a title='Flurstück positionieren 1:".$scalefs."' href='"; 102 echo "javascript:"; 103 echo "transtitle(\"auf Flurstück positioniert\"); "; 104 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 105 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 106 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 107 echo "onmouseout='parent.parent.hideHighlight()'>"; 108 109 if ($gmkg == "" ) { 110 echo "Flst. "; // Im FS-Teil: Gem+Flur als Knoten darÃŒber ($gmkg und $flur leer) 111 } else { 112 echo $gmkg." "; // Im GB-und Nam-Teil in der Zeile angezeigt 113 } 114 if ($flur != "" ) {echo $flur."-";} 115 echo $fskenn."</a>\n</div>"; 116 return; 117 } 118 119 function zeile_person ($persongml, $nachname, $vorname) { 120 global $gkz, $gemeinde, $epsg, $auskpath; 121 // Zeile P e r s o n (oder Firma) 122 $nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8"); 123 $namlnk=urlencode($nachname); 124 $vnam=htmlentities($vorname, ENT_QUOTES, "UTF-8"); 125 // Link zur Auskunft Person +++ Icon differenzieren? Firma/Person 126 echo "\n<br>\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$gml."\")'>"; 127 echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 128 echo "\n\t</a> "; 129 echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$persongml."&name=".$namlnk."'>".$nnam.", ".$vnam."</a>"; 130 return; 131 } 132 10 133 function GB_Buchung_FS ($linelimit) { 11 // Zu einem Grundbuch-Blatt (identifiziert ÃŒber seine gml_id): 12 // - suchen der Buchungen (Gruppenwechsel) 13 // - und FlurstÃŒcke (Links) 14 // Wird verwendet in den Modulen _eig und _grd. 15 // 2013-04-26 Noch kein BlÀttern und noch keine BerÃŒcksichtigung des Filters auf "Gemeinde" 16 // ToDo: ZÀhler fÃŒr Blatt, Buchung, FS - am Ende ausgeben 17 18 global $gkz, $gemeinde, $blattgml, $scalefs, $auskpath, $epsg, $gfilter, $debug; 134 // Zu einem Grundbuch-Blatt (identifiziert ÃŒber seine gml_id) suchen der 135 // Buchungen (Gruppenwechsel) und FlurstÃŒcke (Links) 136 global $gkz, $gemeinde, $blattgml, $epsg, $gfilter, $debug; 19 137 20 138 // SQL-Bausteine vorbereiten 21 $sql1 ="SELECT s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 139 // SQL vorne gleich 140 $sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 22 141 if($epsg == "25832") { // Transform nicht notwendig 23 142 $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; … … 28 147 } 29 148 $sql1.="g.gemarkung, g.gemarkungsname "; 30 149 $sql1.="FROM alkis_beziehungen vbg "; 31 150 $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id "; 32 151 33 // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 34 $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 35 $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 36 37 $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 38 $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 39 40 $sql2.="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; 41 $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 152 // Zwischen-JOIN verschieden 153 $sqlz1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 154 155 $sqlz2 ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 156 $sqlz2.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 157 $sqlz2.="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 158 159 // ++ JOIN alkis_beziehungen - ax_buchungsblatt 160 // fÃŒr Link auf Buchung mit komplettem Grundbuchennzeichen 161 162 // SQL hinten gleich 163 $sql2 ="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id "; 164 $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 42 165 $sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 43 166 switch ($gfilter) { … … 47 170 $sql2.="AND g.gemeinde in (".$gemeinde.") "; break; 48 171 } 49 $sql2.="ORDER BY s1.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 50 51 // Blatt <vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< Flurstck. 52 $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 172 $sql2.="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 173 174 // Abfrage: d i r e k t e B u c h u n g e n 175 // Blatt <vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< FlurstÃŒck 176 #$sql=$sql1.$sqlz1.$sql2; // Direkte Buchungen 53 177 54 178 $v=array($blattgml, $linelimit); 55 $res=pg_prepare("", $sql );179 $res=pg_prepare("", $sql1.$sqlz1.$sql2); 56 180 $res=pg_execute("", $v); 57 181 if (!$res) { 58 182 echo "\n<p class='err'>Fehler bei Buchung und Flurstück.</p>"; 59 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}183 #if ($debug >= 3) {echo "\n<p class='err'>".$sql1.$sqlz1.$sql2."</p>";} 60 184 return; 61 185 } … … 63 187 $gwbv=""; 64 188 while($row = pg_fetch_array($res)) { 65 66 // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR)67 189 $bvnr=$row["lfd"]; 68 if ($gwbv != $bvnr) { 69 if ($bvnr == 0) { 70 $bvnra = "-"; 71 } else { 72 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 73 } 74 $gwbv = $bvnr; // Steuerg GW BVNR 75 echo "\n<div class='gs' title='Grundstück'>"; 76 echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 77 echo "Buchung ".$bvnra."</div>"; 190 $bsgml=$row["bsgml"]; // Buchungsstelle gml_id 191 if ($gwbv != $bvnr) { // Gruppierung Buchungs-Stelle (BVNR) 192 $gwbv = $bvnr; 193 zeile_buchung ($bsgml, $bvnr, "", false); // FÃŒr GB-Kennz. (-> Link) fehlt Bezirk + Blatt 78 194 } 79 80 195 $fs_gml=$row["gml_id"]; 81 196 $gmkg=$row["gemarkungsname"]; … … 85 200 $x=$row["x"]; 86 201 $y=$row["y"]; 87 echo "\n<div class='fs'>"; 88 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 89 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 90 echo "\n\t</a> "; 91 echo "\n\t".$gmkg." <a title='Flurstück positionieren 1:".$scalefs."' href='"; 92 echo "javascript:"; 93 echo "transtitle(\"auf Flurstück positioniert\"); "; 94 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 95 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 96 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 97 echo "onmouseout='parent.parent.hideHighlight()'>"; 98 echo " Flur ".$flur." ".$fskenn."</a>"; 99 echo "\n</div>"; 202 zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur); 100 203 $zfs1++; 101 204 } 102 if($zfs1 == 0) { 103 // "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet 104 } elseif($zfs1 >= $linelimit) { 105 echo "\n<p class='anz'>... und weitere</p>"; 106 // +++ BlÀttern einfÃŒhren? 205 #if($zfs1 == 0) { // "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet 206 #} else 207 if($zfs1 >= $linelimit) { 208 echo "\n<p class='anz'>... und weitere</p>"; // +++ BlÀttern einfÃŒhren? 107 209 } elseif($zfs1 > 1) { // ab 2 108 210 echo "\n<p class='anz'>".$zfs1." Flurstücke zum Grundbuch</p>"; 109 211 } 110 111 if($zfs1 > 1) { // wenn's was zu trennen gibt 112 echo "<hr>"; // Trennen 113 } 114 115 // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen 116 // buchungsStelle2 < an < buchungsStelle1 117 $sql=$sql1.$sqlz.$sqla2.$sql2; // Rechte an 118 212 if($zfs1 > 0) {echo "<hr>";} // Trennen 213 214 // Abfrage: R e c h t e a n / d i e n e n d e B u c h u n g e n 119 215 $v=array($blattgml, $linelimit); 120 $res=pg_prepare("", $sql );216 $res=pg_prepare("", $sql1.$sqlz2.$sql2); 121 217 $res=pg_execute("", $v); 122 218 if (!$res) { 123 219 echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 124 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";}220 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql1.$sqlz2.$sql2."</p>";} 125 221 return; 126 222 } 127 223 $zfs2=0; 224 #$gwblatt=""; 128 225 $gwbv=""; 129 226 while($row = pg_fetch_array($res)) { 130 131 // Gruppenwechsel auf Ebene Buchungs-Stelle (BVNR)132 227 $bvnr=$row["lfd"]; 133 if ($gwbv != $bvnr) { 134 if ($bvnr == 0) { 135 $bvnra = "-"; 136 } else { 137 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen 138 } 139 $gwbv = $bvnr; // Steuerg GW BVNR 140 echo "\n<div class='gs' title='Grundstück'>"; 141 echo "<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 142 echo "Buchung ".$bvnra."</div>"; 228 $bsgml=$row["bsgml"]; // Buchungsstelle gml_id 229 if ($gwbv != $bvnr) { // Gruppierung Buchung (BVNR) - dienend 230 $gwbv = $bvnr; 231 zeile_buchung ($bsgml, $bvnr, "", true); 143 232 } 144 145 233 $fs_gml=$row["gml_id"]; 146 234 $gmkg=$row["gemarkungsname"]; … … 150 238 $x=$row["x"]; 151 239 $y=$row["y"]; 152 echo "\n<div class='fs'>"; 153 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 154 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 155 echo "\n\t</a> "; 156 echo "\n\tRecht an ".$gmkg." <a title='Flurstück positionieren 1:".$scalefs."' href='"; 157 echo "javascript:"; 158 echo "transtitle(\"auf Flurstück positioniert\"); "; 159 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 160 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 161 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 162 echo "onmouseout='parent.parent.hideHighlight()'>"; 163 echo " Flur ".$flur." ".$fskenn."</a>"; 164 echo "\n</div>"; 240 zeile_flurstueck ($fs_gml, $fskenn, $x, $y, $gmkg, $flur); 165 241 $zfs2++; 166 242 } … … 168 244 echo "\n<p class='anz'>Kein Flurstück im berechtigten Bereich.</p>"; 169 245 } elseif($zfs >= $linelimit) { 170 echo "\n<p class='anz'>... und weitere</p>"; 171 // +++ BlÀttern einfÃŒhren? 246 echo "\n<p class='anz'>... und weitere</p>"; // BlÀttern einfÃŒhren? 172 247 } elseif($zfs2 > 1) { // keine Meldung "nichts gefunden - Rechte an" wenn Treffer in Teil 1 173 248 echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>"; -
trunk/mapbender/http/nav/alkisnav_fls.php
r280 r282 1 1 <?php 2 2 /* Version vom 3 2011-10-24 Nach Pos-Klick Highlight erneuern statt hideHighlight4 2011-11-07 optional auch Historische FS suchen, Link auf Buchauskunft-Modul alkisfshis.php5 2011-11-09 "h" hinter Flur oder FlurstÃŒck sucht sofort in Historie6 Ausgabe Flur in Varianten aktuell/historisch mit gegenseitigen Verweisen7 2011-11-11 Nachfolger-Liste in der DB nachschlagen, und aktuelle FS als solche kennzeichnen8 neue Icons fÃŒr Link mit Pfeil9 Differenzierung mit/ohne Raumbezug bei Icons fuer Histor. FS10 Gemarkung- und Flur-Zeile vor einzelnem FlurstÃŒck ausgeben11 2011-11-17 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster12 3 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4, 13 4 Fehlerkorrektur Komma in SQL bei FS-Suche. … … 15 6 ZurÃŒck-Link, Titel der Transaktion anzeigen 16 7 2013-04-29 Test mit IE 8 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 17 9 */ 18 10 $cntget = extract($_GET); 19 11 include("../../conf/alkisnav_conf.php"); 12 include("alkisnav_fkt.php"); // Funktionen 20 13 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 21 14 $con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname.$dbvers.$gkz); … … 29 22 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 30 23 <title>ALKIS-Suche Flurstück</title> 31 <link rel="stylesheet" type="text/css" href="alkisnav.css"> </link>24 <link rel="stylesheet" type="text/css" href="alkisnav.css"> 32 25 <script type="text/javascript"> 33 26 function imFenster(dieURL) { … … 42 35 <body> 43 36 <a href='javascript:history.back()'> 44 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück" />37 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück"> 45 38 </a> 46 39 <dfn class='title' id='transaktiontitle'></dfn> … … 75 68 // Das eingegebene FlurstÃŒcks-Kennzeichen auseinander nehmen. Erwartet wird gggg-fff-zzzz/nnn 76 69 global $debug, $zgemkg, $zflur, $zzaehler, $znenner; 77 // if ($debug > 1) {echo "<p class='dbg'>Zerlegen: '".$fskennz."'</p>";}78 70 $arr = explode("-", $fskennz, 4); 79 71 $zgemkg=trim($arr[0]); … … 111 103 } 112 104 113 function gemkg_zeile($zgemkg) { 114 // Eine Zeile zu Gemarkung ausgeben, SchlÃŒssel wird ÃŒbergeben, Name in DB nachschlagen 115 global $con, $gkz, $gemeinde, $epsg; 116 $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; 117 $v=array($zgemkg); 118 $res=pg_prepare("", $sql); 119 $res=pg_execute("", $v); 120 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";} 121 $zgmk=0; 122 while($row = pg_fetch_array($res)) { // eigentlich nur EINE 123 $gmkg=$row["bezeichnung"]; 124 $zgmk++; 125 echo "\n<div class='gk' title='Gemarkung'>"; 126 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 127 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>"; 128 echo "\n</div>"; 129 } 130 if ($zgmk == 0) { 131 echo "\n<div class='gk' title='Gemarkung'>"; 132 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 133 echo " Gemarkung ".$zgemkg." ist unbekannt.</p>"; 134 echo "\n</div>"; 105 function flurstueckskoordinaten($gml) { 106 // Die Koordinaten zu einem FlurstÃŒck aus der Datenbank liefern 107 global $epsg; 108 $sqlk ="SELECT "; 109 if($epsg == "25832") { // Transform nicht notwendig 110 $sqlk.="x(st_Centroid(wkb_geometry)) AS x, "; 111 $sqlk.="y(st_Centroid(wkb_geometry)) AS y "; 112 } else { 113 $sqlk.="x(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS x, "; 114 $sqlk.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y "; 115 } 116 $sqlk.="FROM ax_flurstueck WHERE gml_id= $1 "; 117 $v=array($gml); 118 $resk=pg_prepare("", $sqlk); 119 $resk=pg_execute("", $v); 120 if (!$resk) {echo "\n<p class='err'>Fehler bei Koordinate.</p>";} 121 $rowk = pg_fetch_array($resk); 122 $koor=array("x" => $rowk["x"], "y" => $rowk["y"]); 123 return $koor; 124 } 125 126 function zeile_gemeinde ($gnr, $gemeindename) { 127 // Eine Zeile zu Gemeinde ausgeben, SchlÃŒssel und Name wird ÃŒbergeben 128 global $gkz, $gemeinde, $epsg; 129 $stadt=htmlentities($gemeindename, ENT_QUOTES, "UTF-8"); 130 $bez=urlencode($gemeindename); 131 echo "\n<div class='gm' title='Gemeinde'>"; 132 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 133 echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gm=".$gnr."&bez=".$bez."'>"; 134 echo " ".$stadt."</a> (".$gnr.")"; 135 echo "\n</div>"; 136 return; 137 } 138 139 function zeile_gemarkung($gnr, $gemkgname) { 140 // Eine Zeile zu Gemarkung ausgeben 141 global $con, $gkz, $gemeinde, $epsg, $gfilter; 142 if ($gemkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen 143 $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 LIMIT 1;"; 144 $v=array($gnr); 145 $res=pg_prepare("", $sql); 146 $res=pg_execute("", $v); 147 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkungsname.</p>";} 148 $row = pg_fetch_array($res); 149 $gemkgname=$row["gemarkungsname"]; 150 } 151 if ($gemkgname == "") {$gemkgname = "(unbekannt)";} 152 $gnam=htmlentities($gemkgname, ENT_QUOTES, "UTF-8"); 153 echo "\n<div class='gk' title='Gemarkung'>"; 154 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 155 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gnr."'>"; 156 echo " ".$gnam."</a> (".$gnr.")"; 157 echo "\n</div>"; 158 return; 159 } 160 161 function zeile_flur($zgemkg, $zflur, $historie) { // Eine Zeile zur Flur ausgeben 162 global $gkz, $gemeinde, $epsg; 163 echo "\n<div class='fl' title='Flur'>"; 164 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 165 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."-".$zflur; 166 echo "<a title='Aktuelle Flurstücke suchen' href='".$url."'>Flur ".$zflur." </a>"; 167 If ($historie) { // Link zur hist. Suche anbieten 168 echo " <a class='hislnk' title='Historische Flurstücke der Flur' href='".$url."&hist=j'>Hist.</a>"; 169 } 170 echo "\n</div>"; 171 return; 172 } 173 174 function zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur) { 175 // Eine Zeile fÃŒr ein historisches FlurstÃŒck ausgeben 176 global $gkz, $gemeinde, $epsg, $auskpath; 177 if ($ftyp == "h") { 178 $ico="Flurstueck_Historisch_Lnk.ico"; 179 $titl="Historisches Flurstück"; 180 } else { 181 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 182 $titl="Historisches Flurstück ohne Raumbezug"; 183 } 184 echo "\n<div class='hi' title='".$titl."'>"; 185 186 // Icon -> Buchnachweis 187 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 188 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 189 echo "\n\t</a>"; 190 191 // Zeile -> tiefer in die Historie 192 $flurl =$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&hist=j"; 193 $flurl.="&fskennz=".$gknr."-".$flur."-"; 194 echo "\n\thist. Flst. <a href='".$flurl.$fskenn."'>".$fskenn."</a>"; 195 196 echo "\n</div>"; 197 return; 198 } 199 200 function zeile_nachf_fs($gml, $gknr, $flur, $fskenn, $ftyp) { 201 // Eine Zeile fÃŒr ein Nachfolger-FlurstÃŒck eines hist. Fs. ausgeben 202 global $gkz, $gemeinde, $epsg, $auskpath; 203 $fs=$gknr."-".$flur."-".$fskenn; 204 switch ($ftyp) { 205 206 #case "a": 207 # // Fuer ein akt. FS wird hier ein Link auf FS-Kennzeichen-Eingabe angeboten. 208 # // Erst aus der nÀchsten Anzeige kann dann positioniert werden. 209 # $ico="Flurstueck_Link.ico"; 210 # $titl="Aktuelles Flurstück"; 211 # $hisparm=""; 212 # $auskprog="alkisfsnw"; 213 # break; 214 215 case "a": // Alternativ: hier gleich eine FS-Zeile mit Link ausgeben (EinrÃŒckung css passt nicht) 216 $koor=flurstueckskoordinaten($gml); 217 zeile_flurstueck($gml, $fskenn, $koor["x"], $koor["y"], "", ""); 135 218 return; 136 } 137 return 0; 138 } 139 140 function flur_zeile($zgemkg, $zflur) { 141 // Eine Zeile zur Flur ausgeben 142 global $con, $gkz, $gemeinde, $epsg; 143 echo "\n<div class='fl' title='Flur'>"; 144 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 145 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."-".$zflur; 146 echo "Flur <a href='".$url."'>".$zflur."</a>"; 147 //echo "<span class='hislnk'>"; 148 echo " <a class='hislnk' title='Historische Flurstücke' href='".$url."&hist=j'>Hist.</a>"; 219 break; 220 221 case "h": 222 $ico="Flurstueck_Historisch_Lnk.ico"; 223 $titl="Historisches Flurstück"; 224 $hisparm="&hist=j"; 225 $auskprog="alkisfshist"; 226 break; 227 case "o": 228 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 229 $titl="Historisches Flurstück ohne Raumbezug"; 230 $hisparm="&hist=j"; 231 $auskprog="alkisfshist"; 232 break; 233 } 234 // fÃŒr die Hist.-FÀlle: 235 echo "\n<div class='hn' title='Nachfolger: ".$titl."'>"; 236 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath.$auskprog.".php?gkz=".$gkz."&gmlid=".$gml."\")'>"; 237 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS'>"; 238 echo "\n\t</a> "; 239 echo "Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$fs.$hisparm."'>".$fskenn."</a>"; 149 240 echo "\n</div>"; 150 return 0;241 return; 151 242 } 152 243 153 244 function ListGemeinden() { 154 // bei Leereingabe die Gemeinden anlisten245 // Bei Leereingabe im Formular die Gemeinden auflisten 155 246 global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 156 $linelimit= 50;247 $linelimit=60; 157 248 $sql ="SELECT gemeinde, gemeindename FROM pp_gemeinde "; 158 249 switch ($gfilter) { 159 250 case 1: // Einzelwert 160 $sql.="WHERE gemeinde=".$gemeinde." "; 161 break; 251 $sql.="WHERE gemeinde=".$gemeinde." "; break; 162 252 case 2: // Liste 163 $sql.="WHERE gemeinde in (".$gemeinde.") "; 164 break; 165 default: // kein Filter 166 break; 253 $sql.="WHERE gemeinde in (".$gemeinde.") "; break; 254 default: break; 167 255 } 168 256 $sql.=" ORDER BY gemeindename LIMIT $1 ;"; … … 171 259 if (!$res) { 172 260 echo "\n<p class='err'>Fehler bei Gemeinde</p>"; 173 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";}261 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 174 262 return 0; 175 263 } 176 264 $cnt = 0; 177 265 while($row = pg_fetch_array($res)) { 266 $gnr=$row["gemeinde"]; 178 267 $gemeindename=$row["gemeindename"]; 179 $stadt=htmlentities($gemeindename, ENT_QUOTES, "UTF-8"); 180 $bez=urlencode($gemeindename); // Uebergeben an ListGmkgInGemeinde 181 $gnr=$row["gemeinde"]; 182 echo "\n<div class='gm' title='Gemeinde'>"; 183 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 184 echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gm=".$gnr."&bez=".$bez."'>"; 185 echo " ".$stadt."</a> (".$gnr.")"; 186 echo "\n</div>"; 268 zeile_gemeinde($gnr, $gemeindename); 187 269 $cnt++; 188 270 } 189 if($cnt == 0){ 271 // Foot 272 if($cnt == 0) { 190 273 echo "\n<p class='anz'>Keine Gemeinde.</p>"; 191 274 } elseif($cnt >= $linelimit) { 192 275 echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemeinden ... und weitere</p>"; 193 // +++ BlÀttern ?194 276 } elseif($cnt == 1) { // Eindeutig! 195 277 return $gnr; … … 197 279 echo "\n<p class='anz'>".$cnt." Gemeinden</p>"; 198 280 } 199 return 0;200 } 201 202 function ListGmkgInGemeinde($gkey ) {203 // Die (gefuellten)Gemarkungen zu einem Gemeinde-Key (aus Link) listen204 global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter , $bez;281 return; 282 } 283 284 function ListGmkgInGemeinde($gkey, $bez) { 285 // Die Gemarkungen zu einem Gemeinde-Key (aus Link) listen 286 global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 205 287 $linelimit=70; 206 $sql ="SELECT gemarkung, gemarkungsname FROM pp_gemarkung "; 207 $sql.="WHERE gemeinde= $1 ORDER BY gemarkungsname LIMIT $2 ;"; 288 289 // Head 290 zeile_gemeinde($gkey, $bez); 291 292 // Body 293 $sql ="SELECT gemarkung, gemarkungsname FROM pp_gemarkung WHERE gemeinde= $1 ORDER BY gemarkungsname LIMIT $2 ;"; 208 294 $res=pg_prepare("", $sql); 209 295 $res=pg_execute("", array($gkey, $linelimit)); 210 296 if (!$res) { 211 297 echo "\n<p class='err'>Fehler bei Gemarkungen</p>"; 212 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 213 return 0; 214 } 215 // Hierarchie Dokumentieren, Gemeinde-Name? 216 echo "\n<div class='gm' title='Gemeinde'>"; 217 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 218 echo " Gem. ".$bez." (".$gkey.")"; // .urldecode($bez). ?? 219 echo "\n</div>"; 298 return 1; 299 } 220 300 $cnt = 0; 221 301 while($row = pg_fetch_array($res)) { 222 $gnam=htmlentities($row["gemarkungsname"], ENT_QUOTES, "UTF-8");223 302 $gnr=$row["gemarkung"]; 224 echo "\n<div class='gk' title='Gemarkung'>"; 225 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 226 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gnr."'>"; 227 echo " ".$gnam."</a> (".$gnr.")"; 228 echo "\n</div>"; 303 $gnam=$row["gemarkungsname"]; 304 zeile_gemarkung($gnr, $gnam, ""); 229 305 $cnt++; 230 306 } 231 if($cnt == 0){ 232 echo "\n<p class='anz'>Keine Gemarkung.</p>"; 233 } elseif($cnt >= $linelimit) { 234 echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemarkungen ... und weitere</p>"; 235 // +++ BlÀttern ? 236 } elseif($cnt == 1) { // Eindeutig! 237 return $gnr; 238 } else { 239 echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 240 } 241 return 0; 242 } 243 244 function SuchGmkgName() { 245 // Gemarkung suchen nach Name(-nsanfang) 246 global $con, $gkz, $gemeinde, $epsg, $debug, $fskennz, $gfilter; 247 $linelimit=120; 248 if(preg_match("/\*/",$fskennz)){ 249 $match = trim(preg_replace("/\*/i","%", strtoupper($fskennz))); 250 } else { 251 $match = trim($fskennz)."%"; 252 } 253 $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname "; 254 If ($gfilter == 0 OR $gfilter == 2) { // Stadt anzeigen 255 $sql.=", s.gemeindename FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde = s.gemeinde "; 256 } else { 257 $sql.="FROM pp_gemarkung g "; 258 } 259 $sql.="WHERE g.gemarkungsname ILIKE $1 "; 260 switch ($gfilter) { 261 case 1: // Einzelwert 262 $sql.="AND g.gemeinde = ".$gemeinde." "; 263 break; 264 case 2: // Liste 265 $sql.="AND g.gemeinde in (".$gemeinde.") "; 266 break; 267 default: // kein Filter 268 break; 269 } 270 $sql.=" ORDER BY g.gemarkungsname LIMIT $2 ;"; 271 $v=array($match, $linelimit); 272 $res=pg_prepare("", $sql); 273 $res=pg_execute("", $v); 274 if (!$res) { 275 echo "\n<p class='err'>Fehler bei Gemarkung</p>"; 276 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} 277 return 0; 278 } 279 $cnt = 0; 280 while($row = pg_fetch_array($res)) { 281 $gnam=htmlentities($row["gemarkungsname"], ENT_QUOTES, "UTF-8"); 282 $gnr=$row["gemarkung"]; 283 284 echo "\n<div class='gk' title='Gemarkung'>"; 285 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 286 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gnr."'>"; 287 echo " ".$gnam."</a> (".$gnr.")"; 288 switch ($gfilter) { 289 case 0: // Kein Filter 290 echo " ".$row["gemeindename"]; 291 break; 292 case 2: // Liste 293 echo " ".$row["gemeindename"]; 294 break; 295 default: // Einzelwert 296 break; 297 } 298 echo "\n</div>"; 299 $cnt++; 300 } 307 // Foot 301 308 if($cnt == 0){ 302 309 echo "\n<p class='anz'>Keine Gemarkung.</p>"; … … 308 315 echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 309 316 } 310 return 0; 317 return; 318 } 319 320 function SuchGmkgName() { 321 // Gemarkung suchen nach Name(-nsanfang) 322 global $con, $gkz, $gemeinde, $epsg, $debug, $fskennz, $gfilter; 323 $linelimit=120; 324 if(preg_match("/\*/",$fskennz)){ 325 $match = trim(preg_replace("/\*/i","%", strtoupper($fskennz))); 326 } else { 327 $match = trim($fskennz)."%"; 328 } 329 $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname, s.gemeindename "; 330 $sql.="FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde = s.gemeinde "; 331 $sql.="WHERE g.gemarkungsname ILIKE $1 "; 332 switch ($gfilter) { 333 case 1: // Einzelwert 334 $sql.="AND g.gemeinde = ".$gemeinde." "; break; 335 case 2: // Liste 336 $sql.="AND g.gemeinde in (".$gemeinde.") "; break; 337 } 338 $sql.=" ORDER BY s.gemeindename, g.gemarkungsname LIMIT $2 ;"; 339 $v=array($match, $linelimit); 340 $res=pg_prepare("", $sql); 341 $res=pg_execute("", $v); 342 if (!$res) { 343 echo "\n<p class='err'>Fehler bei Gemarkung</p>"; 344 return; 345 } 346 $cnt = 0; 347 $gwgem=""; 348 while($row = pg_fetch_array($res)) { 349 $gemeindename=$row["gemeindename"]; 350 if ($gwgem != $gemeindename) { // Gruppierung Gemeinde 351 $gwgem = $gemeindename; 352 $skey=$row["gemeinde"]; 353 zeile_gemeinde($skey, $gemeindename); 354 } 355 $gnam=$row["gemarkungsname"]; 356 $gnr=$row["gemarkung"]; 357 zeile_gemarkung($gnr, $gnam, $gemeindename); 358 $cnt++; 359 } 360 // Foot 361 if($cnt == 0){ 362 echo "\n<p class='anz'>Keine Gemarkung.</p>"; 363 } elseif($cnt >= $linelimit) { 364 echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemarkungen ... und weitere</p>"; 365 } elseif($cnt == 1) { // Eindeutig! 366 return $gnr; 367 } else { 368 echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; 369 } 370 return; 371 } 372 373 function gg_head($gkgnr) { 374 // Ãbergeordnete Zeilen (Head) fÃŒr Gemeinde und Gemarkung ausgeben 375 // Parameter = Gemarkungsnummer 376 $sqlh ="SELECT g.gemarkungsname, s.gemeinde, s.gemeindename FROM pp_gemarkung g "; 377 $sqlh.="JOIN pp_gemeinde s ON g.gemeinde=s.gemeinde AND g.land=s.land "; 378 $sqlh.="WHERE g.gemarkung = $1 ;"; 379 $v=array($gkgnr); 380 $resh=pg_prepare("", $sqlh); 381 $resh=pg_execute("", $v); 382 if (!$resh) {echo "\n<p class='err'>Fehler bei Gemeinde und Gemarkung.</p>";} 383 $rowh = pg_fetch_array($resh); 384 $gmkg=$rowh["gemarkungsname"]; 385 $skey=$rowh["gemeinde"]; 386 $snam=$rowh["gemeindename"]; 387 zeile_gemeinde($skey, $snam); 388 zeile_gemarkung($gkgnr, $gmkg); 389 return; 311 390 } 312 391 313 392 function EineGemarkung($AuchGemkZeile) { 314 // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 393 // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 394 // Parameter = $zgemkg 315 395 global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg; 316 $linelimit=120; // max. Fluren je Gemarkung 317 if ($AuchGemkZeile) { 318 $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; // WHERE f.land= ? 319 $v=array($zgemkg); 320 $res=pg_prepare("", $sql); 321 $res=pg_execute("", $v); 322 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";} 323 $zgmk=0; 324 while($row = pg_fetch_array($res)) { 325 $gmkg=$row["bezeichnung"]; 326 $zgmk++; 327 } 328 if ($zgmk == 0) { 329 echo "\n<div class='gk' title='Gemarkung'>"; 330 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 331 echo " Gemarkung ".$zgemkg." ist unbekannt.</p>"; 332 echo "\n</div>"; 333 return; 334 } 335 // > 1 auch möglich? 336 echo "\n<div class='gk' title='Gemarkung'>"; 337 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'> "; 338 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."'>"; 339 echo $gmkg."</a> (".$zgemkg.")"; // in Gemeinde? 340 echo "\n</div>"; 341 } 396 $linelimit=120; // max.Fluren/Gemkg 397 398 // Head 399 if ($AuchGemkZeile) {gg_head($zgemkg);} 400 // Body 342 401 $sql ="SELECT gemarkungsteilflur AS flur FROM ax_gemarkungsteilflur f "; 343 $sql.="WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;"; // WHERE f.land=?402 $sql.="WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;"; //WHERE f.land=? 344 403 $v=array($zgemkg, $linelimit); 345 404 $res=pg_prepare("", $sql); … … 348 407 $zfl=0; 349 408 while($row = pg_fetch_array($res)) { 350 $flur=$row["flur"]; 351 echo "\n<div class='fl' title='Flur'>"; 352 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 353 echo "Flur<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."-".$flur."'> ".$flur." </a>"; 354 echo "\n</div>"; 409 $zflur=$row["flur"]; 410 zeile_flur($zgemkg, $zflur, false); 355 411 $zfl++; 356 412 } 413 // Foot 357 414 if($zfl == 0) { 358 415 echo "\n<p class='anz'>Keine Flur.</p>"; … … 366 423 367 424 function EineFlur() { 368 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, dazu aktuelle FlurstÃŒcke suchen369 global $con, $gkz, $gemeinde, $epsg, $debug, $ scalefs, $auskpath, $zgemkg, $zflur;425 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, dazu aktuelle FlurstÃŒcke suchen 426 global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg, $zflur; 370 427 $linelimit=600; // Wie groà kann eine Flur sein? 371 gemkg_zeile($zgemkg); 372 flur_zeile($zgemkg, $zflur); 373 428 429 // Head 430 gg_head($zgemkg); 431 zeile_flur($zgemkg, $zflur, true); 432 433 // Body 374 434 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 375 435 if($epsg == "25832") { // Transform nicht notwendig … … 381 441 } 382 442 $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 "; 383 $sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land= 443 $sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land=? 384 444 $v=array($zgemkg, $zflur, $linelimit); 385 445 $res=pg_prepare("", $sql); … … 394 454 $x=$row["x"]; 395 455 $y=$row["y"]; 396 echo "\n<div class='fs'>"; 397 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 398 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 399 echo "\n\t</a> "; 400 echo "\n\tFlst. <a title='Flurstück positionieren 1:".$scalefs."' href='"; 401 echo "javascript:"; 402 echo "transtitle(\"auf Flurstück positioniert\"); "; 403 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 404 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 405 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 406 echo "onmouseout='parent.parent.hideHighlight()'> ".$fskenn." </a>"; 407 echo "\n</div>"; 456 zeile_flurstueck ($fs_gml, $fskenn, $x, $y, "", ""); 408 457 $zfs++; 409 458 } 410 if($zfs == 0) { 459 if($zfs == 0) { 411 460 echo "\n<p class='anz'>Kein Flurstück.</p>"; 412 461 } elseif($zfs >= $linelimit) { … … 419 468 420 469 function HistFlur() { 421 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben422 // Die Flur nach historischen FlurstÃŒcken durchsuchen470 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben 471 // Die Flur nach historischen FlurstÃŒcken durchsuchen 423 472 global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $land, $zgemkg, $zflur; 424 473 $linelimit=500; 425 474 426 gemkg_zeile($zgemkg); 427 echo "\n<div class='fl' title='Flur'>"; 428 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur-Historie'> "; 429 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."-".$zflur; 430 echo "Historie: Flur<a title='Aktuelle Flurstücke suchen' href='".$url."'> ".$zflur." </a>"; 431 echo "\n</div>"; 432 475 // Head 476 gg_head($zgemkg); 477 zeile_flur($zgemkg, $zflur, true); 478 479 // Body 433 480 $whcl.="WHERE flurstueckskennzeichen like $1 "; 434 481 $sql ="SELECT 'h' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; … … 441 488 if (!$res) {echo "\n<p class='err'>Fehler bei Historie Flur.</p>";} 442 489 $zfs=0; 443 444 // Konst. Teil d.URL (Flur), FS anhÀngen445 $flurl=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&hist=j&fskennz=".$zgemkg."-".$zflur."-";446 447 490 while($row = pg_fetch_array($res)) { 448 491 $ftyp=$row["ftyp"]; … … 450 493 $fskenn=$row["zaehler"]; 451 494 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 452 if ($ftyp == "h") { 453 $ico="Flurstueck_Historisch_Lnk.ico"; 454 $titl="Historisches Flurstück"; 455 } else { 456 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 457 $titl="Historisches Flurstück ohne Raumbezug"; 458 } // h: Karte Pos.? 459 echo "\n<div class='hi' title='".$titl."'>"; // Zeile 460 // Icon -> Bauchauskunft 461 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 462 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 463 echo "\n\t</a> "; 464 // Kennzeichen -> weiter in die Historie hinein 465 echo "\n\tFlst. <a href='".$flurl.$fskenn."'>".$fskenn."</a>"; 466 echo "\n</div>"; 495 zeile_hist_fs($fs_gml, $fskenn, $ftyp, $zgemkg, $zflur); 467 496 $zfs++; 468 497 } 498 499 // Foot 469 500 if($zfs == 0) { 470 501 echo "\n<p class='anz'>Kein historisches Flurstück.</p>"; … … 479 510 480 511 function EinFlurstueck() { 481 // FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler eingegeben 482 // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler 483 global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $fskennz, $zgemkg, $zflur, $zzaehler, $znenner; 484 485 gemkg_zeile($zgemkg); 486 flur_zeile($zgemkg, $zflur); 487 512 // FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler eingegeben 513 // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler 514 global $con, $gkz, $debug, $epsg, $gemeinde, $fskennz, $zgemkg, $zflur, $zzaehler, $znenner; 515 516 // Head 517 gg_head($zgemkg); 518 zeile_flur($zgemkg, $zflur, true); 519 520 // Body 488 521 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 489 522 if($epsg == "25832") { // Transform nicht notwendig 490 523 $sql.="x(st_Centroid(f.wkb_geometry)) AS x, "; 491 524 $sql.="y(st_Centroid(f.wkb_geometry)) AS y "; 492 } 493 else { 525 } else { 494 526 $sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 495 527 $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; … … 508 540 $flur=$row["flurnummer"]; 509 541 $fskenn=$row["zaehler"]; 510 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 511 $x=$row["x"]; 512 $y=$row["y"]; 513 echo "\n<div class='fs'>"; 514 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 515 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 516 echo "\n\t</a> "; 517 echo "\n\tFlst. <a title='Flurstück positionieren 1:".$scalefs."' href='"; 518 echo "javascript:"; 519 echo "transtitle(\"auf Flurstück positioniert\"); "; 520 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 521 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 522 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 523 echo "onmouseout='parent.parent.hideHighlight()'>"; 524 echo $fskenn."</a>"; 525 echo "\n</div>"; 542 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 543 zeile_flurstueck($fs_gml, $fskenn, $row["x"], $row["y"], "", ""); 526 544 $zfs++; 527 545 } 546 // Foot 528 547 if($zfs == 0) { 529 echo "\n<p class='err'>Kein aktuelles Flurstück.</p>"; 530 // Soll in der Historie weiter gesucht werden? 531 echo "\n<div class='hi' title='Historie'>"; 548 echo "\n<p class='anz'>Kein aktuelles Flurstück.</p>"; 549 echo "\n<div class='hi' title='in Historie suchen'>"; 532 550 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt='Historisches Flurstück'> "; 533 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$fskennz."&hist=j'>in Historie suchen</a>"; 551 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$fskennz."&hist=j'>"; 552 echo $zgemkg."-".$zflur."-".$zzaehler; 553 if ($znenner != "") {echo "/".$znenner;} 554 echo " h - suchen</a>"; 534 555 echo "\n</div>"; 535 556 } … … 538 559 539 560 function HistFlurstueck() { 540 // Ein Nachfolger-FS-Kennzeichen soll recherchiert werden. 541 // Es ist unbekannt, ob dies aktuell ist oder auch schon historisch. 542 global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $land, $zgemkg, $zflur, $zzaehler, $znenner; 543 544 gemkg_zeile($zgemkg); 545 flur_zeile($zgemkg, $zflur); 546 547 // Suche ueber das Flurstueckskennzeichen, gml ist meist unbekannt 561 // Die Nachfolger-FS-Kennzeichen sollen recherchiert werden. 562 global $debug, $land, $zgemkg, $zflur, $zzaehler, $znenner; 563 564 // Head 565 gg_head($zgemkg); 566 zeile_flur($zgemkg, $zflur, true); 567 568 // Body 569 // Suche ueber das Flurstueckskennzeichen, gml unbekannt 570 $fldlist=" AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, "; 548 571 $whcl.="WHERE flurstueckskennzeichen= $1 "; 549 $sql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, null as nachf FROM ax_flurstueck ".$whcl; 550 $sql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 551 $sql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 552 572 $sql ="SELECT 'a'".$fldlist."null as nachf FROM ax_flurstueck ".$whcl; 573 $sql.="UNION SELECT 'h'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 574 $sql.="UNION SELECT 'o'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 553 575 $fskzwhere =$land.$zgemkg; // Flurst-Kennz. f. Where 554 576 $fskzwhere.=str_pad($zflur, 3, "0", $STR_PAD_LEFT); … … 556 578 if ($znenner == "") {$fskzwhere.="______";} 557 579 else {$fskzwhere.=str_pad($znenner, 4, "0", $STR_PAD_LEFT)."__";} 558 559 580 $v=array($fskzwhere); 581 560 582 $res=pg_prepare("", $sql); 561 583 $res=pg_execute("", $v); 562 584 if (!$res) {echo "\n<p class='err'>Fehler bei hist. Flurstück.</p>";} 563 585 $zfs=0; 586 564 587 while($row = pg_fetch_array($res)) { 565 588 $ftyp=$row["ftyp"]; … … 569 592 $fskenn=$row["zaehler"]; 570 593 $nachf=$row["nachf"]; 571 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 572 573 if ($ftyp == "a") { // aktuelles FS gefunden, Koordinate holen 574 575 // BEGINN +++ als function ? 576 $sqlk ="SELECT "; 577 if($epsg == "25832") { // Transform nicht notwendig 578 $sqlk.="x(st_Centroid(wkb_geometry)) AS x, "; 579 $sqlk.="y(st_Centroid(wkb_geometry)) AS y "; 580 } else { 581 $sqlk.="x(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS x, "; 582 $sqlk.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y "; 583 } 584 $sqlk.="FROM ax_flurstueck WHERE gml_id= $1 "; 585 $v=array($fs_gml); 586 $resk=pg_prepare("", $sqlk); 587 $resk=pg_execute("", $v); 588 if (!$resk) {echo "\n<p class='err'>Fehler bei Koordinate.</p>";} 589 $zfsk=0; 590 while($rowk = pg_fetch_array($resk)) { 591 $x=$rowk["x"]; 592 $y=$rowk["y"]; 593 $zfsk++; 594 } 595 if ($zfsk == 0) {echo "\n<p class='err'>Kein Treffer bei Koordinate.</p>";} 596 // ENDE +++ als function ? 597 598 echo "\n<p>aktueller Nachfolger:</p>"; 599 echo "\n<div class='fs' title='Aktuelles Nachfolger-Flurstück'>"; // Zeile 600 601 // Icon -> Nachweis FS-Hist. in Buchauskunft 602 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 603 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 604 echo "\n\t</a> "; 605 606 // Kennzeichen -> Karte positionieren 607 echo "\n\tFlst. <a title='Flurstück positionieren 1:".$scalefs."' href='"; 608 echo "javascript:"; 609 echo "transtitle(\"auf H-Flurstück positioniert\"); "; 610 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 611 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 612 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 613 echo "onmouseout='parent.parent.hideHighlight()'>"; 614 // echo $flur."-".$fskenn."</a>"; 615 echo $fskenn."</a>"; 616 617 echo "\n</div>"; 618 594 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 595 if ($ftyp == "a") { // als aktuelles FS gefunden, das "h" war also unnötig! 596 $koor=flurstueckskoordinaten($fs_gml); 597 echo "\n<p>Flurstück ".$fskenn." ist aktuell, nicht historisch</p>"; 598 zeile_flurstueck ($fs_gml, $fskenn, $koor["x"], $koor["y"], $gknr, $flur); 619 599 } else { // Historisches FS gefunden (h oder o) 620 // echo "\n<p>Historisches Flurstück:</p>"; 621 622 if ($ftyp == "h") { 623 $ico="Flurstueck_Historisch_Lnk.ico"; 624 $titl="Historisches Flurstück"; 625 } else { 626 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 627 $titl="Historisches Flurstück ohne Raumbezug"; 628 } // h: Karte Pos.? 629 echo "\n<div class='hi' title='".$titl."'>"; 630 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 631 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 632 echo "\n\t</a> Historisches Flst. ".$fskenn."</a>"; 633 echo "\n</div>"; 634 600 zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur); 635 601 if ($nachf == "") { 636 602 echo "\n<p class='err'>keine Nachfolger</p>"; 637 603 } else { 638 604 echo "\n<p>Nachfolger-Flurstücke:</p>"; 639 // Die direkten Nachfolger ermitteln 605 // Direkte Nachfolger ermitteln. In $nachf steht ein Array von FS-Kennzeichen. 606 // Von den einzelnen Kennz. ist unbekannt, ob diese noch aktuell sind 607 // oder auch schon wieder historisch. 640 608 // Nachfolger in DB suchen um den Status aktuell/historisch zu ermitteln 641 609 $stri=trim($nachf, "{}"); 642 610 $stri="'".str_replace(",", "','", $stri)."'"; 643 // $whcln.="WHERE flurstueckskennzeichen IN ( $1 ) ";644 611 $whcln.="WHERE flurstueckskennzeichen IN ( ".$stri." ) "; 645 $sqln ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$whcln; 646 $sqln.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$whcln; 647 $sqln.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$whcln; 648 // $v=array($stri); 612 $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$whcln; 613 $nasql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$whcln; 614 $nasql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$whcln; 649 615 $v=array(); 650 $ resn=pg_prepare("", $sqln);651 $ resn=pg_execute("", $v);652 if (!$ resn) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";}616 $nares=pg_prepare("", $nasql); 617 $nares=pg_execute("", $v); 618 if (!$nares) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";} 653 619 $zfsn=0; 654 while($rown = pg_fetch_array($resn)) { 655 $ftypn=$rown["ftyp"]; 656 $na_gml=$rown["gml_id"]; 657 $gknrn=$rown["gemarkungsnummer"]; 658 $flurn=$rown["flurnummer"]; 659 $fskennn=$rown["zaehler"]; 660 if ($rown["nenner"] != "") {$fskennn.="/".$rown["nenner"];} 661 662 switch ($ftypn) { 663 case "a": 664 $ico="Flurstueck_Link.ico"; 665 $titl="Aktuelles Flurstück"; 666 $hisparm=""; 667 $auskprog="alkisfsnw"; 668 // ++ Koordinaten holen? siehe oben "als function" 669 break; 670 case "h": 671 $ico="Flurstueck_Historisch_Lnk.ico"; 672 $titl="Historisches Flurstück"; 673 $hisparm="&hist=j"; 674 $auskprog="alkisfshist"; 675 break; 676 case "o": 677 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 678 $titl="Historisches Flurstück ohne Raumbezug"; 679 $hisparm="&hist=j"; 680 $auskprog="alkisfshist"; 681 break; 682 } 683 $fs=$gknrn."-".$flurn."-".$fskennn; 684 echo "\n<div class='hn' title='Nachfolger: ".$titl."'>"; 685 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath.$auskprog.".php?gkz=".$gkz."&gmlid=".$na_gml."\")'>"; 686 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS'>"; 687 echo "\n\t</a> "; 688 echo "Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$fs.$hisparm."'>".$fskennn."</a>"; 689 echo "\n</div>"; 690 620 while($narow = pg_fetch_array($nares)) { 621 $naftyp=$narow["ftyp"]; 622 $nagml=$narow["gml_id"]; 623 $nagknr=$narow["gemarkungsnummer"]; 624 $naflur=$narow["flurnummer"]; 625 $nafskenn=$narow["zaehler"]; 626 if ($narow["nenner"] != "") {$nafskenn.="/".$narow["nenner"];} 627 zeile_nachf_fs ($nagml, $nagknr, $naflur, $nafskenn, $naftyp); 691 628 $zfsn++; 692 // Kontrollieren: Wurden auch so viele FS in DB gefunden, wie im Array "Where in()" standen?693 629 } 694 630 if ($zfsn == 0) { 695 echo "\n<p class='err'>keine Nachfolger gefunden</p>"; 696 if ($debug > 1) {echo "\n<p class='dbg'>SQL=<br>".$sqln."<br>Liste=<br> ".$stri."</p>";} 697 } 631 echo "\n<p class='anz'>keine Nachfolger gefunden</p>"; 632 } else { // if($zfsn > 1) 633 echo "\n<p class='anz'>".$zfsn." Nachfolger-Flurstücke</p>"; 634 } 698 635 } 699 636 } 700 637 $zfs++; 701 638 } 639 // Foot 702 640 if($zfs == 0) { 703 echo "\n<p class=' err'>Kein historisches Flurstück.</p>";704 #if ($debug > 2) {echo "\n<p class='dbg'>".$sql."</p>";}641 echo "\n<p class='anz'>Kein historisches Flurstück.</p>"; 642 #if ($debug > 2) {echo "\n<p class='dbg'> SQL= ".$sql."\n<br> $1 = FS-Kennz = '".$fskzwhere."'</p>";} 705 643 } 706 644 return; … … 711 649 // =========== 712 650 if(isset($epsg)) { 713 //if ($debug >= 2) {echo "<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB714 651 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 715 652 } else { 716 if ($debug >= 1) {echo "\n<p class='dbg'>kein EPSG gesetzt</p>";} 717 $epsg=$gui_epsg; // aus Conf 718 } 719 //if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde = ".$gemeinde."</p>";} 653 #if ($debug >= 1) {echo "\n<p class='dbg'>kein EPSG gesetzt</p>";} 654 $epsg=$gui_epsg; // Conf 655 } 720 656 if ($gemeinde == "") { 721 $gfilter = 0; // ungefiltert657 $gfilter = 0; 722 658 } elseif(strpos($gemeinde, ",") === false) { 723 659 $gfilter = 1; // Einzelwert … … 727 663 if ($hist == "j") {$phist = true;} else {$phist = false;} 728 664 729 if( isset($gm)) { // Self-Link aus Gemeinde-Liste665 if($gm != "") { // Self-Link aus Gemeinde-Liste 730 666 $trans="Gemarkungen zur Gemeinde"; 731 $gnr=ListGmkgInGemeinde($gm );667 $gnr=ListGmkgInGemeinde($gm, $bez); 732 668 if ($gnr > 0) { 733 669 $zgemkg=$gnr; … … 736 672 } else { // Die Formular-Eingabe interpretieren (kann auch ein Link sein) 737 673 $retzer=ZerlegungFsKennz($fskennz); 738 #if ($debug > 1) {echo "<p class='dbg'>Return Zerlegung (case) = '".$retzer."'</p>";}739 674 switch ($retzer) { 740 675 case 0: // leere Eingabe 741 if ($gfilter == 1) { // Die GUI ist bereits auf eineGemeinde gefiltert676 if ($gfilter == 1) { // Die GUI ist bereits auf EINE Gemeinde gefiltert 742 677 $trans="Liste der Gemarkungen"; 743 678 SuchGmkgName(); … … 746 681 ListGemeinden(); 747 682 } 748 break;683 break; 749 684 case 1: 750 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsname ".$zgemkg."</p>";}751 685 $trans="Suche Gemarkungsname"; 752 686 $gnr=SuchGmkgName(); … … 756 690 EineGemarkung(false); 757 691 } 758 break;692 break; 759 693 case 2: 760 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkungsnummer ".$zgemkg."</p>";}761 694 $trans="Fluren in Gemarkung"; 762 695 EineGemarkung(true); 763 break;696 break; 764 697 case 3: 765 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";}766 698 if ($phist) { 767 699 $trans="historische Flurst. in Flur"; … … 771 703 EineFlur(); 772 704 } 773 break;705 break; 774 706 case 4: 775 #if ($debug >= 2) {echo "<p class='dbg'>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";}776 707 if ($phist) { 777 708 $trans="historisches Flurstück"; … … 781 712 EinFlurstueck(); 782 713 } 783 break;714 break; 784 715 case 5: 785 716 if ($phist) { … … 789 720 $trans="Flurstück"; 790 721 EinFlurstueck(); 791 } 792 break;722 } 723 break; 793 724 case 9: 794 725 $trans="falsche Eingabe"; 795 726 echo "\n<p class='err'>Bitte ein Flurstückskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>"; 796 break; 797 } 798 } 727 break; 728 } 729 } 730 799 731 // Titel im Kopf anzeigen 800 732 echo "\n<script type='text/javascript'>\n\ttranstitle('".$trans."')\n</script>"; -
trunk/mapbender/http/nav/alkisnav_grd.php
r280 r282 1 1 <?php 2 2 /* Version vom 3 2011-10-24 Nach Pos-Klick Highlight erneuern statt hideHighlight4 2011-11-17 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster5 2011-12-14 "window.open(..,width=680"6 2012-01-16 Blattnummer in 2 Varianten suchen7 2012-01-17 Blattnummer ohne Buchstabe in 3 Varianten suchen8 3 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 9 4 2013-04-26 Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" … … 12 7 ZurÃŒck-Link, Titel der Transaktion anzeigen. 13 8 2013-04-29 Test mit IE 9 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 14 10 */ 15 11 $cntget = extract($_GET); 16 17 12 include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 18 13 include("alkisnav_fkt.php"); // Funktionen … … 38 33 document.getElementById('transaktiontitle').innerHTML = trans; 39 34 } 35 function formular_belegung(suchMich) { 36 parent.GrdGazetteerFrame.gbkennz.value=suchMich; 37 } 40 38 </script> 41 39 </head> 42 40 <body> 43 41 <a href='javascript:history.back()'> 44 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück" />42 <img src="ico/zurueck.ico" width="16" height="16" alt="<<" title="zurück"> 45 43 </a> 46 44 <dfn class='title' id='transaktiontitle'></dfn> 47 45 48 46 END; 47 48 function suchfeld($suchstring) { // Suchstring Ausgeben UND das Eingabeformular damit belegen 49 $out="<a title='Dies als Suchbegriff setzen' href='javascript:formular_belegung(\"".$suchstring."-\")'>".$suchstring."</a>"; 50 return $out; 51 } 49 52 50 53 function is_ne_zahl($wert) { … … 69 72 return 2; // Such Bezirk-NUMMER 70 73 } else { // Format von BlattNr pruefen 71 //'19' 72 //'000019 ' 73 //'000019A' 74 //'0300001' 74 //'19' linksbÃŒndig 75 //'000019 ' gefÃŒllt 6 + blank 76 //'000019A' .. mit Zusatzbuchstabe 77 //'0300001' gefÃŒllt 7, bei Blattart 5000 "fiktives Blatt" 75 78 $len=strlen($zblatt); 76 79 if ($len > 0 AND $len < 8) { … … 106 109 107 110 function ListAG($liste_ag) { 108 // Amtsgerichte (Grundbuch) auflisten, dazu als Filter eine AG-Liste aus conf111 // Amtsgerichte (Grundbuch) auflisten, dazu als Filter eine AG-Liste 109 112 global $con, $gkz, $gemeinde, $epsg, $debug, $gbkennz; 110 113 $linelimit=40; … … 122 125 while($row = pg_fetch_array($res)) { // Loop AG 123 126 $anr=$row["stelle"]; 124 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); 125 echo "\n<div class='ga' title='Amtsgricht'>"; 126 echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> "; 127 echo "AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>"; 128 echo $ag."</a> (".$anr.")"; 129 echo "\n</div>"; 127 $ag=$row["ag"]; 128 zeile_ag ($ag, $anr); 130 129 $cnt++; 131 130 } 132 if($cnt == 0){ // falsch configuriert! 131 // Foot 132 if($cnt == 0){ 133 133 echo "\n<p class='anz'>Kein Amtsgericht aus Liste ".$$liste_ag.".</p>"; 134 134 } elseif ($cnt >= $linelimit) { … … 140 140 } 141 141 142 function ListGBBez($ liste_ag, $mit_ag) {143 // Grundbuch-Bezirke auflisten.144 // +++ auch wenn BlÀtter da sind, kann es eine Sackgasse sein.145 // +++ manchmal haben die BlÀtter keine FlurstÃŒcke.142 function ListGBBez($agkey) { 143 // Grundbuch-Bezirke zu einem Amtsgericht auflisten. 144 // Auch wenn BlÀtter da sind, kann es eine Sackgasse sein. 145 // Manchmal haben die BlÀtter keine FlurstÃŒcke im Filter-Bereich 146 146 global $con, $gkz, $gemeinde, $epsg, $debug, $gbkennz; 147 $linelimit=90; 148 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 147 $linelimit=100; // Bezirke/AG 148 // Head 149 ListAG( "'".$agkey."'" ); // hier nur fÃŒr 1 150 // Body 151 $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 149 152 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 150 $sql.="WHERE a.stelle IN (".$liste_ag.") AND a.stellenart = 1000 "; // Amtsgericht aus Liste151 // Diese Subquery stellt sicher, dass nur Bezirke aufgelistet twerden, die auch BlÀtter enthalten:153 $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 "; 154 // Diese Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten: 152 155 $sql.="AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land and b.bezirk=g.bezirk LIMIT 1) IS NULL "; 153 $sql.="ORDER BY g.bezeichnung LIMIT $1 ;"; 156 $sql.="ORDER BY g.bezeichnung LIMIT $2 ;"; 157 $v = array($agkey, $linelimit); 154 158 $res = pg_prepare("", $sql); 155 $res = pg_execute("", array($linelimit));159 $res = pg_execute("", $v); 156 160 if (!$res) { 157 161 echo "\n<p class='err'>Fehler bei Grundbuch-Bezirk</p>"; 158 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}162 #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 159 163 return 0; 160 164 } 161 165 $cnt = 0; 162 while($row = pg_fetch_array($res)) { // Loop B E Z I RK163 $gnam= htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");166 while($row = pg_fetch_array($res)) { // Loop BEZIRK 167 $gnam=$row["bezeichnung"]; 164 168 $gnr=$row["bezirk"]; 165 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); 166 $anr=$row["stelle"]; 167 echo "\n<div class='gk' title='GB-Bezirk'>"; 168 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Gemkg'> "; 169 echo "Bezirk <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$gnr."'>"; 170 echo $gnam."</a> (".$gnr.")"; 171 if ($mit_ag) { 172 echo " AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>".$ag."</a>"; 173 } 174 echo "\n</div>"; 169 zeile_gbbez($gnam, $gnr); 175 170 $cnt++; 176 171 } 172 // Foot 177 173 if($cnt == 0){ 178 174 echo "\n<p class='anz'>Kein Bezirk mit Blättern.</p>"; 179 175 } elseif ($cnt >= $linelimit) { 180 echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Bezirke ... und weitere</p>";176 echo "\n<p class='anz' title='Bitte Name des Bezirks suchen lassen'>".$cnt." Bezirke ... und weitere</p>"; 181 177 } elseif($cnt > 1) { 182 178 echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit 183 179 } 184 return 0; 180 return; 181 } 182 183 function ag_bez_head($gbbez) { 184 // Zu einem Grundbuchbezirks-SchlÃŒssel die Zeilen AG und Bezirk ausgeben 185 // Parameter = SchlÃŒssel des Bezirks 186 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 187 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 LIMIT 1;"; 188 $v=array($gbbez); 189 $res=pg_prepare("", $sql); 190 $res=pg_execute("", $v); 191 if (!$res) { 192 echo "\n<p class='err'>Fehler bei Amtsgericht und Grundbuchbezirk.</p>"; 193 #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 194 } 195 $row = pg_fetch_array($res); 196 if ($row) { 197 $gnam=$row["bezeichnung"]; // GB-Bezirk Bezeichnung 198 $ag=$row["ag"]; // AG Bezeichnung 199 $anr=$row["stelle"]; // AG Key 200 zeile_ag($ag, $anr); // Amtsgericht 201 zeile_gbbez($gnam, $gbbez); // Bezirk 202 } else { 203 echo "\n<div class='gk' title='Grundbuchbezirk'>"; 204 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'>"; 205 echo " Bezirk '".$gbbez."' ist unbekannt.</p>"; 206 echo "\n</div>"; 207 return; 208 } 209 return; 185 210 } 186 211 … … 188 213 // Grundbuch-Bezirk suchen nach Name(-nsanfang) 189 214 global $con, $gkz, $gemeinde, $debug, $gbkennz; 190 $linelimit= 50;215 $linelimit=80; 191 216 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 192 217 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 193 218 $sql.="WHERE g.bezeichnung ILIKE $1 "; // "AND a.stellenart=1000 " // Amtsgericht 194 $sql.="ORDER BY g.bezeichnung LIMIT $2 ;";219 $sql.="ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; 195 220 if ( $gbkennz == "") { 196 221 $match = "%"; … … 207 232 if (!$res) { 208 233 echo "\n<p class='err'>Fehler bei Grundbuch-Bezirk</p>"; 209 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 210 return 0; 211 } 212 $cnt = 0; 213 // Loop B E Z I R K 214 while($row = pg_fetch_array($res)) { 215 $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 234 return 1; 235 } 236 $cnt=0; 237 $gwag=""; 238 while($row = pg_fetch_array($res)) { // Loop BEZIRK 239 $anr=$row["stelle"]; // Gruppierung AG 240 if ($gwag != $anr) { 241 $gwag = $anr; 242 $ag=$row["ag"]; 243 zeile_ag($ag, $anr); 244 } 245 $gnam=$row["bezeichnung"]; 216 246 $gnr=$row["bezirk"]; 217 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); 218 $anr=$row["stelle"]; 219 echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 220 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Gemkg'> "; 221 echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$gnr."'>"; 222 echo $gnam."</a> (".$gnr.")"; 223 echo " AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>".$ag."</a>"; 224 echo "\n</div>"; 247 zeile_gbbez ($gnam, $gnr); 225 248 $cnt++; 226 249 } 250 // Foot 227 251 if($cnt == 0){ 228 252 echo "\n<p class='anz'>Kein Grundbuchbezirk.</p>"; … … 234 258 echo "\n<p class='anz'>".$cnt." Bezirke</p>"; // im Limit 235 259 } 236 return 0;260 return; 237 261 } 238 262 … … 240 264 // Kennzeichen bestehend nur aus GB-Bezirk-SchlÃŒssel wurde eingegeben 241 265 global $con, $gkz, $gemeinde, $epsg, $debug, $zgbbez, $auskpath; 242 $linelimit= 250; // max. Blatt je Bezirk266 $linelimit=300; // max. Blatt je Bezirk 243 267 // Dies Limit ist nicht ausreichend fÃŒr alle BlÀtter eines Bezirks, aber ... 244 268 // Wenn man die Blatt-Nr nicht kennt, kommt man hier sowieso nicht weiter. 245 269 // Es nutzt also nichts, hier tausende Nummern aufzulisten. 246 270 // +++ BlÀtter-Funktion einfÃŒhren analog Modul _eig 271 272 // Head 247 273 if ($showParent) { 248 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 249 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 ;"; 250 $v=array($zgbbez); 251 $res=pg_prepare("", $sql); 252 $res=pg_execute("", $v); 253 if (!$res) { 254 echo "\n<p class='err'>Fehler bei Brundbuchbezirk.</p>"; 255 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 256 } 257 $zgmk=0; 258 while($row = pg_fetch_array($res)) { 259 $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 260 $gnr=$row["bezirk"]; 261 $ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8"); 262 $anr=$row["stelle"]; 263 $zgmk++; 264 } 265 if ($zgmk == 0) { 266 echo "\n<div class='gk' title='Grundbuchbezirk'>"; 267 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'>"; 268 echo " Bezirk ".$zgbbez." ist unbekannt.</p>"; 269 echo "\n</div>"; 270 return; 271 } 272 273 // AG-Knoten davor setzen 274 echo "\n<div class='ga' title='Amtsgricht'>"; 275 echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> "; 276 echo "AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>"; 277 echo $ag."</a> (".$anr.")"; 278 echo "\n</div>"; 279 echo "\n<div class='gk' title='GB-Bezirk'>"; 280 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 281 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."'>"; 282 echo $gnam."</a> (".$zgbbez.")"; 283 // alternativ AG-Link hinter dem Bezirk 284 // echo " des AG <a href='alkisnav_grd.php?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>".$ag."</a>"; 285 echo "\n</div>"; 286 } 274 ag_bez_head($zgbbez); // AG und BEZ ausgeben 275 } 276 // Body 287 277 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b "; 288 278 $sql.="WHERE b.bezirk= $1 ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; … … 292 282 if (!$res) { 293 283 echo "\n<p class='err'>Fehler bei Bezirk.</p>"; 294 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}284 #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 295 285 } 296 286 $cntbl=0; // Counter Blatt/Bezirk 297 // Loop B L A T T 298 while($row = pg_fetch_array($res)) { 287 while($row = pg_fetch_array($res)) { // Loop BLATT 299 288 $blatt=$row["blatt"]; 300 $blattd=ltrim($blatt, "0"); 301 $gml=$row["gml_id"]; 302 echo "\n<div class='gb' title='GB-Blatt'>"; 303 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$gml."\")'>"; 304 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 305 echo "\n\t</a> "; 306 echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$gml."&gbkennz=".$zgbbez."-".$blatt."'> ".$blattd." </a>"; 307 echo "\n</div>"; 289 $blattgml=$row["gml_id"]; 290 zeile_blatt($zgbbez, $gnam, $blattgml, $blatt, false, ""); 308 291 $cntbl++; 309 292 } 293 // Foot 310 294 if($cntbl == 0) { 311 295 echo "\n<p class='anz'>Kein Blatt im Bezirk.</p>"; … … 314 298 // +++ Hier oft ÃŒberschritten! BlÀtter-Funktion einfÃŒhren 315 299 echo "\n<p>Geben sie ein: '".$zgbbez."-999A'<br>wobei '999A' = gesuchtes GB-Blatt</p>"; 300 301 // Vorbelegen des Eingabefeldes fÃŒr neue Suche? 302 echo "<script type='text/javascript'>parent.GrdGazetteerFrame.gbkennz.value='".$zgbbez."-??';</script>"; 303 316 304 } elseif ($cntbl > 1) { 317 305 echo "\n<p class='anz'>".$cntbl." Blätter</p>"; // im Limit … … 352 340 } 353 341 354 /* 355 function EinBlatt_ALT($showParent) { 356 // Kennzeichen Bezirk + Blatt wurde eingegeben 357 // UrsprÃŒngliche Version bis 2013-04-24 358 global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $blattgml, $zbvnr; 359 342 function EinBlatt($showParent) { 343 // Kennzeichen Bezirk + Blatt wurde eingegeben oder verlinkt 344 global $con, $gkz, $debug, $gemeinde, $epsg, $zgbbez, $zblatt, $blattgml, $gbbeznam; 345 // Head 360 346 if ($showParent) { 361 // +++ nur der Schluessel ist bekannt. Bezirks-Namen und Amtsgericht noch ermitteln ++++ 362 echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 363 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 364 echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."'>"; 365 echo $zgbbez."</a>"; 366 echo "\n</div>"; 367 echo "\n<div class='gb' title='GB-Blatt'>"; 368 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>"; 369 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 370 echo "\n\t</a> "; 371 echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$blattgml."&gbkennz=".$zgbbez."-".$zblatt."'> ".$zblattn.$zblattz." </a>"; 372 echo "\n</div>"; 373 } 374 // Blatt -> B u c h u n g s s t e l l e 375 $sql ="SELECT s.gml_id, s.laufendenummer AS lfd FROM ax_buchungsstelle s "; 376 $sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_von "; 377 $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id "; 378 $sql.="WHERE v.beziehungsart='istBestandteilVon' AND b.gml_id= $1 ORDER BY s.laufendenummer;"; 379 // +++ Buchungen ohne FLST weglassen? 380 // +++ Counter FLST ausgeben, Buchungen mit 0 weglassen 381 $v=array($blattgml); 382 $res=pg_prepare("", $sql); 383 $res=pg_execute("", $v); 384 if (!$res) { 385 echo "\n<p class='err'>Fehler bei Blatt.</p>"; 386 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 387 } 388 $cntbu=0; // Counter Buchung/Blatt 389 while($row = pg_fetch_array($res)) { 390 $bs_gml=$row["gml_id"]; 391 $lfd=$row["lfd"]; 392 echo "\n<div class='gs'>"; 393 echo "\n\t\t<img class='nwlink' title='Grundstück' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 394 echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbuchung=".$bs_gml."&gbkennz=".$zgbbez."-".$zblatt."-".$lfd."'> ".$lfd." </a>"; 395 echo "\n</div>"; 396 $cntbu++; 397 } 398 if($cntbu == 0) { 399 echo "\n<p class='anz'>Keine Buchung gefunden.</p>"; 400 } elseif($cntbu == 1) { 401 $zbvnr=$lfd; // mit dieser BVNR gleich weiter machen 402 // Blatt zerteilen (benoetigt in gml_buchungsstelle) 403 if (trim($zblatt, "0..9") == "") { // Normalfall: nur Zahlen 404 $zblattn= ltrim($zblatt, "0"); 405 $zblattz=""; 406 } else { // Sonderfall: Zusatz-Buchstabe am Ende 407 $zblattn=ltrim(substr($zblatt,0,$len-1), "0"); // ohne fuehrende Nullen 408 $zblattz=strtoupper(substr($zblatt,$len-1,1)); 409 } 410 } else { 411 echo "\n<p class='anz'>".$cntbu."Buchungen.</p>"; 412 } 413 return $cntbu; 414 } 415 */ 416 417 function EinBlatt($showParent) { 418 // Kennzeichen Bezirk + Blatt wurde eingegeben 419 global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $blattgml, $zbvnr; 420 421 if ($showParent) { 422 // +++ nur der Schluessel ist bekannt. Bezirks-Namen und Amtsgericht noch ermitteln ++++ 423 echo "\n<div class='gk' title='Grundbuch-Bezirk'>"; 424 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 425 echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."'>"; 426 echo $zgbbez."</a>"; 427 echo "\n</div>"; 428 echo "\n<div class='gb' title='GB-Blatt'>"; 429 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>"; 430 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>"; 431 echo "\n\t</a> "; 432 echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&blattgml=".$blattgml."&gbkennz=".$zgbbez."-".$zblatt."'> ".$zblattn.$zblattz." </a>"; 433 echo "\n</div>"; 434 } 435 436 // Blatt -> Buchungsstelle -> Flurstueck 437 $linelimit = 200; // Max. Anzahl FS 438 GB_Buchung_FS($linelimit); // Externe Function 439 440 return 0; 441 347 ag_bez_head($zgbbez); // AG + BEZ 348 zeile_blatt ($zgbbez, $gbbeznam, $blattgml, $zblatt, false, ""); 349 } 350 // Body 351 GB_Buchung_FS(200); // Blatt -> Buchung -> Flurstueck (max. 200) 352 return; 442 353 } 443 354 444 355 function gml_buchungsstelle() { 445 // Kennzeichen "Bezirk + Blatt + BVNR" eingegeben. Dazu die gml_id der Buchungsstelle ermitteln. 356 // Kennzeichen "Bezirk + Blatt + BVNR" wurde eingegeben. 357 // Dazu die gml_id der Buchungsstelle ermitteln, um "function EinGrundstueck" benutzen zu können. 446 358 global $con, $gkz, $debug, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr; 447 359 // Blatt -> B u c h u n g s s t e l l e … … 474 386 echo "\n<p class='err'>Buchung ".$zgbbez."-".$zblattn.$zblattz."-".$zbvnr." nicht gefunden.</p>"; 475 387 return; 476 } elseif($zbs > 1) { // nur TEST477 echo "\n<p class='err'>Buchungsstelle mehrfach gefunden.</p>";478 return;479 388 } else { 480 389 return $bs_gml; … … 483 392 484 393 function EinGrundstueck($showParent) { 485 // Die gml_id der Buchungsstelle ist bekannt. 486 global $con, $gkz, $debug, $gemeinde, $epsg, $scalefs, $epsg, $auskpath, $gbuchung, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter; 394 // Die gml_id der Buchungsstelle (BVNR, GrundstÃŒck) ist bekannt = $buchunggml 395 // Die gebuchten FlurstÃŒcke und dienende/herrschenden Buchungen werden ausgegeben. 396 global $con, $gkz, $debug, $gemeinde, $epsg, $scalefs, $epsg, $auskpath, $buchunggml, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter; 487 397 // NoLimit? 488 398 if ($showParent) { // wenn Kennzeichen bekannt ist, dann auch Blatt ausgeben 489 490 399 if ($zgbbez.$zblatt != "") { 491 // +++ SchlÃŒssel ist bekannt. Namen und Amtsgericht dazu ermitteln 492 // +++ oder Namen als &bez= ÃŒbermitteln? 493 echo "\n<div class='gk' title='GB-Bezirk'>"; 494 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> "; 495 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."'>"; 496 echo "Bezirk ".$zgbbez."</a>"; 497 echo "\n</div>"; 498 echo "\n<div class='gb' title='GB-Blatt'>"; 499 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt.ico' width='16' height='16' alt='Blatt'> "; 500 echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez."-".$zblatt."'> ".$zblattn.$zblattz." </a>"; 501 echo "\n</div>"; 400 ag_bez_head($zgbbez); // AG + BEZ 401 zeile_blatt ($zgbbez, $gnam, "", $zblatt, false, ""); 402 // $gnam leer lassen Knoten "Bezirk" steht drÃŒber 502 403 } else { 503 404 echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>"; 504 } 505 506 echo "\n<div class='gs'>"; 507 echo "\n\t\t<img class='nwlink' title='Grundstück' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> "; 508 echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbuchung=".$gbuchung."&gbkennz=".$zgbbez."-".$zblattn.$zblattz."-".$zbvnr."'> ".$zbvnr." </a>"; 509 echo "\n</div>"; 510 } 511 // +++ Ermitteln anderer Buchungsstellen mit Rechten an dieser 512 // +++ Ermitteln anderer Buchungsstellen wo diese Rechte hat 513 // +++ Filter "Gemeinde" berÃŒcksichtigt!! Wenn gesetzt. 514 515 // SQL-Bausteine 516 $sql1 ="SELECT g.gemeinde, g.gemarkungsname, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 405 // +++ Dann suche sie !! 406 } 407 zeile_buchung ($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz."-".$zbvnr, false); 408 } 409 410 // SQL-Bausteine 411 // dienend $1 gml_id von 412 // Buchungsstelle <vs/an< Buchungsstelle sh 413 // (dienend) (herrschend) 414 // 415 // direkt $1 gml_id von 416 // Buchungsstelle <vs/istGebucht< FlurstÃŒck > Gemarkung 417 // 418 // Recht $1 gml_id von 419 // Buchungsstelle >vs/an> Buchungsstelle sd <vf/istGebucht< FlurstÃŒck > Gemarkung 420 // (herrschend) (dienend) 421 // sd >vd/istBestandteilVon> bd > gd 422 423 // Anfang gleich (Select-Liste) 424 $sqlanf ="SELECT g.gemeinde, g.gemarkungsname, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 517 425 if($epsg == "25832") { // Transform nicht notwendig 518 $sql 1.="st_x(st_Centroid(f.wkb_geometry)) AS x, ";519 $sql 1.="st_y(st_Centroid(f.wkb_geometry)) AS y ";426 $sqlanf.="st_x(st_Centroid(f.wkb_geometry)) AS x, "; 427 $sqlanf.="st_y(st_Centroid(f.wkb_geometry)) AS y "; 520 428 } else { 521 $sql1.="st_x(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS x, "; 522 $sql1.="st_y(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS y "; 523 } 524 $sql1.="FROM "; 525 526 $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 527 $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 528 529 // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 530 $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 531 $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 532 533 $sql2 ="JOIN ax_flurstueck f ON .... "; 534 $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 535 $sql2.="WHERE v.beziehungsart='istGebucht' AND v.beziehung_zu= $1 "; // id buchungsstelle 429 $sqlanf.="st_x(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS x, "; 430 $sqlanf.="st_y(st_transform(st_Centroid(f.wkb_geometry),".$epsg.")) AS y "; 431 } 432 // Filter gleich 536 433 switch ($gfilter) { // Filter Gemeinde 537 434 case 1: // Einzelwert 538 $sql 2.="AND g.gemeinde=".$gemeinde." "; break;435 $sqlfitler="AND g.gemeinde=".$gemeinde." "; break; 539 436 case 2: // Liste 540 $sql2.="AND g.gemeinde in (".$gemeinde.") "; break; 541 } 542 $sql2.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 543 544 $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 545 $v=array($gbuchung); 437 $sqlfilter="AND g.gemeinde in (".$gemeinde.") "; break; 438 } 439 440 // Abfrage: Direkte Buchungen (FlurstÃŒcke) 441 $sql =$sqlanf."FROM alkis_beziehungen vs JOIN ax_flurstueck f ON vs.beziehung_von = f.gml_id "; 442 $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 443 $sql.="WHERE vs.beziehung_zu= $1 AND vs.beziehungsart='istGebucht' "; 444 $sql.=$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 445 446 $v=array($buchunggml); 546 447 $res=pg_prepare("", $sql); 547 448 $res=pg_execute("", $v); 548 449 if (!$res) { 549 echo "\n<p class='err'>Fehler bei Buchungsstelle (gml).</p>"; 550 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 551 } 552 $zfs=0; 450 echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, direkt).</p>"; 451 if ($debug >= 3) { 452 echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>"; 453 } 454 } 455 $zfs1=0; 553 456 while($row = pg_fetch_array($res)) { 554 457 $fs_gml=$row["gml_id"]; … … 557 460 $flur=$row["flurnummer"]; 558 461 $fskenn=$row["zaehler"]; 559 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 560 $x=$row["x"]; 561 $y=$row["y"]; 562 563 // FILTER OBEN, IN SQL - nicht HIER 564 if($gemeinde > 0 and $gemeinde != $gemei and $gfilter == 1) { // ex-territorial 565 if ($debug >= 2) { 566 echo "<p class='dbg'>Gemkg ".$gmkg." liegt in Gemeinde '".$gemei."' nicht '".$gemeinde."'</p>"; 567 } 568 echo "\n<div class='fs' title='Kein Zugriff! Liegt außerhalb des Gebietes.'>"; 569 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Leer.ico' width='16' height='16' alt='FS'> (".$gmkg." ".$flur."-".$fskenn." )"; 570 echo "\n</div>"; 571 } else { 572 echo "\n<div class='fs'>"; 573 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 574 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 575 echo "\n\t</a> "; 576 echo "\n\t".$gmkg." <a title='Flurstück positionieren 1:".$scalefs."' href='"; 577 echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 578 echo "parent.parent.showHighlight(".$x.",".$y.")' "; 579 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 580 echo "onmouseout='parent.parent.hideHighlight()'> "; 581 echo $flur."-".$fskenn." </a>"; 582 echo "\n</div>"; 583 } 584 $zfs++; 585 } 586 if($zfs == 0) { 587 echo "\n<p class='anz'>Kein Flurstück.</p>"; 588 } elseif($zfs > 1) { 589 echo "\n<p class='anz'>".$zfs." Flurstück.</p>"; 462 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr 463 zeile_flurstueck ($fs_gml, $fskenn, $row["x"], $row["y"], $gmkg, $flur ); 464 $zfs1++; 465 } 466 if($zfs1 == 0) { 467 echo "\n<p class='anz'>Kein Flurstück direkt</p>"; 468 } elseif($zfs1 > 1) { 469 echo "\n<p class='anz'>".$zfs1." Flurstücke</p>"; 470 } 471 if($zfs1 > 0) { // wenn's was zu trennen gibt 472 echo "<hr>"; // Trennen 473 } 474 475 // Abfrage: Rechte an (dienende Buchungen und ihre FlurstÃŒcke) 476 $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, "; // Stelle dienend 477 $sql.="bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, "; // Blatt dienend 478 $sql.="gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez "; // AG und Bezirk dazu 479 $sql.="FROM alkis_beziehungen vs "; 480 $sql.="JOIN ax_buchungsstelle sd ON vs.beziehung_zu=sd.gml_id "; 481 $sql.="JOIN alkis_beziehungen vf ON vf.beziehung_zu=sd.gml_id "; // sd=Stelle dienend 482 $sql.="JOIN ax_flurstueck f ON vf.beziehung_von = f.gml_id "; 483 $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 484 485 // Blatt und Bezirk (dienend) 486 $sql.="JOIN alkis_beziehungen vd ON vd.beziehung_von=sd.gml_id "; 487 $sql.="JOIN ax_buchungsblatt bd ON vd.beziehung_zu=bd.gml_id "; // Blatt dienend 488 $sql.="JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk "; // GB-Bez. dienend 489 $sql.="WHERE vs.beziehung_von = $1 AND vs.beziehungsart='an' AND vf.beziehungsart='istGebucht' AND vd.beziehungsart='istBestandteilVon' "; 490 $sql.=$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 491 492 $v=array($buchunggml); 493 $res=pg_prepare("", $sql); 494 $res=pg_execute("", $v); 495 if (!$res) { 496 echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, Recht an).</p>"; 497 if ($debug >= 3) { 498 echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>"; 499 } 500 } 501 $zfs2=0; 502 $gwblatt=""; 503 while($row = pg_fetch_array($res)) { 504 $dienstelle=$row["stelle"]; // Stelle (AG) des dienenden GrundstÃŒcks 505 $dienbezgml=$row["dienbezgml"]; // Bezirks des dien. GS: gml, Nr. und Bezeichnung 506 $diengbbez=$row["diengbbez"]; // Bezeichnung 507 $dienbezirk=$row["bezirk"]; // Key 508 $dienbltgml=$row["dienbltgml"]; // dienendes Blatt, gml und Nr 509 $dienblatt=$row["dienblatt"]; 510 $diengml=$row["diengml"]; // gml_id des dienenden GrundstÃŒcks 511 $dienlfd=$row["dienlfd"]; // BVNR (laufendNr) des dien. GS 512 if ($gwblatt != $dienblatt) { // Gruppierung Blatt - dienend 513 $gwblatt = $dienblatt; // Steuerg GW Blatt 514 zeile_blatt ($dienbezirk, $diengbbez, $dienbltgml, $dienblatt, true, ""); 515 $gwbvnr=""; 516 } 517 if ($gwbvnr != $dienlfd) { // Gruppierung Buchung (BVNR) - dienend 518 $gwbvnr = $dienlfd; // Steuerg GW BVNR 519 zeile_buchung($diengml, $dienlfd, $dienbezirk."-".$dienblattlnk."-".$dienlfd, true); 520 } // ++ Buchungsart? Welches Recht? 521 $fs_gml=$row["gml_id"]; 522 $gemei=$row["gemeinde"]; 523 $gmkg=$row["gemarkungsname"]; 524 $flur=$row["flurnummer"]; 525 $fskenn=$row["zaehler"]; 526 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // BruchNr 527 zeile_flurstueck ($fs_gml, $fskenn, $row["x"],$row["y"], $gmkg, $flur ); 528 $zfs2++; 529 } 530 if($zfs2 == 0 AND $zfs1 == 0) { 531 echo "\n<p class='anz'>Kein Recht an Flst.</p>"; 532 } elseif($zfs2 > 1) { 533 echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>"; 590 534 } 591 535 return; … … 596 540 // =========== 597 541 if(isset($epsg)) { 598 #if ($debug >= 2) {echo "<p class='dbg'>aktueller EPSG='".$epsg."'</p>";} // aus MB599 542 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 600 543 } else { 601 #if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}602 544 $epsg=$gui_epsg; // aus Conf 603 545 } … … 605 547 if ($gemeinde == "") { 606 548 $gfilter = 0; // ungefiltert 607 #if ($debug >= 2) {echo "<p class='dbg'>Kein Filter Gemeinde</p>";}608 549 } elseif(strpos($gemeinde, ",") === false) { 609 550 $gfilter = 1; // Einzelwert 610 #if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde Einzelwert = '".$gemeinde."'</p>";}611 551 } else { 612 552 $gfilter = 2; // Liste 613 #if ($debug >= 2) {echo "<p class='dbg'>Filter Gemeinde Liste = '".$gemeinde."'</p>";}614 553 } 615 554 616 555 // Auch wenn redundant: Das Kennzeichen fÃŒr Anzeige und weitere Links zerlegen 617 556 $kennztyp=ZerlegungGBKennz($gbkennz); 618 #if ($debug >= 2) {echo "<p class='dbg'>GB-Kennzeichen Typ=".$kennztyp."</p>";}619 557 620 558 // Wurde eine gml_id (internes Kennzeichen) aus einem Self-Link verwendet? 621 559 // Dann hat das Prioritaet, also *nicht* nach $gbkennz suchen. 622 if ($ gbuchung!= "") { // gml der Buchungsstelle623 $trans=" Buchungsstelle";560 if ($buchunggml != "") { // gml der Buchungsstelle 561 $trans="Flurst. zur Buchungsstelle (Link)"; 624 562 EinGrundstueck(true); 625 563 626 564 } elseif($blattgml != "") { // gml des GB-Blattes 627 628 // neue Version -> function GB_Buchung_FS629 565 $trans="GB-Blatt mit Buchungen und Flst."; 630 566 EinBlatt(true); 631 567 632 /* alte Version (ohne die Function)) 633 if (EinBlatt(true) == 1) { // darauf genau eine Buchung 634 $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 635 $trans="Grundbuch-Blatt und 1 Buchung"; 636 EinGrundstueck(false); 637 } 638 */ 639 640 } elseif(isset($ag)) { // Key des Amtsgerichtes 641 #if ($debug >= 2) {echo "<p class='dbg'>Link Amtsgericht=".$ag."</p>";} 568 } elseif($ag != "") { // Key des Amtsgerichtes 642 569 $trans="GB-Bezirke zum Amtsgericht"; 643 ListAG( "'".$ag."'" ); // noch mal Kopfzeile 644 ListGBBez("'".$ag."'", false); 645 646 } else { // Kein Self-Link, Eingabe im Formular 570 ListGBBez($ag); 571 572 } else { // Eingabe im Formular 647 573 648 574 switch ($kennztyp) { … … 652 578 break; 653 579 case 1: // Eingabe Bezirk-Name (-Teil) -> gefilterte Liste der Bezirke 654 $trans=" Grundbuchbezirke gefiltert";580 $trans="Bezirke suchen \"".$gbkennz."\""; 655 581 $beznr=SuchGBBezName(); 656 582 if ($beznr > 0) { // eindeutig … … 670 596 if (EinBlatt(true) == 1) { // darauf genau eine Buchung 671 597 $trans="GB-Blatt und 1 Buchung"; 672 $ gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen598 $buchunggml=gml_buchungsstelle(); // gml_id zum Kennzeichen 673 599 EinGrundstueck(false); 674 600 } 675 601 } 676 602 break; 677 case 4: // Eingabe Buchung (Grundstueck) -> Liste der Flurstuecke 678 $trans="Flurst. zur Buchungsstelle"; 679 $gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen 680 if ($gbuchung != "") { // .. wurde geliefert 681 $trans="Buchungsstelle und 1 Flurst."; 682 EinGrundstueck(true); 603 case 4: // Eingabe Buchung (GrundstÃŒck) -> Liste der FlurstÃŒcke 604 $buchunggml=gml_buchungsstelle(); // gml_id zum Kennzeichen 605 if ($buchunggml != "") { // .. wurde geliefert 606 $trans="Flurst. zur Buchungsstelle (Eingabe)"; 607 EinGrundstueck(true); // mit Backlink 608 } else{ 609 $trans="Suche Buchungsstelle"; 683 610 } 684 611 break;
Note: See TracChangeset
for help on using the changeset viewer.