Changeset 128 for trunk/data
- Timestamp:
- 11/16/11 15:29:32 (12 years ago)
- Location:
- trunk/data/mapbender/http/nav
- Files:
-
- 3 added
- 2 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/mapbender/http/nav/alkisnav_fls.php
r126 r128 9 9 07.11.2011 optional auch Historische FS suchen, Link auf Buchauskunft-Modul alkisfshis.php 10 10 09.11.2011 "h" hinter Flur oder FlurstÃŒck sucht sofort in Historie 11 Ausgabe Flur in Varianten aktuell/historisch mit gegenseitigen Verweisen 12 ToDo:13 Hist: Gemarkung entschlÃŒsseln14 Hist: die Nachfolger-Liste gleich in der DB nachschlagen, und aktuelle FS als solche anzeigen15 Hist: Icons fÃŒr Link (mit Pfeil), Icons H/O unterscheiden11 Ausgabe Flur in Varianten aktuell/historisch mit gegenseitigen Verweisen 12 11.11.2011 Nachfolger-Liste in der DB nachschlagen, und aktuelle FS als solche kennzeichnen 13 neue Icons fÃŒr Link mit Pfeil 14 Differenzierung mit/ohne Raumbezug bei Icons fuer Histor. FS 15 Gemarkung- und Flur-Zeile vor einzelnem FlurstÃŒck ausgeben 16 16 */ 17 17 import_request_variables("PG"); … … 44 44 // Wenn ja, dann Schalter setzen und nur numerischen Teil zurÃŒck geben. 45 45 global $phist, $debug; 46 // if ($debug >= 2) {echo "<p class='dbg'>Teilen '".$zahl."'</p>";} 47 $zahl=trim($zahl); 46 $zahl=trim($zahl); 48 47 $zlen=strlen($zahl) - 1; 49 if ($zlen > 0) { 48 if ($zlen > 0) { 50 49 $hinten = ucfirst(substr($zahl, $zlen, 1)); 51 50 if ($hinten == "H" ) { … … 57 56 } 58 57 } 59 // if ($debug >= 2) {echo "<p class='dbg'>Teile '".$vorn."'/'".$hinten."'</p>";}60 58 return $zahl; 61 59 } … … 100 98 } 101 99 100 function gemkg_zeile($zgemkg) { 101 // Eine Zeile zu Gemarkung ausgeben, SchlÃŒssel wird ÃŒbergeben, Name in DB nachschlagen 102 global $con, $gkz, $gemeinde, $epsg; 103 $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; 104 $v=array($zgemkg); 105 $res=pg_prepare("", $sql); 106 $res=pg_execute("", $v); 107 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";} 108 $zgmk=0; 109 while($row = pg_fetch_array($res)) { // eigentlich nur EINE 110 $gmkg=$row["bezeichnung"]; 111 $zgmk++; 112 echo "\n<div class='gk' title='Gemarkung'>"; 113 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 114 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>"; 115 echo "\n</div>"; 116 } 117 if ($zgmk == 0) { 118 echo "\n<div class='gk' title='Gemarkung'>"; 119 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 120 echo " Gemarkung ".$zgemkg." ist unbekannt.</p>"; 121 echo "\n</div>"; 122 return; 123 } 124 return 0; 125 } 126 127 function flur_zeile($zgemkg, $zflur) { 128 // Eine Zeile zur Flur ausgeben 129 global $con, $gkz, $gemeinde, $epsg; 130 echo "\n<div class='fl' title='Flur'>"; 131 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 132 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."-".$zflur; 133 echo "Flur <a href='".$url."'>".$zflur."</a>"; 134 //echo "<span class='hislnk'>"; 135 echo " <a class='hislnk' title='Historische Flurstücke' href='".$url."&hist=j'>Hist.</a>"; 136 echo "\n</div>"; 137 return 0; 138 } 139 102 140 function ListGemeinden() { 103 141 // bei Leereingabe die Gemeinden anlisten 104 142 global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 105 143 $linelimit=50; … … 252 290 253 291 function EineGemarkung($AuchGemkZeile) { 254 292 // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 255 293 global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg; 256 294 $linelimit=120; // max. Fluren je Gemarkung … … 303 341 } 304 342 305 function gemkg_zeile($zgemkg) {306 // Zeile zu Gemarkung ausgeben, gkg-schlÃŒssel ÃŒbergeben307 308 global $con, $gkz, $gemeinde, $epsg;309 310 $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;";311 $v=array($zgemkg);312 $res=pg_prepare("", $sql);313 $res=pg_execute("", $v);314 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";}315 $zgmk=0;316 while($row = pg_fetch_array($res)) {317 $gmkg=$row["bezeichnung"];318 $zgmk++;319 }320 if ($zgmk == 0) {321 echo "\n<div class='gk' title='Gemarkung'>";322 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>";323 echo " Gemarkung ".$zgemkg." ist unbekannt.</p>";324 echo "\n</div>";325 return;326 }327 echo "\n<div class='gk' title='Gemarkung'>";328 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>";329 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>";330 echo "\n</div>";331 return 0;332 }333 334 343 function EineFlur() { 335 344 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, dazu aktuelle FlurstÃŒcke suchen 336 345 global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $zgemkg, $zflur; 337 346 $linelimit=600; // Wie groà kann eine Flur sein? 338 339 347 gemkg_zeile($zgemkg); 340 echo "\n<div class='fl' title='Flur'>"; 341 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 342 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."-".$zflur; 343 echo "Flur <a href='".$url."'>".$zflur."</a>"; 344 //echo "<span class='hislnk'>"; 345 echo " <a class='hislnk' title='Historische Flurstücke' href='".$url."&hist=j'>Hist.</a>"; 346 echo "\n</div>"; 348 flur_zeile($zgemkg, $zflur); 347 349 348 350 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; … … 350 352 $sql.="x(st_Centroid(f.wkb_geometry)) AS x, "; 351 353 $sql.="y(st_Centroid(f.wkb_geometry)) AS y "; 352 } 353 else { 354 } else { 354 355 $sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 355 356 $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; … … 390 391 391 392 function HistFlur() { 392 393 // Die Flur nach Historischen FlurstÃŒcken durchsuchen393 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben 394 // Die Flur nach historischen FlurstÃŒcken durchsuchen 394 395 global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $land, $zgemkg, $zflur; 395 $linelimit= 400;396 $linelimit=500; 396 397 397 398 gemkg_zeile($zgemkg); … … 421 422 $fskenn=$row["zaehler"]; 422 423 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 423 424 //++ if ($ftyp == "h") { } else { } // versch. Icons? h: Karte Pos.? 425 echo "\n<div class='hi' title='Historisches Flurstück'>"; // Zeile 424 if ($ftyp == "h") { 425 $ico="Flurstueck_Historisch_Lnk.ico"; 426 $titl="Historisches Flurstück"; 427 } else { 428 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 429 $titl="Historisches Flurstück ohne Raumbezug"; 430 } // h: Karte Pos.? 431 echo "\n<div class='hi' title='".$titl."'>"; // Zeile 426 432 // Icon -> Bauchauskunft 427 433 echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisfshist.php?gkz=".$gkz."&gmlid=".$fs_gml."'>"; 428 echo "\n\t\t<img class='nwlink' src='ico/ Flurstueck_Historisch.ico' width='16' height='16' alt='Hist'>";434 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 429 435 echo "\n\t</a> "; 430 436 // Kennzeichen -> weiter in die Historie hinein … … 443 449 444 450 function EinFlurstueck() { 445 // FlurstÃŒckskennzeichenkomplett bis zum Zaehler eingegeben446 451 // FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler eingegeben 452 // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler 447 453 global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $fskennz, $zgemkg, $zflur, $zzaehler, $znenner; 454 455 gemkg_zeile($zgemkg); 456 flur_zeile($zgemkg, $zflur); 448 457 449 458 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; … … 454 463 else { 455 464 $sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 456 $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 457 } 458 459 $sql.="g.bezeichnung "; 460 $sql.="FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 465 $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 466 } 467 $sql.="FROM ax_flurstueck f "; 461 468 $sql.="WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; 462 469 If ($znenner != "") {$sql.="AND f.nenner=".$znenner." ";} // wie prepared? 463 $sql.="ORDER BY f.zaehler, f.nenner;"; // WHERE f.land= ?470 $sql.="ORDER BY f.zaehler, f.nenner;"; 464 471 $v=array($zgemkg, $zflur, $zzaehler); 465 472 $res=pg_prepare("", $sql); … … 469 476 while($row = pg_fetch_array($res)) { 470 477 $fs_gml=$row["gml_id"]; 471 $gmkg=$row["bezeichnung"];472 478 $flur=$row["flurnummer"]; 473 479 $fskenn=$row["zaehler"]; … … 484 490 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 485 491 echo "onmouseout='parent.parent.hideHighlight()'>"; 486 echo $ gmkg." ".$flur."-".$fskenn."</a>";492 echo $fskenn."</a>"; 487 493 echo "\n</div>"; 488 494 $zfs++; … … 490 496 if($zfs == 0) { 491 497 echo "\n<p class='err'>Kein aktuelles Flurstück.</p>"; 492 493 498 // Soll in der Historie weiter gesucht werden? 494 499 echo "\n<div class='hi' title='Historie'>"; … … 505 510 global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $land, $zgemkg, $zflur, $zzaehler, $znenner; 506 511 512 gemkg_zeile($zgemkg); 513 flur_zeile($zgemkg, $zflur); 514 507 515 // Suche ueber das Flurstueckskennzeichen, gml ist meist unbekannt 508 516 $whcl.="WHERE flurstueckskennzeichen= $1 "; 509 510 517 $sql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, null as nachf FROM ax_flurstueck ".$whcl; 511 518 $sql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; … … 533 540 534 541 if ($ftyp == "a") { // aktuelles FS gefunden, Koordinate holen 535 $sql ="SELECT "; 542 543 // BEGINN +++ als function ? 544 $sqlk ="SELECT "; 536 545 if($epsg == "25832") { // Transform nicht notwendig 537 $sql .="x(st_Centroid(wkb_geometry)) AS x, ";538 $sql .="y(st_Centroid(wkb_geometry)) AS y ";546 $sqlk.="x(st_Centroid(wkb_geometry)) AS x, "; 547 $sqlk.="y(st_Centroid(wkb_geometry)) AS y "; 539 548 } else { 540 $sql .="x(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS x, ";541 $sql .="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y ";549 $sqlk.="x(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS x, "; 550 $sqlk.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y "; 542 551 } 543 $sql .="FROM ax_flurstueck WHERE gml_id= $1 ";552 $sqlk.="FROM ax_flurstueck WHERE gml_id= $1 "; 544 553 $v=array($fs_gml); 545 $res =pg_prepare("", $sql);546 $res =pg_execute("", $v);547 if (!$res ) {echo "\n<p class='err'>Fehler bei Koordinate.</p>";}548 $zfs =0;549 while($row = pg_fetch_array($res)) {550 $x=$row ["x"];551 $y=$row ["y"];552 $zfs ++;554 $resk=pg_prepare("", $sqlk); 555 $resk=pg_execute("", $v); 556 if (!$resk) {echo "\n<p class='err'>Fehler bei Koordinate.</p>";} 557 $zfsk=0; 558 while($rowk = pg_fetch_array($resk)) { 559 $x=$rowk["x"]; 560 $y=$rowk["y"]; 561 $zfsk++; 553 562 } 554 if ($zfs == 0) {echo "\n<p class='err'>Kein Treffer bei Koordinate.</p>";} 563 if ($zfsk == 0) {echo "\n<p class='err'>Kein Treffer bei Koordinate.</p>";} 564 // ENDE +++ als function ? 565 555 566 echo "\n<p>aktueller Nachfolger:</p>"; 556 567 echo "\n<div class='fs' title='Aktuelles Nachfolger-Flurstück'>"; // Zeile … … 567 578 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 568 579 echo "onmouseout='parent.parent.hideHighlight()'>"; 569 echo $gmkg." ".$flur."-".$fskenn."</a>"; 580 // echo $flur."-".$fskenn."</a>"; 581 echo $fskenn."</a>"; 570 582 571 583 echo "\n</div>"; 572 584 573 585 } else { // Historisches FS gefunden (h oder o) 574 echo "\n<p>Historisches Flurstück:</p>"; 575 576 // Zeile 577 echo "\n<div class='hi' title='Historisches Flurstück'>"; 586 // echo "\n<p>Historisches Flurstück:</p>"; 587 588 if ($ftyp == "h") { 589 $ico="Flurstueck_Historisch_Lnk.ico"; 590 $titl="Historisches Flurstück"; 591 } else { 592 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 593 $titl="Historisches Flurstück ohne Raumbezug"; 594 } // h: Karte Pos.? 595 echo "\n<div class='hi' title='".$titl."'>"; 578 596 echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisfshist.php?gkz=".$gkz."&gmlid=".$fs_gml."'>"; 579 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt='Hist'>"; 580 echo "\n\t</a> "; 581 echo "\n\t ".$gknr."-".$flur."-".$fskenn."</a>"; 597 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>"; 598 echo "\n\t</a> Historisches Flst. ".$fskenn."</a>"; 582 599 echo "\n</div>"; 583 600 584 // Nachfolger ermitteln585 601 if ($nachf == "") { 586 602 echo "\n<p class='err'>keine Nachfolger</p>"; 587 603 } else { 588 echo "\n<p>Nachfolger-Flurstücke:</p>"; 604 echo "\n<p>Nachfolger-Flurstücke:</p>"; 605 // Die direkten Nachfolger ermitteln 606 // Nachfolger in DB suchen um den Status aktuell/historisch zu ermitteln 589 607 $stri=trim($nachf, "{}"); 590 $arr = split(",",$stri); 591 foreach($arr AS $val){ 592 $fst=rtrim($val,"_"); 593 $zer=substr ($fst, 2, 4)."-".ltrim(substr($fst, 6, 3), "0")."-".ltrim(substr($fst, 9, 5),"0"); 594 $nenn=ltrim(substr($fst, 14), "0"); 595 if ($nenn != "") {$zer.="/".$nenn;} 596 597 // +++ besser: array in Where kennz in ( , , ) umwandeln 598 // aktuelle FS gleich als solche anzeigen 599 600 // Zeile Nachfolger 601 echo "\n<div class='hn' title='Historie Nachfolger'>"; 602 603 // Icon -> Nachweis 604 echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisfshist.php?gkz=".$gkz."&fskennz=".$val."'>"; 605 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.ico' width='16' height='16' alt='Hist'>"; 608 $stri="'".str_replace(",", "','", $stri)."'"; 609 // $whcln.="WHERE flurstueckskennzeichen IN ( $1 ) "; 610 $whcln.="WHERE flurstueckskennzeichen IN ( ".$stri." ) "; 611 $sqln ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$whcln; 612 $sqln.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$whcln; 613 $sqln.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$whcln; 614 // $v=array($stri); 615 $v=array(); 616 $resn=pg_prepare("", $sqln); 617 $resn=pg_execute("", $v); 618 if (!$resn) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";} 619 $zfsn=0; 620 while($rown = pg_fetch_array($resn)) { 621 $ftypn=$rown["ftyp"]; 622 $na_gml=$rown["gml_id"]; 623 $gknrn=$rown["gemarkungsnummer"]; 624 $flurn=$rown["flurnummer"]; 625 $fskennn=$rown["zaehler"]; 626 if ($rown["nenner"] != "") {$fskennn.="/".$rown["nenner"];} 627 628 switch ($ftypn) { 629 case "a": 630 $ico="Flurstueck_Link.ico"; 631 $titl="Aktuelles Flurstück"; 632 $hisparm=""; 633 $auskprog="alkisfsnw"; 634 // ++ Koordinaten holen? siehe oben "als function" 635 break; 636 case "h": 637 $ico="Flurstueck_Historisch_Lnk.ico"; 638 $titl="Historisches Flurstück"; 639 $hisparm="&hist=j"; 640 $auskprog="alkisfshist"; 641 break; 642 case "o": 643 $ico="Flurstueck_Historisch_oR_Lnk.ico"; 644 $titl="Historisches Flurstück ohne Raumbezug"; 645 $hisparm="&hist=j"; 646 $auskprog="alkisfshist"; 647 break; 648 } 649 $fs=$gknrn."-".$flurn."-".$fskennn; 650 echo "\n<div class='hn' title='Nachfolger: ".$titl."'>"; 651 echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath.$auskprog.".php?gkz=".$gkz."&gmlid=".$na_gml."'>"; 652 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS'>"; 606 653 echo "\n\t</a> "; 607 608 // Kennzeichen -> weiter in die Historie hinein609 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zer."&hist=j'>".$zer."</a>"; 610 611 echo "\n</div><br>";654 echo "Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$fs.$hisparm."'>".$fskennn."</a>"; 655 echo "\n</div>"; 656 657 $zfsn++; 658 // Kontrollieren: Wurden auch so viele FS in DB gefunden, wie im Array "Where in()" standen? 612 659 } 660 if ($zfsn == 0) { 661 echo "<p class='err'>keine Nachfolger gefunden</p>"; 662 if ($debug > 1) {echo "<p class='dbg'>SQL=<br>".$sqln."<br>Liste=<br> ".$stri."</p>";} 663 } 613 664 } 614 665 }
Note: See TracChangeset
for help on using the changeset viewer.