Changeset 282 for trunk/mapbender/http/nav/alkisnav_fkt.php
- Timestamp:
- 05/08/13 09:04:34 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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>";
Note: See TracChangeset
for help on using the changeset viewer.