Changeset 330 for trunk/mapbender
- Timestamp:
- 09/10/14 12:08:18 (10 years ago)
- Location:
- trunk/mapbender
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/conf/alkisnav_conf.php
r278 r330 1 1 <?php 2 /* 3 ALKIS-PostGIS-Datenbank aus Konverter PostNAS 0. 72 /* Einstellungen fuer Mapbender-Navigation mit ALKIS-Daten 3 ALKIS-PostGIS-Datenbank aus Konverter PostNAS 0.8 4 4 krz Mi.-Ra./Li. 5 201 3-04-26 ALKIS 075 2014-09-10 PostNAS 0.8: ohne "alkis_beziehungen" 6 6 */ 7 7 … … 10 10 $port="5432"; 11 11 $dbname="alkis"; // .$dbvers.$gkz - Mandant 12 $dbvers="0 7"; // 05 oder 06 (steuert Format von .lage)12 $dbvers="08"; // 05 oder 06 (steuert Format von .lage) 13 13 $user="***"; 14 14 $password="***"; … … 24 24 25 25 # default-Koordinatensystem der GUI 26 $gui_epsg= 31467;26 $gui_epsg=25832; 27 27 28 28 # Landes-Kennung -
trunk/mapbender/http/nav/alkisnav_adr.php
r309 r330 8 8 2013-05-15 Gruppierung nach Gemeinde, mehrfache HsNr (ap_pto.advstandardmodell) unterdrÃŒcken, Icon f. StraÃe 9 9 2014-01-23 Link zum Auskunft-Modul fÃŒr StraÃe 10 2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 11 10 12 ToDo: 11 13 - Gruppierung (mit Zeile) der StraÃenliste nach Gemeinde … … 62 64 } 63 65 $sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage "; 64 $sql.="FROM ax_lagebezeichnungkatalogeintrag ask ";66 $sql.="FROM ax_lagebezeichnungkatalogeintrag k "; 65 67 $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 "; 66 $sql.="WHERE k.bezeichnung ILIKE $1 ";68 $sql.="WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 67 69 switch ($gfilter) { 68 70 case 1: // Einzelwert 69 $sql.="AND k.gemeinde= ".$gemeinde."";71 $sql.="AND k.gemeinde='".$gemeinde."' "; 70 72 break; 71 73 case 2: // Liste 72 $sql.="AND k.gemeinde in (". $gemeinde.") ";74 $sql.="AND k.gemeinde in (".str_replace(",", "','", $gemeinde).") "; 73 75 break; 74 76 default: // kein Filter … … 79 81 $res=pg_prepare("", $sql); 80 82 $res=pg_execute("", $v); 81 if (!$res) {return "\n<p class='err'>Fehler bei Name</p>";} 83 84 if (!$res) { 85 echo "\n<p class='err'>Fehler bei Name</p>"; 86 if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<p>";} 87 return; 88 } 89 82 90 $cnt = 0; 83 91 $gwgem=""; … … 134 142 switch ($gfilter) { 135 143 case 1: // Einzelwert 136 $sql.="AND k.gemeinde= ".$gemeinde."";144 $sql.="AND k.gemeinde='".$gemeinde."' "; 137 145 break; 138 146 case 2: // Liste 139 $sql.="AND k.gemeinde in ( ".$gemeinde.") ";147 $sql.="AND k.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; 140 148 break; 141 149 } 142 150 $sql.="ORDER BY k.lage, k.bezeichnung LIMIT $2 ;"; 151 143 152 $v=array($match,$linelimit); 144 153 $res=pg_prepare("", $sql); 145 154 $res=pg_execute("", $v); 146 if (!$res) {return "\n<p class='err'>Fehler bei Schlüssel</p>";} 155 if (!$res) { 156 echo "\n<p class='err'>Fehler bei Schlüssel</p>"; 157 return; 158 } 147 159 $cnt = 0; 148 160 while($row = pg_fetch_array($res)) { … … 173 185 echo "</div>"; 174 186 // function ende 187 175 188 $cnt++; 176 189 } … … 196 209 $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 "; 197 210 $sql.="WHERE k.schluesselgesamt = $1 LIMIT 1"; 211 198 212 $v=array($str_schl); // Schluessel-Gesamt .. 199 213 $res=pg_prepare("", $sql); 200 214 $res=pg_execute("", $v); 215 if (!$res) { 216 echo "\n<p class='err'>Fehler bei Name zum Straßenschlüssel</p>"; 217 if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<p>";} 218 return; 219 } 220 201 221 if($row = pg_fetch_array($res)) { // .. gefunden 202 222 $kgml=$row["kgml"]; // ID aus Katalog … … 220 240 } 221 241 $sqlko.="FROM ax_lagebezeichnungohnehausnummer o "; 222 $sqlko.="JOIN alkis_beziehungen v ON o.gml_id=v.beziehung_zu "; 223 $sqlko.="JOIN ax_flurstueck f ON v.beziehung_von=f.gml_id "; 242 $sqlko.="JOIN ax_flurstueck f ON o.gml_id = ANY(f.zeigtauf) "; 224 243 $sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 "; 225 $sqlko.=" AND v.beziehungsart='zeigtAuf'LIMIT 1;"; // die erstbeste Koordinate244 $sqlko.="LIMIT 1;"; // die erstbeste Koordinate 226 245 $v=array($land,$regb,$kreis,$gemnd,$nr); 227 246 $resko=pg_prepare("", $sqlko); … … 277 296 $sql.="avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y "; 278 297 } 279 $sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von "; 280 $sql.="JOIN ax_lagebezeichnungmithausnummer h ON v.beziehung_zu = h.gml_id "; 281 $sql.="WHERE v.beziehungsart='dientZurDarstellungVon' AND p.art = 'HNR' "; 282 $sql.="AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 298 $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON h.gml_id = ANY(p.dientzurdarstellungvon) "; 299 $sql.="WHERE p.art = 'HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 283 300 $sql.="GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2) "; 284 301 $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; … … 293 310 $resh=pg_prepare("", $sql); 294 311 $resh=pg_execute("", $v); 295 #echo "<p class='dbg'>SQL='".$sql."'<br>Array=".$v[]."</p>"; // TEST 312 if (!$resh) { 313 echo "\n<p class='err'>Fehler bei Häuser zum Straßenschlüssel</p>"; 314 if ($debug > 2) {echo "<p class='dbg'>SQL='".$sql."'<br>Array=".$v."</p>";} 315 return; 316 } 296 317 297 318 $cnt=0; … … 347 368 348 369 // +++ Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage": 349 // 370 // Numerisch: Gem-Str-Haus-lfd 350 371 351 372 if ($str_schl != "") { // aus Link -
trunk/mapbender/http/nav/alkisnav_eig.php
r315 r330 12 12 2013-05-14 Hervorhebung aktuelles Objekt, Parameter "gbkennz" auswerten, 13 13 Title auch auf Icon, IE zeigt sonst alt= als Title dar. 14 2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 14 15 */ 15 16 $cntget = extract($_GET); … … 60 61 function personendaten() { // Adresse und Geburtsdatum der aktuellen Person ausgeben 61 62 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug 63 62 64 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, "; 63 65 $sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer "; 64 $sql.="FROM ax_person p LEFT JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von "; 65 $sql.="LEFT JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu WHERE p.gml_id= $1 ;"; 66 $sql.="FROM ax_person p LEFT JOIN ax_anschrift a ON a.gml_id = ANY(p.hat) "; 67 $sql.="WHERE p.gml_id= $1 AND p.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 68 // Es wird nur eine Zeile ausgewertet 69 66 70 $v=array($person); 67 71 $res=pg_prepare("", $sql); … … 126 130 $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; 127 131 switch ($gfilter) { 128 case 1: // Einzel wert129 $sql.="g.gemeinde= ".$gemeinde."AND "; break;132 case 1: // Einzel 133 $sql.="g.gemeinde='".$gemeinde."' AND "; break; 130 134 case 2: // Liste 131 $sql.="g.gemeinde in ( ".$gemeinde.") AND "; break;135 $sql.="g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') AND "; break; 132 136 } 133 137 } else { … … 189 193 // Suche nach GrundbÃŒchern der Person 190 194 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam "; 191 $sql.="FROM alkis_beziehungen bpn "; 192 $sql.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id "; 193 $sql.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von "; 194 $sql.="JOIN ax_buchungsblatt gb ON bng.beziehung_zu=gb.gml_id "; 195 $sql.="FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon = gb.gml_id "; 195 196 $sql.="JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk = b.bezirk "; 196 $sql.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon'";197 $sql.="WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL "; 197 198 198 199 // Parameter $gbkennz, z.B. nach Klick auf Zeile "Bezirk" 199 200 if ($kennztyp > 1) { // 2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR 200 201 #if ($debug > 0) {echo "<p class='dbg'>Filter Bezirk '".$zgbbez."'<p>";} 201 $sql.="AND b.bezirk = ".$zgbbez."";202 $sql.="AND b.bezirk='".$zgbbez."' "; 202 203 $bezirkaktuell = true; 203 204 } else { … … 308 309 // Stufe 2 und 3 nacheinander verwendet werden. Dies ist wahrscheinlich ÃŒbersichtlicher, 309 310 // weil "ungefiltert" in "2+3" zu lange Listen entstehen wÃŒrden, die durchblÀttert werden mÃŒssen. 311 310 312 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht, $kennztyp, $zgbbez; 311 313 $linelimit=80; // als Limit "Anzahl FlurstÃŒcke" in den beiden folgenden Abfragen … … 314 316 personendaten(); 315 317 316 // Wenn das Limit ÃŒberschritten wurde: zusÀtzliche Parameter "blt"=BlÀttern 317 // $bltbez = Bezirk-Name318 // $bltblatt = BlattMitBuchstabe319 // $bltbvnr = lfd.Nr der Buchungsstelle320 // $bltseite = fortlaufende Seiten-Nr321 // $bltrecht = "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung318 // Wenn das Limit ÃŒberschritten wurde: zusÀtzliche Parameter "blt"=BlÀttern: 319 // - $bltbez = Bezirk-Name 320 // - $bltblatt = BlattMitBuchstabe 321 // - $bltbvnr = lfd.Nr der Buchungsstelle 322 // - $bltseite = fortlaufende Seiten-Nr 323 // - $bltrecht = "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung 322 324 323 325 // SQL-Bausteine vorbereiten 324 // Direkte Buchungen suchen mit: $sql1 + 325 // SonderfÀlle suchen mit: $sql1 + $sql z + $sqla2 + $sql2326 327 // Baustein : SQL-Anfang fuer beide Varianten326 // Direkte Buchungen suchen mit: $sql1 + $sqla1 + $sql2 327 // SonderfÀlle suchen mit: $sql1 + $sqla2 + $sql2 328 329 // Baustein 1: SQL-Anfang fuer beide Varianten 328 330 $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam, "; 329 331 $sql1.="s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemarkung, ot.gemarkungsname, "; … … 335 337 $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y "; 336 338 } 337 $sql1.="FROM alkis_beziehungen bpn "; 338 $sql1.="JOIN ax_namensnummer nn ON bpn.beziehung_von=nn.gml_id "; 339 $sql1.="JOIN alkis_beziehungen bng ON nn.gml_id=bng.beziehung_von "; 340 $sql1.="JOIN ax_buchungsblatt gb ON bng.beziehung_zu=gb.gml_id "; 341 $sql1.="JOIN alkis_beziehungen vbg ON gb.gml_id=vbg.beziehung_zu "; 342 $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von=s1.gml_id "; 343 $sql1.="JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; // quer-ab 344 345 // Baustein: Zwischen-JOIN (nur bei zweiter Abfrage) 346 $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von=s1.gml_id "; 347 $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu=s2.gml_id "; 348 349 // Baustein: Auswahl 1 oder 2 350 $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id=vfb.beziehung_zu "; 351 $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id=vfb.beziehung_zu "; 352 353 // Baustein: SQL-Ende fuer beide Varianten 354 $sql2.="JOIN ax_flurstueck f ON vfb.beziehung_von=f.gml_id "; 355 $sql2.="JOIN pp_gemarkung ot ON f.land=ot.land AND f.gemarkungsnummer=ot.gemarkung "; // Ortsteil 356 $sql2.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' "; 357 $sql2.="AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 339 340 // NamenNummer >istbestandteilvon> buchungsblatt <istbestandteilvon< buchungsstelle-1 341 $sql1.="FROM ax_namensnummer nn "; 342 $sql1.="JOIN ax_buchungsblatt gb ON gb.gml_id = nn.istbestandteilvon "; 343 $sql1.="JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; 344 $sql1.="JOIN ax_buchungsstelle s1 ON gb.gml_id = s1.istbestandteilvon "; 345 346 // Baustein A: Auswahl 1 oder 2 347 // buchungsstelle-1 <istGebucht< FS 348 $sqla1 ="JOIN ax_flurstueck f ON s1.gml_id = f.istgebucht "; 349 350 // buchungsStelle1 (herr.) >an> buchungsStelle2 (dien.) <istGebucht< FS 351 $sqla2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id = ANY(s1.an) "; 352 $sqla2.="JOIN ax_flurstueck f ON s2.gml_id = f.istgebucht "; 353 354 // Baustein 2: SQL-Ende fuer beide Varianten 355 $sql2 ="JOIN pp_gemarkung ot ON f.land=ot.land AND f.gemarkungsnummer=ot.gemarkung "; // Ortsteil 356 $sql2.="WHERE nn.benennt = $1 AND nn.endet IS NULL AND gb.endet IS NULL AND s1.endet IS NULL AND f.endet IS NULL "; 357 // AND s2.endet IS NULL 358 358 359 359 // Parameter $gbkennz nach Klick auf Zeile "Bezirk" … … 368 368 switch ($gfilter) { // Gemeinde-Filter 369 369 case 1: // Einzelwert 370 $sql2.="AND ot.gemeinde= ".$gemeinde.""; break;370 $sql2.="AND ot.gemeinde='".$gemeinde."' "; break; 371 371 case 2: // Liste 372 $sql2.="AND ot.gemeinde in ( ".$gemeinde.") "; break;372 $sql2.="AND ot.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 373 373 } 374 374 $sql3 ="ORDER BY b.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; … … 400 400 // FÀlle ohne "Rechte an" 401 401 if ($bltrecht != "nur") { // "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung 402 // Blatt < vbg/istBestandteilVon< Buchungsstelle <vfb/istGebucht< Flurstck.402 // Blatt <istBestandteilVon< Buchungsstelle <istGebucht< Flurstck. 403 403 $sql=$sql1.$sqla1.$sql2.$bltwhere.$sql3; // Direkte Buchungen 404 404 $v=array($person, $linelimit); … … 407 407 if (!$res) { 408 408 echo "\n<p class='err'>Fehler bei Buchung und Flurstück.</p>"; 409 if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<p>";} 409 410 return; 410 411 } 412 411 413 $zfs1=0; 412 414 $gwbez=""; … … 446 448 if ($bltseite > 1) {echo "weitere ";} 447 449 echo $zfs1." Flurstücke"; 450 448 451 // B l À t t e r n (eine Folgeseite anbieten) 449 452 $nxtbltbez=urlencode($beznam); … … 473 476 if ($bltrecht != "ohne") { // "nur"/"ohne" liefert nur den abgebrochene Teil der Auflistung 474 477 // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen 475 // buchungsStelle2 < an< buchungsStelle1476 $sql=$sql1.$sql z.$sqla2.$sql2.$bltwhere.$sql3; // Rechte an478 // buchungsStelle2 <an< buchungsStelle1 479 $sql=$sql1.$sqla2.$sql2.$bltwhere."AND s2.endet IS NULL ".$sql3; // Rechte an 477 480 $v=array($person, $linelimit); 478 481 $res=pg_prepare("", $sql); … … 484 487 $zfs2=0; 485 488 $gwbez=""; 486 #gwgb="";487 489 while($row = pg_fetch_array($res)) { 488 490 $bezirk=$row["bezirk"]; … … 505 507 $gwbv = $bvnr; 506 508 $bsgml=$row["bsgml"]; 507 zeile_buchung($bsgml, $bvnr, "", true, false); // Recht an ... 509 zeile_buchung($bsgml, $bvnr, "", true, false); // Recht an ... // ohne Link! 508 510 # zeile_buchung($bsgml, $bvnr, $bezirk."-".$blatt, true, false); // Recht an ... 509 511 } … … 577 579 } elseif($person != "") { // GrundbÃŒcher zur Person 578 580 // Das Programm hat sich selbst verlinkt aus einer Liste der Personen zu einer Suchmaske. 579 if ($debug >= 2) {echo "\n<p class='dbg'>Gemeinde-Filter-Steuerung = '".$gfilter."'</p>";}581 //if ($debug >= 2) {echo "\n<p class='dbg'>Gemeinde-Filter-Steuerung = '".$gfilter."'</p>";} 580 582 581 583 // Die Filtereinstellung beeinflusst die Such-Strategie: -
trunk/mapbender/http/nav/alkisnav_fkt.php
r315 r330 4 4 2013-05-14 Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar. 5 5 2013-05-15 Function verlegt 6 2014-02-06 Korrektur zeile_person 6 2014-02-06 Korrektur zeile_person 7 2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 7 8 */ 8 9 9 // function Typ "zeile_**" = Ausgabe eines Knotens10 // - Icon, ggf. mit Link zur Buchauskunft11 // - Zeile, ggf. mit Link zur weiteren Auflösung untergeordneter Knoten12 // Hierin die Encodierung fÃŒr url und HTML.13 14 10 function is_ne_zahl($wert) { 15 // Pr ueft, ob ein Wert ausschlieÃlich aus den Zahlen 0 bis 9 besteht11 // PrÃŒft, ob ein Wert ausschlieÃlich aus den Zahlen 0 bis 9 besteht 16 12 if (trim($wert, "0..9") == "") {return true;} else {return false;} 17 13 } … … 74 70 } 75 71 72 // function Typ "zeile_**" = Ausgabe eines Knotens 73 // - Icon, ggf. mit Link zur Buchauskunft 74 // - Zeile, ggf. mit Link zur weiteren Auflösung untergeordneter Knoten 75 // Hierin die Encodierung fÃŒr url und HTML. 76 76 77 function zeile_ag ($ag, $anr, $aktuell) { // Zeile A m t s g e r i c h t 77 78 global $gkz, $gemeinde, $epsg, $auskpath; … … 235 236 236 237 // SQL-Bausteine vorbereiten 237 // SQLvorne gleich238 // vorne gleich 238 239 $sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 239 240 if($epsg == "25832") { // Transform nicht notwendig … … 244 245 $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 245 246 } 246 $sql1.="g.gemarkung, g.gemarkungsname "; 247 $sql1.="FROM alkis_beziehungen vbg "; 248 $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id "; 249 250 // Zwischen-JOIN verschieden 251 $sqlz1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 247 $sql1.="g.gemarkung, g.gemarkungsname FROM ax_buchungsstelle s1 "; 248 249 // 2 Varianten zwischen 250 $sqlz1="JOIN ax_flurstueck f ON f.istgebucht = s1.gml_id "; 252 251 253 $sqlz2 ="JOIN a lkis_beziehungen vss ON vss.beziehung_von = s1.gml_id ";254 $sqlz2.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 255 $sqlz2.="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 256 257 // SQL hinten gleich 258 $sql2 ="JOIN ax_flurstueck f ON vfb.beziehung_von = f.gml_id ";252 $sqlz2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id = ANY(s1.an) "; // nur an oder "an" und "zu" ? 253 // Test: SELECT * FROM ax_buchungsstelle WHERE NOT zu IS NULL; // keine Treffer fÃŒr "zu" 254 // $sqlz2 ="JOIN ax_buchungsstelle s2 ON (s2.gml_id = ANY(s1.an) OR s2.gml_id = ANY(s1.zu)) "; 255 $sqlz2.="JOIN ax_flurstueck f ON f.istgebucht = s2.gml_id "; 256 257 // hinten gleich 259 258 $sql2.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 260 $sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht'";259 $sql2.="WHERE s1.istbestandteilvon = $1 "; 261 260 switch ($gfilter) { 262 261 case 1: // Einzelwert 263 $sql2.="AND g.gemeinde= ".$gemeinde.""; break;262 $sql2.="AND g.gemeinde='".$gemeinde."' "; break; 264 263 case 2: // Liste 265 $sql2.="AND g.gemeinde in ( ".$gemeinde.") "; break;264 $sql2.="AND g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 266 265 } 267 266 $sql2.="ORDER BY cast(s1.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; … … 276 275 if (!$res) { 277 276 echo "\n<p class='err'>Fehler bei Buchung und Flurstück.</p>"; 278 #if ($debug >= 3) {echo "\n<p class='err'>".$sql1.$sqlz1.$sql2."</p>";}277 if ($debug >= 3) {echo "\n<p class='err'>".$sql1.$sqlz1.$sql2."</p>";} 279 278 return; 280 279 } -
trunk/mapbender/http/nav/alkisnav_fls.php
r306 r330 2 2 /* Version vom 3 3 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4, 4 4 Fehlerkorrektur Komma in SQL bei FS-Suche. 5 5 2013-04-26 Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" 6 6 ZurÃŒck-Link, Titel der Transaktion anzeigen 7 7 2013-04-29 Test mit IE 8 8 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 9 9 2013-05-14 Variablen-Namen geordnet, Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar. 10 10 2013-10-15 missing Parameter 11 2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 11 12 */ 12 13 $cntget = extract($_GET); … … 114 115 $sqlk.="y(st_transform(st_Centroid(wkb_geometry), ".$epsg.")) AS y "; 115 116 } 116 $sqlk.="FROM ax_flurstueck WHERE gml_id= $1";117 $sqlk.="FROM ax_flurstueck WHERE gml_id= $1 AND endet IS NULL;"; 117 118 $v=array($gml); 118 119 $resk=pg_prepare("", $sqlk); … … 125 126 126 127 function zeile_gemarkung($gkgnr, $gkgname, $aktuell) { 127 128 // Eine Zeile zu Gemarkung ausgeben 128 129 global $con, $gkz, $gemeinde, $epsg, $gfilter; 129 130 if ($gkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen 130 $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 LIMIT 1;";131 $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 AND endet IS NULL LIMIT 1;"; 131 132 $v=array($gnr); 132 133 $res=pg_prepare("", $sql); … … 225 226 global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 226 227 $linelimit=60; 228 227 229 $sql ="SELECT gemeinde, gemeindename FROM pp_gemeinde "; 228 230 switch ($gfilter) { 229 231 case 1: // Einzelwert 230 $sql.="WHERE gemeinde= ".$gemeinde.""; break;232 $sql.="WHERE gemeinde='".$gemeinde."' "; break; 231 233 case 2: // Liste 232 $sql.="WHERE gemeinde in ( ".$gemeinde.") "; break;234 $sql.="WHERE gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 233 235 default: break; 234 236 } … … 311 313 switch ($gfilter) { 312 314 case 1: // Einzelwert 313 $sql.="AND g.gemeinde = ".$gemeinde.""; break;315 $sql.="AND g.gemeinde='".$gemeinde."' "; break; 314 316 case 2: // Liste 315 $sql.="AND g.gemeinde in (". $gemeinde.") "; break;317 $sql.="AND g.gemeinde in ("."'".str_replace(",", "','", $gemeinde)."'".") "; break; 316 318 } 317 319 $sql.=" ORDER BY s.gemeindename, g.gemarkungsname LIMIT $2 ;"; … … 379 381 // Body 380 382 $sql ="SELECT gemarkungsteilflur AS flur FROM ax_gemarkungsteilflur f "; 381 $sql.="WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;"; //WHERE f.land=?383 $sql.="WHERE gemarkung= $1 AND endet IS NULL ORDER BY gemarkungsteilflur LIMIT $2 ;"; //WHERE f.land=? 382 384 $v=array($zgemkg, $linelimit); 383 385 $res=pg_prepare("", $sql); … … 419 421 $sql.="st_y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 420 422 } 421 $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 ";423 $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND endet IS NULL "; 422 424 $sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land=? 423 425 $v=array($zgemkg, $zflur, $linelimit); … … 457 459 458 460 // Body 459 $whcl.="WHERE flurstueckskennzeichen like $1 ";461 $whcl.="WHERE flurstueckskennzeichen like $1 AND endet IS NULL "; 460 462 $sql ="SELECT 'h' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 461 463 $sql.="UNION SELECT 'o' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 462 464 $sql.="ORDER BY zaehler, nenner LIMIT $2 ;"; 463 465 $fskzwhere =$land.$zgemkg.str_pad($zflur, 3, "0", $STR_PAD_LEFT)."%"; 464 $v=array($fskzwhere, 466 $v=array($fskzwhere, $linelimit); 465 467 $res=pg_prepare("", $sql); 466 468 $res=pg_execute("", $v); … … 506 508 $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 507 509 } 508 510 $sql.="FROM ax_flurstueck f "; 509 511 $sql.="WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; 510 512 If ($znenner != "") {$sql.="AND f.nenner=".$znenner." ";} // wie prepared? 511 $sql.=" ORDER BY f.zaehler, f.nenner;";513 $sql.="AND endet IS NULL ORDER BY f.zaehler, f.nenner;"; 512 514 $v=array($zgemkg, $zflur, $zzaehler); 513 515 $res=pg_prepare("", $sql); … … 553 555 if ($znenner == "") { // Wenn kein Nenner angegeben wurde, 554 556 //wird mit Wildcard und like nach allen Nennern gesucht. 555 $fskzwhere.="____\_\_"; // fÃŒr like 556 // Das Wildcard-Zeichen "_" ist dummerweise mit FÃŒllzeichen im Feldinhalt identisch 557 $fskzwhere.="____\_\_"; // fÃŒr like 557 558 $whereop=" like "; 559 // Das Wildcard-Zeichen "_" ist mit Zeichen im Feldinhalt identisch 560 // "___" = hier kann auch ein Nenner stehen, "\_\_" hier mÃŒssen tatsÀchlich __ stehen. 561 // WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante 562 // z.B.: like '05265600400145____\_\_' 558 563 } else { // Ein Nenner wurde angegeben 559 564 $fskzwhere.=str_pad($znenner, 4, "0", $STR_PAD_LEFT)."__"; 560 565 $whereop=" = "; 561 566 } 562 $whcl.="WHERE flurstueckskennzeichen ".$whereop." $1 "; 563 567 $whcl.="WHERE flurstueckskennzeichen ".$whereop." $1 AND endet IS NULL "; 564 568 $fldlist=" AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, "; 565 569 566 570 // NICHT in aktuell suchen wenn explizit historisch gesucht wird 567 #$sql ="SELECT 'a'".$fldlist."null as nachf FROM ax_flurstueck ".$whcl." UNION ";568 571 $sql ="SELECT 'h'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 569 572 $sql.="UNION SELECT 'o'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 570 573 571 574 $v=array($fskzwhere); 572 #echo "<p class='dbg'>SQL=".$sql."<br>WHERE=".$fskzwhere."</p>"; // ++++ TEST573 574 575 $res=pg_prepare("", $sql); 575 576 $res=pg_execute("", $v); 576 if (!$res) {echo "\n<p class='err'>Fehler bei hist. Flurstück.</p>";} 577 if (!$res) { 578 echo "\n<p class='err'>Fehler bei historischem Flurstück.</p>"; 579 if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<br>Parameter: ".$fskzwhere."<p>";} 580 return; 581 } 582 577 583 $zfs=0; 578 579 584 while($row = pg_fetch_array($res)) { // Schleife Hist-FS 580 585 $ftyp=$row["ftyp"]; … … 585 590 $nachf=$row["nachf"]; 586 591 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} 587 588 #if ($ftyp == "a") { // als aktuelles FS gefunden, das "h" war also unnötig!589 # $koor=flurstueckskoordinaten($fs_gml);590 # echo "\n<p>Flurstück ".$fskenn." ist aktuell, nicht historisch</p>";591 # zeile_flurstueck ($fs_gml, $fskenn, $koor["x"], $koor["y"], $gknr, $flur, true);592 #} else { // Historisches FS gefunden (h oder o)593 592 594 593 zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur, true); … … 604 603 $stri="'".str_replace(",", "','", $stri)."'"; 605 604 606 $nawhcl="WHERE flurstueckskennzeichen IN ( ".$stri." ) ";605 $nawhcl="WHERE flurstueckskennzeichen IN ( ".$stri." ) AND endet IS NULL "; 607 606 608 607 $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$nawhcl; … … 613 612 $nares=pg_prepare("", $nasql); 614 613 $nares=pg_execute("", $v); 615 if (!$nares) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";} 614 if (!$nares) { 615 echo "\n<p class='err'>Fehler bei Nachfolger.</p>"; 616 if ($debug > 2) {echo "<p class='dbg'>SQL = '".$nasql."'<p>";} 617 return; 618 } 619 620 /* 621 622 SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner 623 FROM ax_flurstueck 624 WHERE flurstueckskennzeichen IN ( '05265600400296______' ) 625 AND endet IS NULL 626 UNION 627 SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner 628 FROM ax_historischesflurstueck 629 WHERE flurstueckskennzeichen IN ( '05265600400296______' ) 630 AND endet IS NULL 631 UNION 632 SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner 633 FROM ax_historischesflurstueckohneraumbezug 634 WHERE flurstueckskennzeichen IN ( '05265600400296______' ) 635 AND endet IS NULL ' 636 637 ==> UNION-Typen character varying und integer passen nicht zusammen gemarkungsnummer 638 639 */ 640 616 641 $zfsn=0; 617 642 // inner Body -
trunk/mapbender/http/nav/alkisnav_grd.php
r306 r330 10 10 2013-05-14 Hervorhebung aktuelles Objekt. Title "Nachweis" auch auf Icon. 11 11 2013-12-12 Limit in EinBlatt von 200 weit hoch gesetzt (bis BlÀttern möglich wird) 12 2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 12 13 */ 13 14 $cntget = extract($_GET); … … 52 53 global $debug; 53 54 $linelimit=40; 54 $sql ="SELECT a.stelle, a.bezeichnung AS ag FROM ax_dienststelle a "; 55 $sql.="WHERE a.stelle IN (".$liste_ag.") AND a.stellenart = 1000 "; // Amtsgerichte aus Liste 56 $sql.="ORDER BY a.bezeichnung LIMIT $1 ;"; 55 56 $sql ="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle "; 57 $sql.="WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL "; // AG aus Liste 58 $sql.="ORDER BY bezeichnung LIMIT $1 ;"; 57 59 $res = pg_prepare("", $sql); 58 60 $res = pg_execute("", array($linelimit)); 59 61 if (!$res) { 60 62 echo "\n<p class='err'>Fehler bei Amtsgerichte</p>"; 61 #if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}63 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 62 64 return 0; 63 65 } … … 93 95 $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 94 96 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 95 $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 ";97 $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL "; 96 98 // Diese Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten: 97 $sql.="AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land and b.bezirk=g.bezirkLIMIT 1) IS NULL ";99 $sql.="AND NOT (SELECT gml_id FROM ax_buchungsblatt b WHERE b.land=g.land AND b.bezirk=g.bezirk AND b.endet IS NULL LIMIT 1) IS NULL "; 98 100 $sql.="ORDER BY g.bezeichnung LIMIT $2 ;"; 99 101 $v = array($agkey, $linelimit); … … 128 130 #global $debug; 129 131 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g "; 130 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 LIMIT 1;";132 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 131 133 $v=array($gbbez); 132 134 $res=pg_prepare("", $sql); … … 159 161 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g "; 160 162 $sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle "; 161 $sql.="WHERE g.bezeichnung ILIKE $1 "; // "AND a.stellenart=1000 " //Amtsgericht163 $sql.="WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL "; // "AND a.stellenart=1000 " Amtsgericht 162 164 $sql.="ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; 163 165 if ( $gbkennz == "") { … … 219 221 // Body 220 222 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b "; 221 $sql.="WHERE b.bezirk= $1 ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;";223 $sql.="WHERE b.bezirk= $1 AND b.endet IS NULL ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 222 224 $v=array($zgbbez, $linelimit); 223 225 $res=pg_prepare("", $sql); … … 253 255 global $debug, $zgbbez, $zblatt, $zblattn, $zblattz; 254 256 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b "; 255 $sql.="WHERE b.bezirk= $1 AND b. buchungsblattnummermitbuchstabenerweiterung ";257 $sql.="WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 256 258 257 259 if ($zblattz == "") { // Ohne Buchstabenerweiterung: Formate '123','000123 ','0000123' … … 290 292 } 291 293 // Body 292 // 2013-12-12 Limit von ursprÃŒnglich 200 weit hoch gesetzt293 294 GB_Buchung_FS(1000, $zgbbez."-".$zblatt); // Blatt -> Buchung -> Flurstueck (Limitiert) 294 // ++ besser Limit wiederrunter und "BlÀttern"-Funktion einfÃŒhren295 // ++ besser Limit runter und "BlÀttern"-Funktion einfÃŒhren 295 296 return; 296 297 } … … 300 301 // Dazu die gml_id der Buchungsstelle ermitteln, um "function EinGrundstueck" benutzen zu können. 301 302 global $debug, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr; 303 302 304 // Blatt -> B u c h u n g s s t e l l e 303 305 $sql ="SELECT s.gml_id FROM ax_buchungsstelle s "; 304 $sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_von "; 305 $sql.="JOIN ax_buchungsblatt b ON b.gml_id=v.beziehung_zu "; 306 $sql.="WHERE v.beziehungsart='istBestandteilVon' "; 307 $sql.="AND b.bezirk= $1 AND b.buchungsblattnummermitbuchstabenerweiterung "; 306 $sql.="JOIN ax_buchungsblatt b ON s.istbestandteilvon = b.gml_id "; 307 $sql.="WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 308 308 309 if ($zblattz == "") { // Ohne Buchstabenerweiterung 309 310 //Formate '123','000123 ','0000123' … … 351 352 zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz, false, true); 352 353 } 353 // SQL-Bausteine 354 354 355 // dienend $1 gml_id von 355 // Buchungsstelle < vs/an< Buchungsstelle sh356 // Buchungsstelle <an< Buchungsstelle sh 356 357 // (dienend) (herrschend) 358 357 359 // direkt $1 gml_id von 358 // Buchungsstelle <vs/istGebucht< FlurstÃŒck > Gemarkung 360 // Buchungsstelle <istGebucht< FlurstÃŒck >> Gemarkung 361 359 362 // Recht $1 gml_id von 360 // Buchungsstelle > vs/an> Buchungsstelle sd <vf/istGebucht< FlurstÃŒck> Gemarkung361 // (herrschend) (dienend) sd >vd/istBestandteilVon> bd> gd363 // Buchungsstelle >an> Buchungsstelle sd <istGebucht< FlurstÃŒck >> Gemarkung 364 // (herrschend) (dienend) sd >istBestandteilVon> bd >> gd 362 365 363 366 // Body … … 373 376 // Filter gleich 374 377 switch ($gfilter) { // Filter Gemeinde 375 case 1: // Einzel wert376 $sqlfitler="AND g.gemeinde= ".$gemeinde.""; break;378 case 1: // Einzel 379 $sqlfitler="AND g.gemeinde='".$gemeinde."' "; break; 377 380 case 2: // Liste 378 $sqlfilter="AND g.gemeinde in (".$gemeinde.") "; break; 379 } 380 381 // Abfrage: Direkte Buchungen (FlurstÃŒcke) 382 $sql =$sqlanf."FROM alkis_beziehungen vs JOIN ax_flurstueck f ON vs.beziehung_von = f.gml_id "; 383 $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 384 $sql.="WHERE vs.beziehung_zu= $1 AND vs.beziehungsart='istGebucht' "; 385 $sql.=$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 381 $sqlfilter="AND g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 382 } 383 384 // Direkte Buchungen (Flurst.) 385 $sql =$sqlanf."FROM ax_flurstueck f JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 386 $sql.="WHERE f.istgebucht = $1 AND f.endet IS NULL ".$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 386 387 387 388 $v=array($buchunggml); … … 415 416 } 416 417 417 // Abfrage: Rechte an (dienende Buchungen und ihre FlurstÃŒcke)418 $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, "; 418 // Recht "an" (dienende Buchungen und ihre Flurst.) 419 $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, "; // Stelle dienend 419 420 $sql.="bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, "; // Blatt dienend 420 $sql.="gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez "; // AG und Bezirk dazu 421 $sql.="FROM alkis_beziehungen vs "; 422 $sql.="JOIN ax_buchungsstelle sd ON vs.beziehung_zu=sd.gml_id "; 423 $sql.="JOIN alkis_beziehungen vf ON vf.beziehung_zu=sd.gml_id "; // sd=Stelle dienend 424 $sql.="JOIN ax_flurstueck f ON vf.beziehung_von = f.gml_id "; 421 $sql.="gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez "; // AG und Bezirk dazu 422 $sql.="FROM ax_buchungsstelle sh "; // herrschend 423 $sql.="JOIN ax_buchungsstelle sd ON sd.gml_id = ANY(sh.an) "; // dienend 424 $sql.="JOIN ax_flurstueck f ON f.istgebucht = sd.gml_ID "; 425 425 $sql.="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung "; 426 427 // Blatt und Bezirk (dienend) 428 $sql.="JOIN alkis_beziehungen vd ON vd.beziehung_von=sd.gml_id "; 429 $sql.="JOIN ax_buchungsblatt bd ON vd.beziehung_zu=bd.gml_id "; // Blatt dienend 426 $sql.="JOIN ax_buchungsblatt bd ON sd.istbestandteilvon = bd.gml_id "; // Blatt dienend 430 427 $sql.="JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk "; // GB-Bez. dienend 431 $sql.="WHERE vs.beziehung_von = $1 AND vs.beziehungsart='an' AND vf.beziehungsart='istGebucht' AND vd.beziehungsart='istBestandteilVon'";428 $sql.="WHERE sh.gml_id = $1 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND bd.endet IS NULL "; 432 429 $sql.=$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 433 430 … … 444 441 $gwblatt=""; 445 442 while($row = pg_fetch_array($res)) { 446 $dienstelle=$row["stelle"]; 443 $dienstelle=$row["stelle"]; // Stelle (AG) des dienenden GrundstÃŒcks 447 444 $dienbezgml=$row["dienbezgml"]; // Bezirks des dien. GS: gml, Nr. und Bezeichnung 448 445 $diengbbez=$row["diengbbez"]; // Bezeichnung … … 450 447 $dienbltgml=$row["dienbltgml"]; // dienendes Blatt, gml und Nr 451 448 $dienblatt=$row["dienblatt"]; 452 $diengml=$row["diengml"]; 453 $dienlfd=$row["dienlfd"]; 449 $diengml=$row["diengml"]; // gml_id des dienenden GrundstÃŒcks 450 $dienlfd=$row["dienlfd"]; // BVNR (laufendNr) des dien. GS 454 451 if ($gwblatt != $dienblatt) { // Gruppierung Blatt - dienend 455 452 $gwblatt = $dienblatt; // Steuerg GW Blatt … … 471 468 } 472 469 473 // Teil 3 474 // ++ Wenn nur 1 GrundstÃŒck untersucht wird, dann dazu auch die 475 // berechtigten (herrschenden) GrundbÃŒcher anzeigen und verlinken (ohne FS)) 470 // Teil 3 - noch nicht umgesetzt 471 // ToDo: Wenn nur 1 GrundstÃŒck untersucht wird, dann dazu auch die berechtigten (herrschenden) GrundbÃŒcher anzeigen und verlinken (ohne FS) 476 472 477 473 // Foot … … 499 495 } else { 500 496 $gfilter = 2; // Liste 497 // $gemeinde = "'".str_replace(",", "','", $gemeinde)."'"; // Jedes Element in '' 501 498 } 502 499
Note: See TracChangeset
for help on using the changeset viewer.