Changeset 425 for trunk/mapbender
- Timestamp:
- 12/30/21 17:49:00 (2 years ago)
- Location:
- trunk/mapbender
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/conf/alkisnav_conf.php
r400 r425 6 6 2016-08-17 GKZ in ALKIS-DB-Name 4stellig 7 7 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen (mehrere Gemeinden in Kreis-Datenbank) 8 2021-11-22 Parameter $katamtmix (Kataster-Amt-Mix) 8 9 */ 9 10 … … 11 12 $dbgkz = $gkz; // eine Datenbank je Mandant 12 13 $dbhost = '10.0.___'; // Datenbank-Server aus Produktion 14 15 $katamtmix = false; // Default. Sind Daten aus verschiedenen Katasteramts-Bezirken in der DB? 13 16 14 17 switch ($gkz) { // lokale und temporäre Besonderheiten je Mandant … … 27 30 $filtgem = '16'; // Gebiets-Filter kommen derzeit noch aus der Mapbender-Konfiguration 28 31 break; 32 33 case "418": 34 $katamtmix = true; // Katasteramt Mix 35 break; 36 29 37 } 30 38 -
trunk/mapbender/http/nav/alkisnav.css
r356 r425 5 5 2014-02-06 kosmetische Ãberarbeitung 6 6 2015-12-10 Rahmen breiter, mehr HsNr je Zeile 7 2021-12-29 Abstand vor .hn 7 8 */ 8 body,p,a,.textfield,.sbutton 9 body,p,a,.textfield,.sbutton {font-family: Verdana, Arial, Helvetica, sans-serif;} 9 10 body {font-size: 11px; color: #000000; margin: 0px; border: 0px;} 10 11 p {font-size: 10px;} 11 p.hilfe 12 p.start 12 p.hilfe {font-size: 9px; text-align: right; color: gray; padding-right: 3px;} /* Programmier-Hilfsfelder */ 13 p.start {font-size: 9px; color: gray; padding: 2px; margin: 2px; border: 0px;} 13 14 p.nam {font-size: 10px; border: 1px solid navy; padding: 3px; margin: 0px; color: maroon;} 14 15 p.err {font-size: 11px; color: red;} /* Fehler -> Anwender */ 15 16 p.dbg {font-size: 10px; color: gray;} /* Debug -> Entwickler */ 16 p.ein, p.anz, p.blt 17 p.ein 17 p.ein, p.anz, p.blt {font-size: 9px; text-align: right;} /* Einleitung, Anzahl am Ende, BlÀttern weitere ... */ 18 p.ein {color: navy; font-weight: bold;} 18 19 p.anz, p.blt {color: purple;} 20 p.hn {color: gray; margin-left: 28px; margin-top: 8px; margin-bottom: 2px;} /* Hist.-Nachf. Ãberschr. */ 19 21 20 22 a {text-decoration: none;} 21 23 a:hover, a:active {color: red;} 22 24 a.hislnk {color: gray; font-style: italic; text-align: right; padding-left: 50px;} /* Link zur Historie */ 23 a.hsnro 25 a.hsnro {color: gray; font-style: italic;} /* HsNr ohne Haus */ 24 26 a.blt {color: maroon; background-color: yellow;} /* Link weitere ... */ 25 27 … … 37 39 div.fs {color: navy; margin-left: 28px; margin-top: 0px;} /* Flurstueck */ 38 40 div.hi {color: gray; margin-left: 28px; margin-top: 0px;} /* Historie */ 39 div.hn , p.hn{color: gray; margin-left: 28px; margin-top: 0px;} /* Historie-Nachfolger */41 div.hn {color: gray; margin-left: 28px; margin-top: 0px;} /* Historie-Nachfolger */ 40 42 41 43 div.stu {color: maroon; font-size: 13px;} /* Strasse - Ueberschrift */ -
trunk/mapbender/http/nav/alkisnav_adr.php
r413 r425 8 8 2018-02-15 Strikte Input-Validation der Parameter 9 9 2018-11-12 Full-Schema 10 2021-11-24 Neue Var. $katamtmix (Kataster-Amt-Mix). 11 SchlÃŒsseltabellen sind mehrfach belegt. Dadurch doppelte Treffer bei der Suche. 12 10 13 ToDo: 11 14 - Gruppierung (mit Zeile) der StraÃenliste nach Gemeinde … … 47 50 $gfilter = 0; 48 51 } 49 // // http://skrzmaptest01.asp.krzwan.de/mapbender/nav/alkisnav_adr.php?gkz=210&gemeinde=004&epsg=25832&str_schl=057580040179850 52 if (isset($str_schl) ) { 51 53 if (!preg_match('#^[0-9]{4,13}$#', $str_schl)) {die("Eingabefehler Stra&zlig;enschlüssel");} … … 90 92 function suchStrName() { 91 93 // Strassen nach Name(-nsanfang) 92 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath ;94 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath, $katamtmix; 93 95 //if ($debug > 1) {echo "<p class='dbg'>function suchStrName()<p>";} // Ablauf-Verfolgung 94 96 95 97 $linelimit=120; // -> in Conf? 96 $str_schl=""; // L oeschen vorh. Ergebnis98 $str_schl=""; // Löschen vorh. Ergebnis 97 99 preg_match("/^(\D+)(\d*)(\D*)/",$street,$matches); # 4 matches name/nr/zusatz 98 100 //echo "match: 1='".$matches[1]."', 2='".$matches[2]."', 3='".$matches[3]."'"; … … 108 110 $sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage " 109 111 ."FROM ax_lagebezeichnungkatalogeintrag k " 110 ."JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde " 111 ."WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 112 ."JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 113 if ($katamtmix){$sql.="AND substr(k.gml_id,1,6) = substr(g.gml_id,1,6) ";} 114 $sql.="WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 112 115 113 116 switch ($gfilter) { … … 143 146 $gwgem=$gemname; 144 147 } 145 $gkey=$row["schluesselgesamt"]; // Land-RegBez-Kreis-Gem-Stra sse - fÃŒr weitere Suche148 $gkey=$row["schluesselgesamt"]; // Land-RegBez-Kreis-Gem-StraÃe - fÃŒr weitere Suche 146 149 $skey=$row["lage"]; // Nur Str.-schl. daraus 147 150 $kgml=$row["gml_id"]; // ID von Katalog … … 164 167 } 165 168 166 function suchStrKey() { // Stra ssen nach num. Schluessel167 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath ;169 function suchStrKey() { // StraÃen nach num. SchlÃŒssel 170 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath, $katamtmix; 168 171 //if ($debug > 1) {echo "<p class='dbg'>function suchStrKey()<p>";} // Ablauf-Verfolgung 169 172 $linelimit=60; … … 174 177 $match=str_pad($street, 5, "0", STR_PAD_LEFT); // "Wie eine Zahl" verarbeiten 175 178 } 179 176 180 $sql ="SELECT g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage " 177 181 ."FROM ax_lagebezeichnungkatalogeintrag as k " 178 ."JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde " 179 ."WHERE k.lage LIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 182 ."JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 183 if ($katamtmix){$sql.="AND substr(k.gml_id,1,6) = substr(g.gml_id,1,6) ";} 184 $sql.="WHERE k.lage LIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 180 185 switch ($gfilter) { 181 186 case 1: // Einzelwert … … 217 222 } 218 223 219 function suchHausZurStr($showParent) { // H aeuser zu einer Strasse220 global $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug, $auskpath ;224 function suchHausZurStr($showParent) { // HÀuser zu einer StraÃe 225 global $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug, $auskpath, $katamtmix; 221 226 //if ($debug > 1) {echo "<p class='dbg'>function suchHausZurStr()<p>";} // Ablauf-Verfolgung 222 227 223 228 // Head 224 // Stra sse zum Strassenschluessel229 // StraÃe zum StrassenschlÃŒssel 225 230 $sql ="SELECT g.bezeichnung AS gemname, k.gml_id AS kgml, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage " 226 231 ."FROM ax_lagebezeichnungkatalogeintrag as k " 227 ."JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde " 228 ."WHERE k.schluesselgesamt = $1 AND k.endet IS NULL AND g.endet IS NULL LIMIT 1"; 229 230 $v=array($str_schl); // Schluessel-Gesamt .. 232 ."JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 233 if ($katamtmix){$sql.="AND substr(k.gml_id,1,6) = substr(g.gml_id,1,6) ";} 234 $sql.="WHERE k.schluesselgesamt = $1 AND k.endet IS NULL AND g.endet IS NULL LIMIT 1"; 235 236 $v=array($str_schl); // SchlÃŒssel-Gesamt .. 231 237 $res=pg_prepare("", $sql); 232 238 $res=pg_execute("", $v); … … 238 244 239 245 if($row = pg_fetch_array($res)) { // .. gefunden 240 $kgml=$row["kgml"]; // ID aus Katalog246 $kgml=$row["kgml"]; // ID aus Katalog 241 247 $sname=$row["bezeichnung"]; 242 248 $land =$row["land"]; // Einzel-Felder fÃŒr JOIN _lagebezeichnung_ … … 247 253 $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); 248 254 if ($showParent) { 249 // EINE Koordinate zur Stra sse besorgen255 // EINE Koordinate zur StraÃe besorgen 250 256 // ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer 251 257 $sqlko ="SELECT "; … … 300 306 301 307 // Body 302 // H aeuser zum Strassenschluessel308 // HÀuser zum StraÃenschlÃŒssel 303 309 $sql="SELECT min(replace(h.hausnummer,' ','')) AS hsnr, "; 304 310 if($epsg == "25832") { // Transform nicht notwendig … … 348 354 $cnt++; 349 355 $count++; 350 if($count == 7) { // Max. Haus nummernje Zeile (Test: 3stellige HsNr mit Zusatz)356 if($count == 7) { // Max. HausNr je Zeile (Test: 3stellige HsNr mit Zusatz) 351 357 echo "\n</tr>"; 352 358 $count = 0; … … 363 369 return; 364 370 } 365 // =========== 371 366 372 // Start hier! 367 // ===========368 373 369 374 // Validation: Eingabefeld aus Formular. 370 // Suchbegriff (StraÃenname)oder StraÃenschlÃŒssel.375 // Suchbegriff StraÃenname oder StraÃenschlÃŒssel. 371 376 // Hier formatierte Meldung und html-Foot. 372 377 if (isset($street) and $street != "" ) { … … 398 403 } 399 404 400 // Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion 401 // im Kopf des Ergebnisrahmens anzeigen. 405 // Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion im Kopf des Ergebnisrahmens anzeigen. 402 406 // Dazu die im HTML-Header definierte Javascript-Function benutzen. 403 407 // Alternativ wird auch aus dem Javascript "positionieren Karte" dieser Titel gesetzt. -
trunk/mapbender/http/nav/alkisnav_eig.php
r420 r425 11 11 2018-11-12 Full-Schema 12 12 2019-02-12 Sortierung FlurstÃŒcksnummer repariert 13 2021-12-01 Fehlerkorrektur "benennt". Neue Var. $katamtmix (Kataster-Amt-Mix). 14 SchlÃŒsseltabellen sind mehrfach belegt. Dadurch doppelte Treffer bei der Suche. 15 Weitere Buchstaben fÃŒr Namen-Suche zugelassen. 13 16 */ 14 17 … … 110 113 function personendaten() { 111 114 // Adresse und Geburtsdatum der aktuellen Person ausgeben 112 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug115 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; 113 116 $sql ="SELECT p.nachnameoderfirma, p.vorname, to_char(cast(p.geburtsdatum AS date),'DD.MM.YYYY') AS geburtsdatum, p.namensbestandteil, " 114 117 ."a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer " … … 162 165 $linelimit=150; 163 166 $arr = explode(",", $name); 164 $name0 = trim($arr[0]); // Nachname167 $name0 = trim($arr[0]); // Nachname 165 168 if (count($arr) > 1) { 166 169 $name1=trim($arr[1]); // Vorname … … 245 248 // Alternativ wÃŒrde eine Hilfstabelle benötigt, in der im PostProcessing 246 249 // das GB-zu-Gemeinde-VerhÀltnis vorbereitet wird. 247 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $debug, $bltbez, $bltblatt, $bltseite, $kennztyp, $zgbbez ;250 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $debug, $bltbez, $bltblatt, $bltseite, $kennztyp, $zgbbez, $katamtmix; 248 251 $linelimit=150; 249 252 … … 256 259 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam " 257 260 ."FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon=gb.gml_id " 258 ."JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk " 259 ."WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL;"; 261 ."JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; 262 if ($katamtmix){$sql.="AND substr(gb.gml_id,1,6) = substr(b.gml_id,1,6) ";} 263 $sql.="WHERE n.benennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL "; 260 264 261 265 // Parameter $gbkennz, z.B. nach Klick auf Zeile "Bezirk" 262 266 if ($kennztyp > 1) { // 2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR 263 #if ($debug > 0) {echo "<p class='dbg'>Filter Bezirk '".$zgbbez."'<p>";}267 #if ($debug > 1) {echo "<p class='dbg'>Filter Bezirk '".$zgbbez."'<p>";} 264 268 $sql.="AND b.bezirk='".$zgbbez."' "; 265 269 $bezirkaktuell = true; … … 333 337 // Im zweiten Schritt wird gesucht nach Rechten einer Buchungstelle des durchsuchten Blattes an anderen 334 338 // Buchungstellen. 335 global $gkz, $gemeinde, $name, $person, $blattgml, $epsg, $gfilter, $debug ;339 global $gkz, $gemeinde, $name, $person, $blattgml, $epsg, $gfilter, $debug, $katamtmix; 336 340 if($backlink) { // Erneuter Ansatz bei Person oder GB möglich. 337 341 … … 347 351 // Grundbuch-Daten ermitteln 348 352 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam " 349 ."FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk " 350 ."WHERE gb.gml_id= $1 AND gb.endet IS NULL and b.endet IS NULL LIMIT 1 ;"; 353 ."FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; 354 if ($katamtmix){$sql.="AND substr(gb.gml_id,1,6) = substr(b.gml_id,1,6) ";} 355 $sql.="WHERE gb.gml_id= $1 AND gb.endet IS NULL and b.endet IS NULL LIMIT 1 ;"; 351 356 $v=array($blattgml); 352 357 $res=pg_prepare("", $sql); … … 376 381 // weil "ungefiltert" in "2+3" zu lange Listen entstehen wÃŒrden, die durchblÀttert werden mÃŒssen. 377 382 378 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht, $kennztyp, $zgbbez ;383 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht, $kennztyp, $zgbbez, $katamtmix; 379 384 $linelimit=80; // als Limit "Anzahl FlurstÃŒcke" in den beiden folgenden Abfragen 380 385 // darf nun etwas knapper sein, weil man jetzt blÀttern kann … … 406 411 $sql1.="FROM ax_namensnummer nn " 407 412 ."JOIN ax_buchungsblatt gb ON gb.gml_id=nn.istbestandteilvon " 408 ."JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk " 409 ."JOIN ax_buchungsstelle s1 ON gb.gml_id=s1.istbestandteilvon "; 413 ."JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk "; 414 if ($katamtmix){$sql.="AND substr(gb.gml_id,1,6) = substr(b.gml_id,1,6) ";} 415 $sql1.="JOIN ax_buchungsstelle s1 ON gb.gml_id=s1.istbestandteilvon "; 410 416 411 417 // Baustein A: Auswahl 1 oder 2 … … 621 627 } 622 628 623 // ===========624 629 // Start hier! 625 // =========== 630 626 631 // Parameter: 627 632 // 1. name = Suche nach Namensanfang oder -bestandteil. … … 633 638 // Hier formatierte Meldung und html-Foot. 634 639 if (isset($name) and $name != "" ) { 635 if (!preg_match('#^[a-zA-Z0-9ÀöÌÃÃÃà *,. \-&/]{1,50}$#', $name)) {640 if (!preg_match('#^[a-zA-Z0-9ÀöÌÃÃÃÃşŜšŠ*,. \-&/]{1,50}$#', $name)) { 636 641 echo "<p class='err'>Eingabe unzulässig!</p>"; 637 642 // if ($debug > 1) {echo "<p class='err'>Name='".$name."' LÀnge='".strlen($name)."</p>";} -
trunk/mapbender/http/nav/alkisnav_fkt.php
r420 r425 11 11 2018-11-09 Full-Schema 12 12 2019-02-12 Sortierung FlurstÃŒcksnummer repariert 13 2021-11-23 Neue Var. $katamtmix (Kataster-Amt-Mix). 14 SchlÃŒsseltabellen sind mehrfach belegt. Dadurch doppelte Treffer bei der Suche. 13 15 */ 14 16 … … 316 318 // Zu einem Grundbuch-Blatt (identifiziert ÃŒber seine gml_id) suchen der 317 319 // Buchungen (Gruppenwechsel) und FlurstÃŒcke (Links) 318 global $gemeinde, $blattgml, $epsg, $gfilter, $debug ;320 global $gemeinde, $blattgml, $epsg, $gfilter, $debug, $katamtmix; 319 321 320 322 // SQL-Bausteine … … 337 339 338 340 // hinten gleich 339 $sql2="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer " 340 ."WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL "; 341 $sql2 ="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 342 if ($katamtmix){$sql2.="AND substr(f.gml_id, 1, 6) = substr(g.gml_id, 1, 6) ";} 343 $sql2.="WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL "; 341 344 342 345 switch ($gfilter) { -
trunk/mapbender/http/nav/alkisnav_fls.php
r420 r425 10 10 2018-11-12 Full-Schema 11 11 2019-02-12 Sortierung FlurstÃŒcksnummer wieder hergestellt (kaputt gegangen bei Umstellung Full-Schema) 12 2021-11-24 fÃŒhrende '0' Trimmen bei Flur, ZÀhler, Nenner in der Zerlegung 13 2021-12-29 Sortierung der Nachfolger eines hist. FS 14 15 ToDo: 16 Vermeiden der Tabellen "gema_shl" und "gem_shl". Das sind NorBIT/ALB-Relikte, die irgendwann entfallen werden. 17 Besser primÀre ax_*-Tabellen verwenden. 12 18 */ 13 19 … … 129 135 130 136 if (count($arr) > 1) { 131 $zflur= h_hinten($arr[1]);137 $zflur=ltrim(h_hinten($arr[1]), '0'); 132 138 if (count($arr) > 2) { 133 139 $zfsnr=trim($arr[2]); … … 172 178 } else { 173 179 $zn=explode("/", $zfsnr, 2); // Bruchnummer? 174 $zzaehler=h_hinten(trim($zn[0])); 175 if (count($zn) > 1) {$znenner=h_hinten(trim($zn[1]));} else {$znenner="";} 180 $zzaehler=ltrim(h_hinten(trim($zn[0])), '0'); 181 if (count($zn) > 1) { 182 $znenner=ltrim(h_hinten(trim($zn[1])), '0'); 183 } else { 184 $znenner=""; 185 } 186 // if ($debug > 1) {echo "<p class='dbg'>Gemkg: '".$gemkg."' Flur: '".$zflur."' Zaehler: '".$zzaehler."' Nenner: '".$znenner."'</p>";} 176 187 if ( ! is_ne_zahl($zzaehler)) { 177 188 echo "<p class='err'>FlurstÃŒcksnummer '".$zzaehler."' ist nicht numerisch</p>"; … … 283 294 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath.$auskprog.".php?gkz=".$gkz."&gmlid=".$gml."\")'>"; 284 295 echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS' title='Nachweis'>"; 285 echo "\n\t</a> 286 echo " Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$fs.$hisparm."'>".$fskenn."</a>";296 echo "\n\t</a> "; 297 echo "hist. Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$fs.$hisparm."'>".$fskenn."</a>"; 287 298 echo "\n</div>"; 288 299 return; … … 418 429 echo "\n<p class='anz'>Keine Gemarkung.</p>"; 419 430 if ($debug > 1) { 420 /* 421 // Nach Umstellung auf NorGIS-Struktur muss im Mapbender die Gemeinde 3stellig konfiguriert werden 431 /* // Nach Umstellung auf NorGIS-Struktur muss im Mapbender die Gemeinde 3stellig konfiguriert werden 422 432 if (strlen($gemeinde) < 3) { 423 433 echo "<p class='err'>URL-Parameter &gemeinde=nnn im Mapbender gazetteer_alkis.SRC muss 3stellig sein!<br>Ist aber '".$gemeinde."'.</p>"; 424 } 425 */ 434 } */ 426 435 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = ".$match."</p>";} 427 436 } … … 473 482 if ($AuchGemkZeile) { // Kopf davor ausgeben 474 483 if (! gg_head($zgemkg6, true)) { 475 if ($debug > = 1) {echo "\n<p class='dbg'>Gem.-Gemkg.-Kopf abgebrochen</p>";}484 if ($debug > 0) {echo "\n<p class='dbg'>Gem.-Gemkg.-Kopf abgebrochen</p>";} 476 485 return false; 477 486 } … … 479 488 480 489 // Body 490 // ++ ToDo: (optional) nur Fluren ausgeben, in denen auch FlurstÃŒcke enthalten sind. 481 491 $sql ="SELECT gemarkungsteilflur AS flur FROM ax_gemarkungsteilflur f WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;"; 482 492 $v=array($zgemkg4, $linelimit); … … 621 631 } 622 632 $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; 623 624 633 If ($znenner != "") { 625 $suchnenn = ltrim($znenner, '0'); 626 If ($suchnenn != "") { 627 $sql.="AND f.nenner='".$suchnenn."' "; 628 } 634 $sql.="AND f.nenner='".$znenner."' "; 629 635 } 630 636 $sql.="AND endet IS NULL ORDER BY cast(f.zaehler AS integer), cast(f.nenner AS integer);"; … … 732 738 $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$nawhcl 733 739 ."UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$nawhcl 734 ."UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$nawhcl; 740 ."UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$nawhcl 741 ."ORDER BY gemarkungsnummer, flurnummer, zaehler, nenner"; 735 742 736 743 $v=array(); … … 773 780 } 774 781 775 // ===========776 782 // Start hier! 777 // =========== 778 if ($debug >= 1) {echo "\n<p class='dbg'>gemeinde='".$gemeinde."'. gfilter='".$gfilter."'</p>";}783 784 // if ($debug >= 1) {echo "\n<p class='dbg'>gemeinde='".$gemeinde."'. gfilter='".$gfilter."'</p>";} 779 785 780 786 // Validation: Eingabefeld aus Formular. … … 800 806 } else { // Die Formular-Eingabe interpretieren (kann auch ein Link sein) 801 807 $retzer=ZerlegungFsKennz($fskennz); 802 if ($debug > =1) {echo "\n<p class='dbg'>Return Zerlegung: ".$retzer."</p>";}808 if ($debug > 1) {echo "\n<p class='dbg'>Return Zerlegung: ".$retzer."</p>";} 803 809 switch ($retzer) { // Returnwert der Zerlegung des FS-Kennz. 804 810 case 0: // leere Eingabe -
trunk/mapbender/http/nav/alkisnav_grd.php
r420 r425 10 10 2018-11-12 Full-Schema 11 11 2019-02-12 Sortierung FlurstÃŒcksnummer repariert 12 2021-11-24 Neue Var. $katamtmix (Kataster-Amt-Mix). 13 SchlÃŒsseltabellen sind mehrfach belegt. Dadurch doppelte Treffer bei der Suche. 12 14 */ 13 15 … … 107 109 $linelimit=40; 108 110 109 $sql="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle "111 $sql="SELECT DISTINCT stelle, bezeichnung AS ag FROM ax_dienststelle " 110 112 ."WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL ORDER BY bezeichnung LIMIT $1 ;"; 111 113 $res = pg_prepare("", $sql); … … 138 140 // Auch wenn BlÀtter vorhanden sind, kann es eine "Sackgasse" sein. 139 141 // Manchmal haben die BlÀtter keine FlurstÃŒcke im Filter-Bereich (Gemeinde). 140 global $debug ;142 global $debug, $katamtmix; 141 143 $linelimit=100; // Bezirke/AG 142 144 … … 146 148 // Body 147 149 // Die Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten 148 $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle " 149 ."WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL " 150 $sql ="SELECT DISTINCT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle "; 151 if ($katamtmix){$sql.="AND substr(g.gml_id,1,6) = substr(a.gml_id,1,6) ";} 152 $sql.="WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL " 150 153 ."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 " 151 154 ."ORDER BY g.bezeichnung LIMIT $2 ;"; … … 180 183 // Zu einem Grundbuchbezirks-SchlÃŒssel die Zeilen "AG" und "Bezirk" ausgeben 181 184 // Parameter = SchlÃŒssel des Bezirks 182 #global $debug;185 global $katamtmix; 183 186 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g " 184 ."JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 187 ."JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle "; 188 if ($katamtmix){$sql.="AND substr(g.gml_id,1,6) = substr(a.gml_id,1,6) ";} 189 $sql.="WHERE g.bezirk= $1 AND g.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 185 190 $v=array($gbbez); 186 191 $res=pg_prepare("", $sql); … … 209 214 function SuchGBBezName() { 210 215 // Grundbuch-Bezirk suchen nach Name(-nsanfang) 211 global $gkz, $gemeinde, $debug, $gbkennz ;216 global $gkz, $gemeinde, $debug, $gbkennz, $katamtmix; 212 217 $linelimit=80; 213 218 214 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g " 215 ."JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle " 216 ."WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL " 219 $sql ="SELECT DISTINCT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g " 220 ."JOIN ax_dienststelle a ON g.gehoertzu_stelle = a.stelle "; 221 if ($katamtmix){$sql.="AND substr(g.gml_id,1,6) = substr(a.gml_id,1,6) ";} 222 $sql.="WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL " 217 223 ."ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; // "AND a.stellenart=1000 " Amtsgericht 218 224 if ( $gbkennz == "") { … … 307 313 function gml_blatt() { 308 314 // Kennzeichen "Bezirk + Blatt" eingegeben. Dazu die gml_id des Blattes ermitteln. 309 // 2018-10: Sonderfall Buchstabe: Auch finden wenn der nicht eingegeben wurde.310 315 global $debug, $zgbbez, $zblatt, $zblattn, $zblattz; 311 316 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b " … … 380 385 $gef_blatt=$row["blatt"]; // gefunden ggf. mit Buchstabe (Wildcard) 381 386 if ($zblatt != $gef_blatt) { 382 echo "\n<p class='dbg'>Blatt mit Buchstabenerweiterung gefunden.</p>";387 // echo "\n<p class='dbg'>Blatt mit Buchstabenerweiterung gefunden.</p>"; 383 388 $zblatt=$gef_blatt; 384 389 $zblattz=substr($zblatt, strlen($zblatt)-1, 1); … … 397 402 // Die gml_id der Buchungsstelle (BVNR, GrundstÃŒck) ist bekannt = $buchunggml 398 403 // Die gebuchten FlurstÃŒcke und dienende/herrschenden Buchungen werden ausgegeben. 399 global $debug, $gemeinde, $epsg, $buchunggml, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter ;404 global $debug, $gemeinde, $epsg, $buchunggml, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr, $gfilter, $katamtmix; 400 405 // NoLimit? 401 406 … … 409 414 echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>"; 410 415 } // ++ suchen! 411 // zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblattn.$zblattz, false, true);412 416 zeile_buchung($buchunggml, $zbvnr, $zgbbez."-".$zblatt, false, true); // $zblatt wird aktualisiert, wenn Buchstabe gefunden wurde 413 417 } … … 445 449 // Direkte Buchungen (Flurst.) 446 450 $sql =$sqlanf."FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 451 if ($katamtmix){$sql.="AND substr(g.gml_id,1,6) = substr(f.gml_id,1,6) ";} 447 452 $sql.="WHERE f.istgebucht = $1 AND f.endet IS NULL ".$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, cast(f.zaehler AS integer), cast(f.nenner AS integer);"; 448 453 … … 482 487 ."FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) " 483 488 ."JOIN ax_flurstueck f ON f.istgebucht=sd.gml_id " 484 ."JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer " 485 ."JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id " 486 ."JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk " 487 ."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 AND gd.endet IS NULL " 489 ."JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 490 if ($katamtmix){$sql.="AND substr(f.gml_id,1,6) = substr(g.gml_id,1,6) ";} 491 $sql.="JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id " 492 ."JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk "; 493 if ($katamtmix){$sql.="AND substr(bd.gml_id,1,6) = substr(gd.gml_id,1,6) ";} 494 $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 AND gd.endet IS NULL " 488 495 489 496 .$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, cast(f.zaehler AS integer), cast(f.nenner AS integer);"; … … 494 501 if (!$res) { 495 502 echo "\n<p class='err'>Fehler bei Buchungsstelle (gml, Recht an).</p>"; 496 if ($debug >= 3) { 497 echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>"; 498 } 503 if ($debug >= 3) {echo "\n<p class='err'>'".$sql."'<br>\nmit $1 ='".$buchunggml."'</p>";} 499 504 } 500 505 $zfs2=0; … … 544 549 } 545 550 546 // ===========547 551 // Start hier! 548 // ===========549 552 550 553 // Validation: Eingabefeld aus Formular.
Note: See TracChangeset
for help on using the changeset viewer.