Changeset 376 for trunk/mapbender
- Timestamp:
- 12/01/16 12:43:03 (7 years ago)
- Location:
- trunk/mapbender
- Files:
-
- 55 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/conf/alkisnav_conf.php
r331 r376 1 1 <?php 2 /* Einstellungen fuer Mapbender-Navigation mit ALKIS-Daten 3 ALKIS-PostGIS-Datenbank aus Konverter PostNAS 0.8 4 krz Mi.-Ra./Li. 5 2014-09-10 PostNAS 0.8: ohne "alkis_beziehungen" 2 /* Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil "Einstellungen" 3 Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 4 5 Version vom 6 2016-08-17 GKZ in ALKIS-DB-Name 4stellig 7 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen (mehrere Gemeinden in Kreis-Datenbank) 6 8 */ 7 9 8 # DB-Connection 9 $host="localhost"; 10 $port="5432"; 11 $dbname="alkis"; // .$dbvers.$gkz - Mandant 12 $dbvers="08"; // 05 oder 06 (steuert Format von .lage) 13 $user="***"; 14 $password="***"; 10 // im Normalfall ... 11 $dbgkz = $gkz; // eine Datenbank je Mandant 12 $dbhost = '10.0.___'; // Datenbank-Server aus Produktion 13 14 switch ($gkz) { // lokale und temporäre Besonderheiten je Mandant 15 case "150": // Testfall 16 $dbhost = 'localhost'; // Datenbank auf dem DIESEM TEST-Server verwenden 17 break; 18 case "rlp": 19 $dbhost = 'localhost'; // Datenbank auf dem DIESEM TEST-Server verwenden 20 break; 21 case "320": 22 $dbgkz = '300'; // gemeinsame Datenbank für das Kreisgebiet 23 $filtkreis='70'; 24 $filtgem = '16'; // Gebiets-Filter kommen derzeit noch aus der Mapbender-Konfiguration 25 break; 26 } 27 28 // DB-Connection 29 $dbport="5432"; 30 $dbpre="alkis0"; // Datenbanken aus dem norGIS-ALKIS-Importer 31 $dbuser="___"; 32 $dbpass="___"; 15 33 16 34 # Pfad zu den ALKIS-Auskunft-Programmen 17 $auskpath="../../../ info/alkis";35 $auskpath="../../../alkisn/"; // AUSKUNFT auf norBIT-DB 18 36 19 37 # Massstab zum Positionieren auf Flurstueck, Strasse, Hausnummer … … 31 49 # Filter: 32 50 # Liste der relevanten Amtsgerichts-Nummern aus ax_dienststelle.stelle 33 # Form: WHERE IN ()51 # Form: SQL WHERE IN () 34 52 # Bei leerer Eingabe in Tab 'Grundb.' 35 53 $ag_liste = "'2102','2105','2106','2107','2108','2110','2303','2307'"; … … 41 59 # hausnummernohnegebaeude - sollen Hausnummern ohne Gebäude ausgegeben werden? 42 60 # 1 ja / 0 nein 43 $hausnummernohnegebaeude =1;61 $hausnummernohnegebaeude = 1; 44 62 45 63 # Entwicklungsumgebung 46 $debug=0; // 0=Produktion, 1=mit Fehlermeldungen, 2=mit Informationen, 3=mit SQL 64 $debug=1; // 0=Produktion, 1=mit Fehlermeldungen, 2=mit Informationen, 3=mit SQL 65 66 // Datenbank-Connection-String aus den oben konfigurierten Parametern bilden 67 $dbconn = "host=".$dbhost." port=".$dbport." dbname=".$dbpre.$dbgkz." user=".$dbuser." password=".$dbpass." options='--application_name=alkisnav'"; 47 68 48 69 ?> -
trunk/mapbender/http/nav/alkisnav.htm
r356 r376 1 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 2 <html> 3 <!-- Vorsicht mit HTML5: Frame-Hoehe geht verloren --> 3 4 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">5 <meta charset="utf-8"> 5 6 <link rel="stylesheet" type="text/css" href="alkisnav.css"> 6 7 <script type="text/javascript" language="JavaScript"> -
trunk/mapbender/http/nav/alkisnav_adr.php
r356 r376 1 1 <?php 2 /* Version vom 3 2013-04-26 "import_request_variables" entfÀllt in PHP 5.4. 4 ZurÃŒck-Link, Titel der Transaktion anzeigen 5 2013-04-29 Test mit IE 6 2013-05-07 Strukturierung des Programms 7 2013-05-14 Feinkorrekturen 8 2013-05-15 Gruppierung nach Gemeinde, mehrfache HsNr (ap_pto.advstandardmodell) unterdrÃŒcken, Icon f. StraÃe 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 2014-09-15 Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL" 12 2014-09-30 RÃŒckbau substring(gml_id) 13 2015-12-10 Umstellen .ico auf .png, Vermeidung nicht initialisierter Variable 2 /* Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil Adressen-Suche 3 Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 4 5 Version vom 6 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 7 2016-03-02 $gemeinde auf feste LÀnge korrigieren 8 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 14 9 15 10 ToDo: … … 27 22 28 23 $cntget = extract($_GET); 24 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); // temporÀr 29 25 include("../../conf/alkisnav_conf.php"); 30 26 include("alkisnav_fkt.php"); // Funktionen 31 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 32 $con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$$dbname.$dbvers.$gkz); 27 $con = pg_connect ($dbconn) or die ("Fehler bei der Verbindung zur Datenbank ".$dbpre.$dbgkz); 33 28 34 29 echo <<<END 35 36 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 37 <html> 30 <!doctype html> 31 <html lang="de"> 38 32 <head> 39 33 <meta http-equiv="cache-control" content="no-cache"> 40 34 <meta http-equiv="pragma" content="no-cache"> 41 35 <meta http-equiv="expires" content="0"> 42 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">36 <meta charset="utf-8"> 43 37 <title>ALKIS-Suche Adressen</title> 44 38 <link rel="stylesheet" type="text/css" href="alkisnav.css"> … … 63 57 END; 64 58 65 function suchStrName() { // Strassen nach Name(-nsanfang) 59 function suchStrName() { 60 // Strassen nach Name(-nsanfang) 66 61 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath; 67 $linelimit=120; // -> in die Conf? 68 $str_schl=""; // Loeschen vorheriges Ergebnis 69 preg_match("/^(\D+)(\d*)(\D*)/",$street,$matches); # 4 matches name/nr/zusatz echo "match: ".$matches[1].",".$matches[2].",".$matches[3]; 62 //if ($debug > 1) {echo "<p class='dbg'>function suchStrName()<p>";} // Ablauf-Verfolgung 63 64 $linelimit=120; // -> in Conf? 65 $str_schl=""; // Loeschen vorh. Ergebnis 66 preg_match("/^(\D+)(\d*)(\D*)/",$street,$matches); # 4 matches name/nr/zusatz 67 //echo "match: 1='".$matches[1]."', 2='".$matches[2]."', 3='".$matches[3]."'"; 70 68 $matches[1] = preg_replace("/strasse/i","str", $matches[1]); 71 69 $matches[1] = preg_replace("/str\./i","str", $matches[1]); 70 72 71 if(preg_match("/\*/",$matches[1])){ 73 72 $match=trim(preg_replace("/\*/i","%", strtoupper($matches[1]))); … … 75 74 $match=trim($matches[1])."%"; 76 75 } 76 77 77 $sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage 78 78 FROM ax_lagebezeichnungkatalogeintrag k 79 79 JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde 80 80 WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 81 81 82 switch ($gfilter) { 82 83 case 1: // Einzelwert … … 114 115 $skey=$row["lage"]; // Nur Str.-schl. daraus 115 116 $kgml=$row["gml_id"]; // ID von Katalog 116 117 // +++ in function_zeile_strasse() 118 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 119 echo "\n\t<div class='stl' title='Straßenschlüssel ".$skey."'>"; 120 // Icon -> Buchnachweis 121 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&gmlid=".$kgml."\")'>"; 122 echo "\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.png' width='16' height='16' alt='STR' title='Straße'>"; 123 echo "\n\t</a>"; 124 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$gkey."'>".$sname."</a>"; 125 echo "</div>"; 126 // +++ function ende 117 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 118 zeile_strasse ($gkey, $skey, $sname, $kgml, $gemname); 127 119 $cnt++; 128 120 } 129 121 130 122 if($cnt == 0) { 131 echo "<pclass='anz'>Keine Straße</p>"; 123 echo "\n<p class='anz'>Keine Straße</p>"; 124 //if ($debug > 2) {echo "<p class='err'>SQL = '".$sql."'<br>$1 = '".$match."'<p>";} 132 125 } elseif($cnt == 1) { // Eindeutig 133 126 $str_schl=$gkey; // dann gleich weiter 134 127 } elseif($cnt >= $linelimit) { 135 echo " <p class='anz'>".$cnt." Straßen ... und weitere</p>";128 echo "\n<p class='anz'>".$cnt." Straßen ... und weitere</p>"; 136 129 } elseif ($cnt > 1) { 137 130 echo "\n<p class='anz'>".$cnt." Straßen</p>"; … … 142 135 function suchStrKey() { // Strassen nach num. Schluessel 143 136 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath; 137 //if ($debug > 1) {echo "<p class='dbg'>function suchStrKey()<p>";} // Ablauf-Verfolgung 144 138 $linelimit=60; 145 139 if(preg_match("/\*/",$street)) { … … 177 171 $skey=$row["lage"]; 178 172 $kgml=$row["gml_id"]; // ID von Katalog 179 180 // +++ in function_zeile_strasse() 181 echo "\n\t<div class='stl' title='Straßenschlüssel ".$skey."'>"; 182 183 // Icon -> Buchnachweis 184 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&gmlid=".$kgml."\")'>"; 185 echo "\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.png' width='16' height='16' alt='STR' title='Straße'>"; 186 echo "\n\t</a>"; 187 188 echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$gkey."' title='".$gemname."'>".$sname; 189 echo "</a>"; 190 switch ($gfilter) { 191 case 0: // Kein Filter 192 echo " in ".$gemname; 193 break; 194 case 2: // Liste 195 echo " in ".$gemname; 196 break; 197 } 198 echo "</div>"; 199 // function ende 200 173 zeile_strasse ($gkey, $skey, $sname, $kgml, $gemname); 201 174 $cnt++; 202 175 } … … 215 188 function suchHausZurStr($showParent) { // Haeuser zu einer Strasse 216 189 global $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug, $auskpath; 190 //if ($debug > 1) {echo "<p class='dbg'>function suchHausZurStr()<p>";} // Ablauf-Verfolgung 217 191 218 192 // Head … … 256 230 $sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 "; 257 231 $sqlko.="LIMIT 1;"; // die erstbeste Koordinate 232 258 233 $v=array($land,$regb,$kreis,$gemnd,$nr); 259 234 $resko=pg_prepare("", $sqlko); … … 267 242 } 268 243 244 // "function zeile_strasse()" hier nicht verwendbar. ZusÀtzlicher Map-Link mit Koordinate 269 245 // Icon -> Buchnachweis 270 246 echo "\n\t<br><a href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&gmlid=".$kgml."\")'>"; … … 371 347 $epsg=$gui_epsg; // aus Conf 372 348 } 349 350 // Filter auf Zustaendigkeit z.B. ein Stadtgebiet 373 351 if ($gemeinde == "") { 374 352 $gfilter = 0; // ungefiltert … … 378 356 $gfilter = 2; // Liste 379 357 } 380 381 // +++ Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage": 382 // Numerisch: Gem-Str-Haus-lfd 383 384 if ($str_schl != "") { // aus Link 358 // ax_lagebezeichnungkatalogeintrag.gemeinde: z.B. Classic='40' / NorBit = '040' 359 // Im Mapbender mit fuehrenden Nullen eingeben: gazetteer_alkis.SRC 360 // alkisnav.htm?..&gemeinde=040&.. 361 362 // +++Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage": Numerisch: Gem-Str-Haus-lfd 363 364 if ($str_schl != "") { // Wert kommt aus aus Link 385 365 $trans="Hausnummern zur Straße"; 386 366 suchHausZurStr(true); 387 } elseif($street != "") { // Eingabe in Form 388 if (trim($street, "*,0..9") == "") { // Zahl, ggf. mit Wildcard 367 // Wert aus Eingabe in Formular 368 } elseif($street != "") { 369 if (trim($street, "*,0..9, ") == "") { // Zahl, ggf. mit Wildcard 389 370 $trans="Suche Straßenschlüssel \"".$street."\""; 390 371 suchStrKey(); 391 } else { 372 } else { // Name suchen 392 373 $trans="Suche Straßenname \"".$street."*\""; 393 374 suchStrName(); … … 402 383 403 384 // Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion 404 // im Kopf des Ergebnisrahmens anzeigen.385 // im Kopf des Ergebnisrahmens anzeigen. 405 386 // Dazu die im HTML-Header definierte Javascript-Function benutzen. 406 387 // Alternativ wird auch aus dem Javascript "positionieren Karte" dieser Titel gesetzt. -
trunk/mapbender/http/nav/alkisnav_eig.php
r374 r376 4 4 5 5 Version vom 6 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 7 2016-03-02 $gemeinde auf feste LÀnge korrigieren 8 2016-07-18 Personendaten: Zeilen getauscht. Wie Brief-Anschrift. 6 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 7 2016-03-02 $gemeinde auf feste LÀnge korrigieren 8 2016-07-18 Personendaten: Zeilen getauscht. Wie Brief-Anschrift. 9 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 9 10 */ 10 11 … … 18 19 include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 19 20 include("alkisnav_fkt.php"); // Funktionen 20 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$gkz." user=".$user." password=".$password; 21 $con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname.$gkz); 21 $con = pg_connect ($dbconn) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbpre.$dbgkz); 22 22 23 23 echo <<<END 24 <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">25 <html >24 <!doctype html> 25 <html lang="de"> 26 26 <head> 27 27 <meta http-equiv="cache-control" content="no-cache"> 28 28 <meta http-equiv="pragma" content="no-cache"> 29 29 <meta http-equiv="expires" content="0"> 30 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">30 <meta charset="utf-8"> 31 31 <title>ALKIS-Suche Eigentümer</title> 32 32 <link rel="stylesheet" type="text/css" href="alkisnav.css"> -
trunk/mapbender/http/nav/alkisnav_fkt.php
r356 r376 1 1 <?php 2 /* Version vom 3 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 4 2013-05-14 Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar. 5 2013-05-15 Function verlegt 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 8 2014-09-15 Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL" 9 2014-09-30 RÃŒckbau substring(gml_id) 10 2015-12-10 Umstellen .ico auf .png, Vermeidung nicht initialisierter Variable 2 /* Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil "Funktionen" 3 (Wird nicht direkt aufgerufen sonden in den anderen Modulen eingebunden). 4 Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 5 6 Version vom 7 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 8 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 11 9 */ 12 10 … … 87 85 // Hierin die Encodierung fÃŒr url und HTML. 88 86 89 function zeile_ag ($ag, $anr, $aktuell) { // Zeile A m t s g e r i c h t 87 function zeile_ag ($ag, $anr, $aktuell) { 88 // Zeile A m t s g e r i c h t 90 89 global $gkz, $gemeinde, $epsg, $auskpath; 91 90 if ($ag == "") { … … 103 102 } 104 103 105 function zeile_gbbez ($gnam, $zgbbez, $aktuell) { // Zeile Grundbuch - B e z i r k 104 function zeile_gbbez ($gnam, $zgbbez, $aktuell) { 105 // Zeile Grundbuch - B e z i r k 106 106 // Parameter: aktuell = Bool fÃŒr farbliche Markierung der Zeile als aktuell angeklicktes Obj. 107 107 global $gkz, $gemeinde, $epsg, $person; … … 124 124 125 125 function zeile_blatt ($bezirk, $beznam, $blattgml, $blatt, $dienend, $person, $aktuell) { 126 // Zeile Grundbuch - B l a t t 127 // Aufruf aus Teil "Grundbuch" und Teil "EigentÃŒmer" 128 // Parameter $beznam = Name des GB-Bezirks. Sollte nur gefÃŒllt sein, bei dienendem Blatt ("Recht an"). 129 // sonst steht der Bezirk als Header-Zeile darÃŒber. 126 130 global $gkz, $gemeinde, $epsg, $auskpath; 127 // Zeile Grundbuch - B l a t t 131 128 132 $blattd=ltrim($blatt, "0"); // Display-Version ohne fÃŒhrende Nullen 129 133 if ($dienend) {$dientxt="dienendes ";} else {$dientxt="";} … … 136 140 // Icon / Nachweis 137 141 if ($blattgml == "") { // Link zum Nachweis nur wenn GML bekannt 138 echo "\n\t<img class='nwlink' src='ico/GBBlatt _link.png' width='16' height='16' alt='Blatt' title='".$dientxt."GB-Blatt'>";142 echo "\n\t<img class='nwlink' src='ico/GBBlatt.png' width='16' height='16' alt='Blatt' title='".$dientxt."GB-Blatt'>"; 139 143 } else { 140 144 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>"; … … 156 160 function zeile_buchung($buchunggml, $bvnr, $blattkennz, $dienend, $aktuell) { 157 161 // Zeile B u c h u n g s s t e l l e - GrundstÃŒck ausgeben 158 global $gkz, $gemeinde, $epsg, $auskpath; 159 if ($bvnr == 0) { 160 $bvnra = "-"; 162 global $gkz, $gemeinde, $epsg, $auskpath, $debug; 163 //if ($debug > 1) {echo "<p class='dbg'>function zeile_buchung()<p>";} // Ablauf-Verfolgung 164 165 if ($bvnr == 0) { // Keine echten BVNR vergeben (z.B. Lippe) 166 $bvnra = "-"; // Fehlanzeige 161 167 } else { 162 168 $bvnra = str_pad($bvnr, 4, "0", STR_PAD_LEFT); // auf 4 Stellen … … 184 190 185 191 function zeile_gemeinde ($gmdnr, $gmdname, $aktuell) { 186 // Eine Zeile zu Gemeinde ausgeben, SchlÃŒssel und Name wird ÃŒbergeben192 // Eine Kopf-Zeile zu Gemeinde ausgeben 187 193 global $gkz, $gemeinde, $epsg; 188 194 $stadt=htmlentities($gmdname, ENT_QUOTES, "UTF-8"); … … 192 198 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.png' width='16' height='16' alt='Stadt'>"; 193 199 echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gm=".$gmdnr."&bez=".$bez."'>"; 194 echo " ".$stadt."</a> (".$gmdnr.")"; 200 echo " ".$stadt."</a> (".substr($gmdnr, 5).")"; 201 echo "\n</div>"; 202 return; 203 } 204 205 function zeile_gemarkung($gkgnr, $gkgname, $aktuell) { 206 // Eine Kopf-Zeile zur Gemarkung ausgeben 207 global $con, $gkz, $gemeinde, $epsg, $gfilter; 208 209 if ($gkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen 210 $sql ="SELECT bezeichnung FROM ax_gemarkung WHERE gemarkungsnummer = $1 LIMIT 1;"; 211 $v=array($gnr); 212 $res=pg_prepare("", $sql); 213 $res=pg_execute("", $v); 214 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkungsname.</p>";} 215 $row = pg_fetch_array($res); 216 $gkgname=$row["bezeichnung"]; 217 } 218 219 if ($gkgname == "") {$gkgname = "(unbekannt)";} 220 $gnam=htmlentities($gkgname, ENT_QUOTES, "UTF-8"); 221 if ($aktuell) {$cls=" aktuell";} else {$cls="";} 222 223 echo "\n<div class='gk".$cls."' title='Gemarkung'>"; 224 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.png' width='16' height='16' alt='GKG' title='Gemarkung'>"; 225 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gkgnr."'>"; 226 echo " ".$gnam."</a> (".substr($gkgnr, 2).")"; 195 227 echo "\n</div>"; 196 228 return; … … 226 258 227 259 function zeile_person ($persongml, $nachname, $vorname) { 260 // Zeile P e r s o n (oder Firma) 228 261 global $gkz, $gemeinde, $epsg, $auskpath; 229 // Zeile P e r s o n (oder Firma) 262 230 263 $nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8"); 231 264 $namlnk=urlencode($nachname); … … 240 273 </div>"; 241 274 return; 275 } 276 277 function zeile_strasse ($gkey, $skey, $sname, $kgml, $gemname) { 278 // Listen-Zeile (nicht Kopfzeile) fÃŒr eine gefundenen StraÃe ausgeben. 279 // Die Kopfzeile ÃŒber den Hausnummern hat einen zusÀtzlichen Koordinaten-Map-Link, das ist in der Liste zu aufwÀndig? 280 global $gkz, $gemeinde, $epsg, $auskpath, $gfilter, $debug; 281 //if ($debug > 1) {echo "<p class='dbg'>function zeile_strasse()<p>";} // Ablauf-Verfolgung 282 283 echo "\n\t<div class='stl' title='Straßenschlüssel ".$skey."'>"; 284 285 // Icon -> Buchnachweis 286 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&gmlid=".$kgml."\")'>"; 287 echo "\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.png' width='16' height='16' alt='STR' title='Auskunft Straße'>"; 288 echo "\n\t</a>"; 289 // Zeile -> Suche HsNr 290 echo " <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$gkey."' title='in ".$gemname."'>".$sname; 291 echo "</a> (".$skey.")"; 292 293 // Die Gemeinde dahinter falls mehrere möglich 294 switch ($gfilter) { 295 case 0: // Kein Filter 296 echo " in ".$gemname; break; 297 case 2: // Liste 298 echo " in ".$gemname; break; 299 } 300 echo "</div>"; 301 return; 242 302 } 243 303 … … 257 317 $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 258 318 } 259 $sql1.="g. gemarkung, g.gemarkungsnameFROM ax_buchungsstelle s1 ";319 $sql1.="g.bezeichnung FROM ax_buchungsstelle s1 "; 260 320 261 321 // zwischen, Variante 1. … … 267 327 268 328 // hinten gleich 269 $sql2="JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung329 $sql2="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 270 330 WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL "; 331 271 332 switch ($gfilter) { 272 333 case 1: // Einzelwert 273 $sql2.="AND g.gemeinde='".$gemeinde."' "; break;334 $sql2.="AND f.gemeinde='".$gemeinde."' "; break; 274 335 case 2: // Liste 275 $sql2.="AND g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break;336 $sql2.="AND f.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 276 337 } 277 338 … … 301 362 } 302 363 $fs_gml=$row["gml_id"]; 303 $gmkg=$row[" gemarkungsname"];364 $gmkg=$row["bezeichnung"]; 304 365 $flur=$row["flurnummer"]; 305 366 $fskenn=$row["zaehler"]; … … 339 400 } 340 401 $fs_gml=$row["gml_id"]; 341 $gmkg=$row[" gemarkungsname"];402 $gmkg=$row["bezeichnung"]; 342 403 $flur=$row["flurnummer"]; 343 404 $fskenn=$row["zaehler"]; -
trunk/mapbender/http/nav/alkisnav_fls.php
r356 r376 1 1 <?php 2 /* Version vom 3 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4, 4 Fehlerkorrektur Komma in SQL bei FS-Suche. 5 2013-04-26 Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" 6 ZurÃŒck-Link, Titel der Transaktion anzeigen 7 2013-04-29 Test mit IE 8 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 9 2013-05-14 Variablen-Namen geordnet, Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar. 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 12 2014-09-15 Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL" 13 2014-12-11 Fehlerbehandlung bei Eingabe ungÃŒltiger Gemarkungsnummer. Tabellen pp_gemarkung und pp_flur verwenden. 14 2015-06-11 EineFlur, Limit fÃŒr Flurstuecke von 600 auf 900 erhoeht 15 2015-12-10 Umstellen .ico auf .png, 16 Vermeidung nicht initialisierter Variable. Somit ausfÃŒhrbar mit php.ini-Einstellungen: 17 - error_reporting = E_ALL | E_STRICT 18 - display_errors = on 19 .. ohne störende Meldungen. 2 /* Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil FlurstÃŒck-Suche 3 Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 4 5 Hinweis: In der Mapbender-Konfiguration muss die Gemeindenummer nun 3stellig mit fÃŒhrenden 0 angegeben sein. 6 7 Version vom 8 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 9 2016-03-02 $gemeinde auf feste LÀnge korrigieren 10 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 20 11 */ 21 12 … … 25 16 26 17 $cntget = extract($_GET); 18 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); // temporÀr bei Umstellung auf norGIS, besser im Mapbender 3stellig konfigurieren. 27 19 include("../../conf/alkisnav_conf.php"); 28 20 include("alkisnav_fkt.php"); // Funktionen 29 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 30 $con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname.$dbvers.$gkz); 21 $con = pg_connect ($dbconn) or die ("Fehler bei der Verbindung zur Datenbank ".$dbpre.$dbgkz); 31 22 32 23 echo <<<END 33 <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">34 <html >24 <!doctype html> 25 <html lang="de"> 35 26 <head> 36 27 <meta http-equiv="cache-control" content="no-cache"> 37 28 <meta http-equiv="pragma" content="no-cache"> 38 29 <meta http-equiv="expires" content="0"> 39 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">30 <meta charset="utf-8"> 40 31 <title>ALKIS-Suche Flurstück</title> 41 32 <link rel="stylesheet" type="text/css" href="alkisnav.css"> … … 62 53 function h_hinten($zahl) { 63 54 // Testen: Wurde an eine Zahl ein "h" angehÀngt? 64 // Wenn ja, dann Schalter setzen und nur numerischen Teil zurÃŒck geben.55 // Wenn ja, dann Schalter setzen und nur den numerischen Teil zurÃŒck geben. 65 56 global $phist, $debug; 66 57 $zahl=trim($zahl); … … 80 71 81 72 function ZerlegungFsKennz($fskennz) { 82 // Das eingegebene FlurstÃŒcks-Kennzeichen auseinander nehmen. Erwartet wird gggg-fff-zzzz/nnn 83 // Teile der Zerlegung in global-Vars "$z..." 84 global $debug, $zgemkg, $zflur, $zzaehler, $znenner; 73 // Das eingegebene FlurstÃŒcks-Kennzeichen auseinander nehmen. Erwartet wird (ll)gggg-fff-zzzz/nnn 74 // Die Teile der *Z*erlegung werden ÃŒber die Global-Variablen "$z..." allen Functions bereit gestellt. 75 // Der Returncode dieser Function steuert die weitere Verarbeitung. 76 global $debug, $land, $zgemkg4, $zgemkg6, $zflur, $zzaehler, $znenner; 85 77 $arr = explode("-", $fskennz, 4); // an den Trenn-Strichen aufteilen 86 $zgemkg=trim($arr[0]); 78 79 // Gemarkung mit oder ohne Land davor? In der Eingabe soll beides zulÀssig sein. 80 // Bei den SQL-Abfragen in der norGIS-ALKIS-Importer Datenbankstruktur werden abwechselnd beide 81 // Formate benötigt: z.B. ax_gemarkungsteilflur.gemarkung -> 4stellig, gema_shl.gemashl -> 6stellig 82 // Also gleich beide Formate vorhalten. 83 $gemkg=trim($arr[0]); 84 87 85 if (count($arr) > 1) { 88 86 $zflur=h_hinten($arr[1]); … … 96 94 $zfsnr=""; 97 95 } 98 if ($debug > 1) {echo "<p class='dbg'>Gemkg: '".$zgemkg."' Flur: '".$zflur."' NR: '".$zfsnr."'</p>";} 99 if ($zgemkg == "") { 96 if ($debug > 1) {echo "<p class='dbg'>Gemkg: '".$gemkg."' Flur: '".$zflur."' NR: '".$zfsnr."'</p>";} 97 98 if ($gemkg == "") { 100 99 return 0; // Gemeinden oder Gemarkungen listen 101 } elseif ( ! is_ne_zahl($ zgemkg)) {100 } elseif ( ! is_ne_zahl($gemkg)) { 102 101 return 1; // Such Name 103 } elseif ($zflur == "") { 104 return 2; // G-Nr 102 } 103 104 // Gemarkungs-NUMMER wurde eingegeben. Mit oder ohne Land davor? 105 if (strlen($gemkg) == 4 ) { // Eingabe ohne Land 106 $zgemkg4=$gemkg; // 4stellige Version ohne Land 107 $zgemkg6=$land.$gemkg; // 6stellige Version mit Land 108 } elseif (strlen($gemkg) == 6 ) { // Eingabe mit Land 109 $zgemkg4=substr($gemkg, 2); 110 $zgemkg6=$gemkg; 111 if (substr($gemkg, 0, 2) != $land) { // Passt Eingabe zu Conf? 112 echo "<p class='err'>Die 6-stellige Gemarkungsnummer '".$zgemkg6."' sollte mit Land '".$land."' beginnen.</p>"; 113 } 114 } else { // weder noch 115 $zgemkg4=$gemkg; // kann eigentlich nicht funktionieren 116 $zgemkg6=$gemkg; // Nullen davor setzen? 117 echo "<p class='err'>Die Gemarkungsnummer kann 4- oder 6-stellig (mit Land '".$land."') eingegeben werden.</p>"; 118 } 119 120 if ($zflur == "") { // keine Eingabe Flur-Nummer 121 return 2; // also nur Gemarkungs-Nr eingegeben 105 122 } elseif ( ! is_ne_zahl($zflur)) { 106 123 echo "<p class='err'>Die Flurnummer '".$zflur."' ist nicht numerisch</p>"; 107 124 return 9; 108 } elseif ($zfsnr == "") { 125 } elseif ($zfsnr == "") { // Flur eingegeben, aber keine FlurstÃŒcksnummer mehr 109 126 return 3; // Flur 110 127 } else { 111 $zn=explode("/", $zfsnr, 2); 128 $zn=explode("/", $zfsnr, 2); // Bruchnummer? 112 129 $zzaehler=h_hinten(trim($zn[0])); 113 130 if (count($zn) > 1) {$znenner=h_hinten(trim($zn[1]));} else {$znenner="";} … … 149 166 } 150 167 151 function zeile_gemarkung($gkgnr, $gkgname, $aktuell) { 152 // Eine Zeile zu Gemarkung ausgeben 153 global $con, $gkz, $gemeinde, $epsg, $gfilter; 154 155 if ($gkgname == "") { // Falls Gem.-Name fehlt, in DB nachschlagen 156 $sql ="SELECT g.gemarkungsname FROM pp_gemarkung g WHERE g.gemarkung = $1 LIMIT 1;"; 157 $v=array($gnr); 158 $res=pg_prepare("", $sql); 159 $res=pg_execute("", $v); 160 if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkungsname.</p>";} 161 $row = pg_fetch_array($res); 162 $gkgname=$row["gemarkungsname"]; 163 } 164 165 if ($gkgname == "") {$gkgname = "(unbekannt)";} 166 $gnam=htmlentities($gkgname, ENT_QUOTES, "UTF-8"); 167 if ($aktuell) {$cls=" aktuell";} else {$cls="";} 168 169 echo "\n<div class='gk".$cls."' title='Gemarkung'>"; 170 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.png' width='16' height='16' alt='GKG' title='Gemarkung'>"; 171 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gkgnr."'>"; 172 echo " ".$gnam."</a> (".$gkgnr.")"; 173 echo "\n</div>"; 174 return; 175 } 176 177 function zeile_flur($gkgnr, $flurnr, $histlnk, $aktuell) { // Eine Zeile zur Flur ausgeben 168 function zeile_flur($gkgnr, $flurnr, $histlnk, $aktuell) { 169 // Eine Kopf-Zeile zur Flur ausgeben 178 170 global $gkz, $gemeinde, $epsg; 171 179 172 if ($aktuell) {$cls=" aktuell";} else {$cls="";} 180 173 echo "\n<div class='fl".$cls."' title='Flur'>"; … … 182 175 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gkgnr."-".$flurnr; 183 176 echo "<a title='Aktuelle Flurstücke suchen' href='".$url."'>Flur ".$flurnr." </a>"; 177 184 178 if ($histlnk) { // Link zur Historie-Suche anbieten 185 179 echo " <a class='hislnk' title='Historische Flurstücke der Flur suchen' href='".$url."&hist=j'>Hist.</a>"; … … 217 211 218 212 function zeile_nachf_fs($gml, $gknr, $flur, $fskenn, $ftyp) { 219 // Eine Zeile fÃŒr ein Nachfolger-FlurstÃŒck eines hist. Fs. ausgeben 213 // Eine Zeile fÃŒr ein Nachfolger-FlurstÃŒck eines hist. Fs. ausgeben 220 214 global $gkz, $gemeinde, $epsg, $auskpath; 215 221 216 $fs=$gknr."-".$flur."-".$fskenn; 222 217 switch ($ftyp) { … … 250 245 251 246 function ListGemeinden() { 252 // Bei Leereingabe im Formular die Gemeindenauflisten247 // Bei Leereingabe im Formular die berechtigte(n) Gemeinde(n) auflisten 253 248 global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 254 249 $linelimit=60; 255 250 256 $sql ="SELECT gemeinde, gemeindename FROM pp_gemeinde";251 $sql ="SELECT trim(trailing from gemshl) as gemshl, gemname FROM gem_shl "; 257 252 switch ($gfilter) { 258 253 case 1: // Einzelwert 259 $sql.="WHERE gemeinde='".$gemeinde."' "; break;254 $sql.="WHERE substring(gemshl from 6 for 3) = '".$gemeinde."' "; break; 260 255 case 2: // Liste 261 $sql.="WHERE gemeindein ('".str_replace(",", "','", $gemeinde)."') "; break;256 $sql.="WHERE substring(gemshl from 6 for 3) in ('".str_replace(",", "','", $gemeinde)."') "; break; 262 257 default: break; 263 258 } 264 $sql.=" AND endet IS NULL ORDER BY gem eindename LIMIT $1 ;";259 $sql.=" AND endet IS NULL ORDER BY gemname LIMIT $1 ;"; 265 260 $res=pg_prepare("", $sql); 266 261 $res=pg_execute("", array($linelimit)); 267 262 if (!$res) { 268 263 echo "\n<p class='err'>Fehler bei Gemeinde</p>"; 269 #if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";}264 if ($debug >= 3) {echo "\n<p class='dbg'>".$sql."</p>";} // ++Nur Entw. 270 265 return 0; 271 266 } 272 267 $cnt = 0; 273 268 while($row = pg_fetch_array($res)) { 274 $gnr=$row["gem einde"];275 $gemeindename=$row["gem eindename"];269 $gnr=$row["gemshl"]; 270 $gemeindename=$row["gemname"]; 276 271 zeile_gemeinde($gnr, $gemeindename); 277 272 $cnt++; … … 299 294 300 295 // Body 301 $sql ="SELECT gema rkung, gemarkungsname FROM pp_gemarkung WHERE gemeinde= $1 ORDER BY gemarkungsnameLIMIT $2 ;";296 $sql ="SELECT gemashl, trim(trailing from gemarkung) AS gemarkung FROM gema_shl WHERE substring(gemshl from 1 for 8) = $1 ORDER BY gemarkung LIMIT $2 ;"; 302 297 $res=pg_prepare("", $sql); 303 298 $res=pg_execute("", array($gkey, $linelimit)); … … 308 303 $cnt = 0; 309 304 while($row = pg_fetch_array($res)) { 310 $gnr=$row["gema rkung"];311 $gnam=$row["gemarkung sname"];305 $gnr=$row["gemashl"]; // 6stellig 306 $gnam=$row["gemarkung"]; 312 307 zeile_gemarkung($gnr, $gnam, false); 313 308 $cnt++; … … 334 329 } else { 335 330 $match = trim($fskennz)."%"; 336 } 337 $sql ="SELECT g.gemeinde, g.gemarkung, g.gemarkungsname, s.gemeindename 338 FROM pp_gemarkung g JOIN pp_gemeinde s ON g.gemeinde=s.gemeinde WHERE g.gemarkungsname ILIKE $1 "; 331 } 332 333 // Pass auf! GemeindeschlÃŒssel ist in den beiden SchlÃŒsseltabellen linksbÃŒndig gefÃŒllt, 334 // aber unterschiedlich lang hinten mit Leerstellen aufgefÃŒllt. 335 $sql ="SELECT substring(g.gemshl from 1 for 8) AS gemshl, g.gemashl, trim(trailing from g.gemarkung) AS gemarkung, trim(trailing from s.gemname) AS gemname 336 FROM gema_shl g JOIN gem_shl s ON substring(g.gemshl from 1 for 8) = substring(s.gemshl from 1 for 8) WHERE g.gemarkung ILIKE $1 "; 337 339 338 switch ($gfilter) { 340 339 case 1: // Einzelwert 341 $sql.="AND g.gemeinde='".$gemeinde."'"; break;340 $sql.="AND substring(g.gemshl from 6 for 3)='".$gemeinde."'"; break; 342 341 case 2: // Liste 343 $sql.="AND g.gemeinde in ("."'".str_replace(",", "','", $gemeinde)."'".") "; break; 344 } 345 $sql.=" ORDER BY s.gemeindename, g.gemarkungsname LIMIT $2 ;"; 342 $sql.="AND substring(g.gemshl from 6 for 3) in ("."'".str_replace(",", "','", $gemeinde)."'".") "; break; 343 } 344 $sql.=" ORDER BY s.gemname, g.gemarkung LIMIT $2 ;"; 345 346 346 $v=array($match, $linelimit); 347 347 $res=pg_prepare("", $sql); … … 354 354 $gwgem=""; 355 355 while($row = pg_fetch_array($res)) { 356 $gemeindename=$row["gem eindename"];356 $gemeindename=$row["gemname"]; 357 357 if ($gwgem != $gemeindename) { // Gruppierung Gemeinde 358 358 $gwgem = $gemeindename; 359 $skey=$row["gem einde"];359 $skey=$row["gemshl"]; 360 360 zeile_gemeinde($skey, $gemeindename, false); 361 361 } 362 $gnam=$row["gemarkung sname"];363 $gnr=$row["gema rkung"];362 $gnam=$row["gemarkung"]; 363 $gnr=$row["gemashl"]; // 6stellig 364 364 zeile_gemarkung($gnr, $gnam, false); // wenn am Ende nur ein Treffer, dann aktuell=true 365 365 $cnt++; … … 368 368 if($cnt == 0){ 369 369 echo "\n<p class='anz'>Keine Gemarkung.</p>"; 370 if ($debug > 1) { 371 /* 372 // Nach Umstellung auf NorGIS-Struktur muss im Mapbender die Gemeinde 3stellig konfiguriert werden 373 if (strlen($gemeinde) < 3) { 374 echo "<p class='err'>URL-Parameter &gemeinde=nnn im Mapbender gazetteer_alkis.SRC muss 3stellig sein!<br>Ist aber '".$gemeinde."'.</p>"; 375 } 376 */ 377 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = ".$match."</p>";} 378 } 370 379 } elseif($cnt >= $linelimit) { 371 380 echo "\n<p class='anz' title='Bitte eindeutiger qualifizieren'>".$cnt." Gemarkungen ... und weitere</p>"; 372 381 } elseif($cnt == 1) { // Eindeutig! 373 return $gnr; 382 return $gnr; // 6stellige Gemarkungsnummer! 374 383 } else { 375 384 echo "\n<p class='anz'>".$cnt." Gemarkungen</p>"; … … 378 387 } 379 388 380 function gg_head($gkgnr , $gkgaktuell) {381 // Kopf-Zeilen Gemeinde und Gemarkungausgeben382 // Parameter: Gemarkungsnummer , aktuell hervorzuhebende Zeile389 function gg_head($gkgnr6, $gkgaktuell) { 390 // Gemeinde und Gemarkung (G+G) Kopf-Zeilen ausgeben 391 // Parameter: Gemarkungsnummer (6stellig), aktuell hervorzuhebende Zeile 383 392 // Return: true/false ob gefunden 384 393 385 $sqlh ="SELECT g.gemarkung sname, s.gemeinde, s.gemeindename FROM pp_gemarkung g386 JOIN pp_gemeinde s ON g.gemeinde=s.gemeinde AND g.land=s.land WHERE g.gemarkung= $1 ;";387 388 $v=array($gkgnr );394 $sqlh ="SELECT g.gemarkung, substring(s.gemshl from 1 for 8) AS gemshl, trim(trailing from s.gemname) AS gemname 395 FROM gema_shl g JOIN gem_shl s ON g.gemshl=s.gemshl WHERE g.gemashl = $1 ;"; 396 397 $v=array($gkgnr6); 389 398 $resh=pg_prepare("", $sqlh); 390 399 $resh=pg_execute("", $v); … … 393 402 394 403 if ($rowh = pg_fetch_array($resh)) { 395 $gmkg=$rowh["gemarkung sname"];396 $skey=$rowh["gem einde"];397 $snam=$rowh["gem eindename"];404 $gmkg=$rowh["gemarkung"]; 405 $skey=$rowh["gemshl"]; 406 $snam=$rowh["gemname"]; 398 407 zeile_gemeinde($skey, $snam, false); 399 zeile_gemarkung($gkgnr , $gmkg, $gkgaktuell);408 zeile_gemarkung($gkgnr6, $gmkg, $gkgaktuell); 400 409 return true; 401 410 } else { 402 411 echo "\n<div class='gk' title='Gemarkung'>"; 403 412 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.png' width='16' height='16' alt='GKG' title='Gemarkung'>"; 404 echo " Gemarkung ".$gkgnr ." nicht gefunden!\n</div>";413 echo " Gemarkung ".$gkgnr6." nicht gefunden!\n</div>"; 405 414 return false; 406 415 } … … 409 418 function EineGemarkung($AuchGemkZeile) { 410 419 // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 411 global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg ;420 global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg4, $zgemkg6; 412 421 $linelimit=120; // max.Fluren/Gemkg 413 422 414 423 // Head 415 424 if ($AuchGemkZeile) { // Kopf davor ausgeben 416 if (! gg_head($zgemkg , true)) {425 if (! gg_head($zgemkg6, true)) { 417 426 if ($debug >= 1) {echo "\n<p class='dbg'>Gem.-Gemkg.-Kopf abgebrochen</p>";} 418 427 return false; … … 421 430 422 431 // Body 423 // Tabelle pp_flur verwenden um nur Fluren aufzulisten, die tatsÀchlich FlurstÃŒcke enthalten 424 $sql ="SELECT flurnummer AS flur FROM pp_flur f WHERE gemarkung= $1 ORDER BY flurnummer LIMIT $2 ;"; 425 $v=array($zgemkg, $linelimit); 432 $sql ="SELECT gemarkungsteilflur AS flur FROM ax_gemarkungsteilflur f WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;"; 433 $v=array($zgemkg4, $linelimit); 426 434 $res=pg_prepare("", $sql); 427 435 $res=pg_execute("", $v); … … 431 439 while($row = pg_fetch_array($res)) { 432 440 $zflur=$row["flur"]; 433 zeile_flur($zgemkg , $zflur, false, false);441 zeile_flur($zgemkg4, $zflur, false, false); 434 442 $zfl++; 435 443 } … … 448 456 function EineFlur() { 449 457 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, dazu aktuelle FlurstÃŒcke suchen 450 global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg , $zflur;458 global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg4, $zgemkg6, $zflur; 451 459 $linelimit=900; // Wie groà kann eine Flur sein? 452 460 453 461 // Head 454 if (gg_head($zgemkg , false)) {455 zeile_flur($zgemkg , $zflur, true, true);462 if (gg_head($zgemkg6, false)) { 463 zeile_flur($zgemkg4, $zflur, true, true); 456 464 } else { 457 465 return false; … … 467 475 $sql.="st_y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 468 476 } 477 469 478 $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND endet IS NULL 470 479 ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; 471 $v=array($zgemkg , $zflur, $linelimit);480 $v=array($zgemkg4, $zflur, $linelimit); 472 481 $res=pg_prepare("", $sql); 473 482 $res=pg_execute("", $v); … … 495 504 496 505 function HistFlur() { 497 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben .506 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben, "h" dahinter. 498 507 // Die Flur nach historischen FlurstÃŒcken durchsuchen 499 global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $land, $zgemkg , $zflur;508 global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $land, $zgemkg4, $zgemkg6, $zflur; 500 509 $linelimit=500; 501 510 502 511 // Head 503 if (gg_head($zgemkg , false)) {504 zeile_flur($zgemkg , $zflur, true, true);512 if (gg_head($zgemkg6, false)) { 513 zeile_flur($zgemkg4, $zflur, true, true); 505 514 } else { 506 515 return false; … … 509 518 // Body 510 519 $whcl="WHERE flurstueckskennzeichen like $1 AND endet IS NULL "; 511 $sql ="SELECT 'h' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 512 $sql.="UNION SELECT 'o' AS ftyp, gml_id, zaehler, nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 520 521 $sql ="SELECT 'h' AS ftyp, gml_id, cast(zaehler AS integer) AS zaehler, cast(nenner AS integer) AS nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl; 522 $sql.="UNION SELECT 'o' AS ftyp, gml_id, cast(zaehler AS integer) AS zaehler, cast(nenner AS integer) AS nenner, nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl; 513 523 $sql.="ORDER BY zaehler, nenner LIMIT $2 ;"; 514 $fskzwhere =$land.$zgemkg.str_pad($zflur, 3, "0", STR_PAD_LEFT)."%"; 524 // "zaehler" und "nenner" sind in der Classic-Datenbank Integer-Werte aber in der Struktur 525 // des norGIS-ALKIS-Importers sind das Character-Strings, die linksbÃŒndig ohne fÃŒhrende Nullen gefÃŒllt sind. 526 // Der Anwender erwartet aber eine "numerische" Sortierung. 527 528 $fskzwhere=$zgemkg6.str_pad($zflur, 3, "0", STR_PAD_LEFT)."%"; 515 529 $v=array($fskzwhere, $linelimit); 516 530 $res=pg_prepare("", $sql); … … 523 537 $fskenn=$row["zaehler"]; 524 538 if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 525 zeile_hist_fs($fs_gml, $fskenn, $ftyp, $zgemkg , $zflur, false);539 zeile_hist_fs($fs_gml, $fskenn, $ftyp, $zgemkg4, $zflur, false); 526 540 $zfs++; 527 541 } … … 542 556 // FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler (oder Nenner) eingegeben 543 557 // Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler suchen wenn kein Nenner eingegeben wurde. 544 global $con, $gkz, $debug, $epsg, $gemeinde, $fskennz, $zgemkg , $zflur, $zzaehler, $znenner;558 global $con, $gkz, $debug, $epsg, $gemeinde, $fskennz, $zgemkg4, $zgemkg6, $zflur, $zzaehler, $znenner; 545 559 546 560 // Head 547 if (gg_head($zgemkg , false)) {548 zeile_flur($zgemkg , $zflur, true, false);561 if (gg_head($zgemkg6, false)) { // Kopfzeilen: Gemeinde, Gemerkung, .. 562 zeile_flur($zgemkg4, $zflur, true, false); // .., Flur 549 563 } else { 550 564 return false; … … 561 575 } 562 576 $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 "; 563 If ($znenner != "") {$sql.="AND f.nenner=".$znenner." ";} // wie prepared? 564 $sql.="AND endet IS NULL ORDER BY f.zaehler, f.nenner;"; 565 $v=array($zgemkg, $zflur, $zzaehler); 577 578 // If ($znenner != "") {$sql.="AND f.nenner=".$znenner." ";} 579 580 // norGIS: "zaehler" ist integer in der DB, aber "nenner" ist character, linksbÃŒndig ohne fÃŒhrende '0' 581 If ($znenner != "") { 582 $suchnenn = ltrim($znenner, '0'); 583 If ($suchnenn != "") { 584 $sql.="AND f.nenner='".$suchnenn."' "; 585 } 586 } 587 $sql.="AND endet IS NULL ORDER BY f.zaehler, cast(f.nenner AS integer);"; 588 $v=array($zgemkg4, $zflur, $zzaehler); 566 589 $res=pg_prepare("", $sql); 567 590 $res=pg_execute("", $v); 568 if (!$res) {echo "\n<p class='err'>Fehler bei Flurstück.</p>";} 591 if (!$res) { 592 echo "\n<p class='err'>Fehler bei Flurstück.</p>"; 593 if ($debug > 2) {echo "<p class='dbg'>SQL = '".$sql."'<br>Parameter $1='".$zgemkg4."' $2='".$zflur."' $3='".$zzaehler."'<p>";} 594 } 595 596 569 597 $zfs=0; 570 598 while($row = pg_fetch_array($res)) { … … 582 610 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Historisch.png' width='16' height='16' alt='Historisches Flurstück'> "; 583 611 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$fskennz."&hist=j'>"; 584 echo $zgemkg ."-".$zflur."-".$zzaehler;612 echo $zgemkg4."-".$zflur."-".$zzaehler; 585 613 if ($znenner != "") {echo "/".$znenner;} 586 614 echo " h - suchen</a>"; … … 592 620 function HistFlurstueck() { 593 621 // Die Nachfolger-FS-Kennzeichen zu einem Historischen FS sollen recherchiert werden. 594 global $debug, $land, $zgemkg , $zflur, $zzaehler, $znenner;622 global $debug, $land, $zgemkg4, $zgemkg6, $zflur, $zzaehler, $znenner; 595 623 596 624 // Head 597 if (gg_head($zgemkg , false)) {598 zeile_flur($zgemkg , $zflur, true, false);625 if (gg_head($zgemkg6, false)) { 626 zeile_flur($zgemkg4, $zflur, true, false); 599 627 } else { 600 628 return false; … … 604 632 // Body 605 633 // Suche ueber das Flurstueckskennzeichen, gml unbekannt 606 $fskzwhere =$land.$zgemkg; // Flurst-Kennz. f. Where634 $fskzwhere=$zgemkg6; // Flurst-Kennz. f. Where 607 635 $fskzwhere.=str_pad($zflur, 3, "0", STR_PAD_LEFT); 608 636 $fskzwhere.=str_pad($zzaehler, 5, "0", STR_PAD_LEFT); … … 639 667 $ftyp=$row["ftyp"]; 640 668 $fs_gml=$row["gml_id"]; 641 $gknr=$ row["gemarkungsnummer"];669 $gknr=$land.$row["gemarkungsnummer"]; // Land davor 642 670 $flur=$row["flurnummer"]; 643 671 $fskenn=$row["zaehler"]; … … 646 674 647 675 zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur, true); 676 648 677 if ($nachf == "") { 649 678 echo "\n<p class='anz'>keine Nachfolger</p>"; … … 659 688 $nawhcl="WHERE flurstueckskennzeichen IN ( ".$stri." ) AND endet IS NULL "; 660 689 661 $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$nawhcl; 690 // Pass auf! Spalte zaehler hat unterschiedliches Format in den 3 Tabellen 691 $nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, cast(zaehler AS character varying), nenner FROM ax_flurstueck ".$nawhcl; 662 692 $nasql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$nawhcl; 663 693 $nasql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$nawhcl; … … 677 707 $naftyp=$narow["ftyp"]; 678 708 $nagml=$narow["gml_id"]; 679 $nagknr=$ narow["gemarkungsnummer"];709 $nagknr=$land.$narow["gemarkungsnummer"]; // Land davor, 4 auf 6 Stellen 680 710 $naflur=$narow["flurnummer"]; 681 711 $nafskenn=$narow["zaehler"]; … … 692 722 echo "\n<hr>"; 693 723 } 694 #} // aktuell ...695 724 $zfs++; 696 725 } … … 712 741 $epsg=$gui_epsg; // Conf 713 742 } 743 744 // Filter aus Mapbender-GUI-Einbindung 714 745 if ($gemeinde == "") { 715 746 $gfilter = 0; … … 725 756 $gnr=ListGmkgInGemeinde($gm, $bez); 726 757 if ($gnr > 0) { 727 $zgemkg=$gnr; 758 $zgemkg4=$gnr; 759 $zgemkg6=$land.$zgemkg4; 728 760 EineGemarkung(false); 729 761 } … … 731 763 $retzer=ZerlegungFsKennz($fskennz); 732 764 if ($debug >= 1) {echo "\n<p class='dbg'>Return Zerlegung: ".$retzer."</p>";} 733 switch ($retzer) { // Return der Zerlegung765 switch ($retzer) { // Returnwert der Zerlegung des FS-Kennz. 734 766 case 0: // leere Eingabe 735 767 if ($gfilter == 1) { // Die GUI ist bereits auf EINE Gemeinde gefiltert … … 746 778 if ($gnr > 0) { 747 779 $trans="1 Gemarkung, Fluren dazu"; 748 $zgemkg=$gnr; 780 $zgemkg6=$gnr; 781 $zgemkg4=substr($zgemkg6, 2); 749 782 EineGemarkung(false); 750 783 } -
trunk/mapbender/http/nav/alkisnav_grd.php
r356 r376 1 1 <?php 2 /* Version vom 3 2013-04-16 "import_request_variables" entfÀllt in PHP 5.4 4 2013-04-26 Ersetzen View "gemeinde_gemarkung" durch Tabelle "pp_gemarkung" 5 Code aus _eig nach_fkt ausgelegert, hier mit nutzen. 6 Dazu Var-Namen harmonisieren: $gblatt wird $blattgml 7 ZurÃŒck-Link, Titel der Transaktion anzeigen. 8 2013-04-29 Test mit IE 9 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 10 2013-05-14 Hervorhebung aktuelles Objekt. Title "Nachweis" auch auf Icon. 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 13 2014-09-15 Bei Relationen den Timestamp abschneiden 14 2014-09-30 RÃŒckbau substring(gml_id) 15 2015-12-10 Umstellen .ico auf .png, Vermeidung nicht initialisierter Variable 2 /* Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil Grundbuch-Suche 3 Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 4 5 Version vom 6 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 7 2016-03-02 $gemeinde auf feste LÀnge korrigieren 8 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 16 9 */ 17 10 … … 23 16 24 17 $cntget = extract($_GET); 18 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); // temporÀr .. 25 19 include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 26 20 include("alkisnav_fkt.php"); // Funktionen 27 28 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 29 $con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname.$dbvers.$gkz); 21 $con = pg_connect ($dbconn) or die ("Fehler bei der Verbindung zur Datenbank ".$dbpre.$dbgkz); 30 22 31 23 echo <<<END 32 <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">33 <html >24 <!doctype html> 25 <html lang="de"> 34 26 <head> 35 27 <meta http-equiv="cache-control" content="no-cache"> 36 28 <meta http-equiv="pragma" content="no-cache"> 37 29 <meta http-equiv="expires" content="0"> 38 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">30 <meta charset="utf-8"> 39 31 <title>ALKIS-Suche Grundbuch</title> 40 32 <link rel="stylesheet" type="text/css" href="alkisnav.css"> … … 63 55 64 56 function ListAG($liste_ag, $aktuell) { 65 // Amtsgerichte (Grundbuch ) auflisten, dazu als Filter eine AG-Liste57 // Amtsgerichte (Grundbuchamt) auflisten, dazu als Filter die AG-Liste aus Conf-Datei verwenden. 66 58 global $debug; 67 59 $linelimit=40; … … 97 89 function ListGBBez($agkey) { 98 90 // Grundbuch-Bezirke zu einem Amtsgericht auflisten. 99 // Auch wenn BlÀtter da sind, kann es eine Sackgasse sein.100 // Manchmal haben die BlÀtter keine FlurstÃŒcke im Filter-Bereich 91 // Auch wenn BlÀtter vorhanden sind, kann es eine "Sackgasse" sein. 92 // Manchmal haben die BlÀtter keine FlurstÃŒcke im Filter-Bereich (Gemeinde). 101 93 global $debug; 102 94 $linelimit=100; // Bezirke/AG … … 140 132 141 133 function ag_bez_head($gbbez, $bezaktuell) { 142 // Zu einem Grundbuchbezirks-SchlÃŒssel die Zeilen AG und Bezirkausgeben134 // Zu einem Grundbuchbezirks-SchlÃŒssel die Zeilen "AG" und "Bezirk" ausgeben 143 135 // Parameter = SchlÃŒssel des Bezirks 144 136 #global $debug; … … 304 296 if ($showParent) { 305 297 ag_bez_head($zgbbez, false); // AG + BEZ 306 zeile_blatt ($zgbbez, $gbbeznam, $blattgml, $zblatt, false, "", true);298 zeile_blatt ($zgbbez, "", $blattgml, $zblatt, false, "", true); 307 299 } 308 300 // Body … … 381 373 // Body 382 374 // Anfang (Select-Liste) gleich 383 $sqlanf ="SELECT g. gemeinde, g.gemarkungsname, f.gml_id, f.flurnummer, f.zaehler, f.nenner, ";375 $sqlanf ="SELECT g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, "; 384 376 if($epsg == "25832") { // Transform nicht notwendig 385 377 $sqlanf.="st_x(st_Centroid(f.wkb_geometry)) AS x, "; … … 393 385 switch ($gfilter) { // Filter Gemeinde 394 386 case 1: // Einzel 395 $sqlfitler="AND g.gemeinde='".$gemeinde."' "; break;387 $sqlfitler="AND f.gemeinde='".$gemeinde."' "; break; 396 388 case 2: // Liste 397 $sqlfilter="AND g.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break;389 $sqlfilter="AND f.gemeinde in ('".str_replace(",", "','", $gemeinde)."') "; break; 398 390 } 399 391 400 392 // Direkte Buchungen (Flurst.) 401 $sql =$sqlanf."FROM ax_flurstueck f JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung";393 $sql =$sqlanf."FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 402 394 $sql.="WHERE f.istgebucht = $1 AND f.endet IS NULL ".$sqlfilter."ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 403 395 … … 414 406 while($row = pg_fetch_array($res)) { 415 407 $fs_gml=$row["gml_id"]; 416 $gemei=$row["gemeinde"]; 417 $gmkg=$row["gemarkungsname"]; 408 $gmkg=$row["bezeichnung"]; 418 409 $flur=$row["flurnummer"]; 419 410 $fskenn=$row["zaehler"]; … … 424 415 // Zwischen-Foot 425 416 if($zfs1 == 0) { 426 echo "\n<p class='anz'>Kein Flurstück direkt</p>";417 echo "\n<p class='anz'>Kein Flurstück zu dieser Buchung</p>"; 427 418 } elseif($zfs1 > 1) { 428 419 echo "\n<p class='anz'>".$zfs1." Flurstücke</p>"; … … 433 424 434 425 // Recht "an" (dienende Buchungen und ihre Flurst.) 426 435 427 $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, 436 428 bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, … … 439 431 JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) 440 432 JOIN ax_flurstueck f ON f.istgebucht=sd.gml_id 441 JOIN pp_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkung433 JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 442 434 JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id 443 435 JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk 444 436 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 " 437 445 438 .$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 446 439 … … 457 450 $gwblatt=""; 458 451 while($row = pg_fetch_array($res)) { 459 $dienstelle=$row["stelle"]; // Stelle (AG) des dien enden GrundstÃŒcks460 $dienbezgml=$row["dienbezgml"]; // Bezirk sdes dien. GS: gml, Nr. und Bezeichnung452 $dienstelle=$row["stelle"]; // Stelle (AG) des dien. Grdst. 453 $dienbezgml=$row["dienbezgml"]; // Bezirk des dien. GS: gml, Nr. und Bezeichnung 461 454 $diengbbez=$row["diengbbez"]; // Bezeichnung 462 455 $dienbezirk=$row["bezirk"]; // Key 463 $dienbltgml=$row["dienbltgml"]; // dien endesBlatt, gml und Nr456 $dienbltgml=$row["dienbltgml"]; // dien. Blatt, gml und Nr 464 457 $dienblatt=$row["dienblatt"]; 465 $diengml=$row["diengml"]; // gml_id des dien enden GrundstÃŒcks458 $diengml=$row["diengml"]; // gml_id des dien. Grdst. 466 459 $dienlfd=$row["dienlfd"]; // BVNR (laufendNr) des dien. GS 467 if ($gwblatt != $dienblatt) { // Gruppierung Blatt - dienend 460 if ($gwblatt != $dienblatt) { // Grupp. Blatt - dien. 461 if ($gwblatt == "") { // der erste "dienende": Einleitungs-Zeile 462 $aber=""; 463 if($zfs1 == 0) {$aber="Aber ein ";} 464 echo "\n<p class='anz' title='Die oben genannte Buchung hat ein Recht an den folgenden Buchungen'>".$aber."Recht an ..</p>"; 465 } 468 466 $gwblatt = $dienblatt; // Steuerg GW Blatt 469 467 zeile_blatt($dienbezirk, $diengbbez, $dienbltgml, $dienblatt, true, "", false); … … 475 473 } // ++ Buchungsart? Welches Recht? 476 474 $fs_gml=$row["gml_id"]; 477 $gemei=$row["gemeinde"]; 478 $gmkg=$row["gemarkungsname"]; 475 $gmkg=$row["bezeichnung"]; 479 476 $flur=$row["flurnummer"]; 480 477 $fskenn=$row["zaehler"]; … … 505 502 } 506 503 504 // Filter aus Conf-Datei 507 505 if ($gemeinde == "") { 508 506 $gfilter = 0; // ungefiltert … … 514 512 } 515 513 516 // Auch wenn redundant: Das Kennzeichen fÃŒr Anzeige und weitere Links zerlegen 514 // Das eingegebene Kennzeichen fÃŒr "Anzeige" und "weitere Links" zerlegen, 515 // auch wenn ÃŒber einen ein Self-Link mit gml_id aufgerufen. 517 516 $kennztyp=ZerlegungGBKennz($gbkennz); 518 517 519 518 // Wurde eine gml_id (internes Kennzeichen) aus einem Self-Link verwendet? 520 // Dann hat das Prioritaet,also *nicht* nach $gbkennz suchen.519 // Dann hat DAS PrioritÀt, dann also *nicht* nach $gbkennz suchen. 521 520 if ($buchunggml != "") { // gml der Buchungsstelle 522 521 $trans="Flurstücke zur Buchungsstelle"; // Link … … 531 530 ListGBBez($ag); 532 531 533 } else { // Eingabe im Formular 534 535 switch ($kennztyp) { 532 } else { // kein Self-Link sondern manuelle Eingabe im Formular 533 switch ($kennztyp) { // wurde oben bereits analysiert und zerlegt 536 534 case 0: // keine Eingabe 537 535 $trans="Liste der Amtsgerichte"; … … 541 539 $trans="Bezirke suchen \"".$gbkennz."\""; 542 540 $beznr=SuchGBBezName(); 543 if ($beznr > 0) { // eindeutig541 if ($beznr > 0) { // wenn der Suchbegriff eindeutig war, .. 544 542 $zgbbez=$beznr; 545 543 $trans="Bezirk gefunden, Blätter dazu"; 546 EinBezirk(false); // gleich weiter544 EinBezirk(false); // .. dann gleich weiter 547 545 }; 548 546 break; 549 case 2: // Eingabe Bezirk-Nummer -> Liste der BlÀtter 547 case 2: // Eingabe Bezirk-Nummer -> Liste der BlÀtter im Bezirk 550 548 $trans="Blätter im GB-Bezirk"; 551 549 EinBezirk(true); 552 550 break; 553 case 3: // Eingabe Blatt -> Liste der Buchungen551 case 3: // Eingabe GB-Blatt -> Liste der Buchungen auf dem Blatt 554 552 $trans="Buchungen auf GB-Blatt"; 555 553 $blattgml=gml_blatt(); // gml_id zum Blatt suchen 556 554 if ($blattgml != "") { // gefunden 557 if (EinBlatt(true) == 1) { // darauf genau eine Buchung558 $trans="GB-Blatt und 1 Buchung"; 559 $buchunggml=gml_buchungsstelle(); // gml_id zum Kennzeichen555 if (EinBlatt(true) == 1) { // wenn darauf genau eine Buchung ist 556 $trans="GB-Blatt und 1 Buchung"; // dann gleich tiefer rein 557 $buchunggml=gml_buchungsstelle(); // gml_id der Buchung 560 558 EinGrundstueck(false); 561 559 } … … 579 577 580 578 // Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion 581 // im Kopf des Ergebnisrahmens anzeigen.579 // im Kopf des Ergebnisrahmens anzeigen. 582 580 // Dazu die im HTML-Header definierte Javascript-Function benutzen. 583 581 // Alternativ wird auch aus dem Javascript "positionieren Karte" dieser Titel gesetzt.
Note: See TracChangeset
for help on using the changeset viewer.