Changeset 399 for trunk/mapbender/http
- Timestamp:
- 02/15/18 17:46:51 (6 years ago)
- Location:
- trunk/mapbender/http/nav
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_adr.php
r376 r399 1 1 <?php 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 2 /* Navigation mit ALKIS-Daten im Mapbender 2 - Teil Adressen-Suche 3 Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 5 4 Version vom 6 5 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 7 6 2016-03-02 $gemeinde auf feste LÀnge korrigieren 8 7 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 9 10 8 2018-02-15 Strikte Input-Validation der Parameter 9 ToDo: 11 10 - Gruppierung (mit Zeile) der StraÃenliste nach Gemeinde 12 11 - Eingabe aus "Balken" von Buchauskunft "Lage" zulassen: Numerisch: Gem-Str-Haus-lfd … … 17 16 */ 18 17 19 // Variable Initialisieren20 $str_schl="";21 $skey="";22 23 18 $cntget = extract($_GET); 24 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); // temporÀr 19 20 // Input-Validation 21 // Parameter aus Konfiguration oder Links sollten keine "Eingabefehler" enthalten. 22 // Entweder falsche Konfiguration oder Hack. Programm sofort abbrechen. 23 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} // Mandant, muss! 24 25 if(isset($epsg)) { // SRS, kann. Wenn als Parameter ... 26 if (preg_match('#^EPSG:[0-9]{4,5}$#', $epsg)) { // Prefix aus MB-Mapframe 27 $epsg = str_replace("EPSG:", "" , $epsg); 28 } elseif (!preg_match('#^[0-9]{4,5}$#', $epsg)) { // nur die Nummer 29 die("Eingabefehler epsg"); 30 } 31 } else { // Nichts ÃŒbergeben 32 $epsg=$gui_epsg; // dann default aus Conf 33 } 34 35 // Filter-Parameter fÃŒr Gemeindenummer in Kreis-Datenbank aus der Mapbender GUI-Konfiguration 36 if (isset($gemeinde) AND trim($gemeinde, '0') != "") { 37 if (!preg_match('#^[0-9]{1,3}$#', $gemeinde)) {die("Eingabefehler Gemeinde");} 38 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); 39 if(strpos($gemeinde, ",") === false) { 40 $gfilter = 1; // Einzelwert 41 } else { 42 $gfilter = 2; // Liste 43 } 44 } else { // Kein Filter 45 $gemeinde = ""; 46 $gfilter = 0; 47 } 48 // // http://skrzmaptest01.asp.krzwan.de/mapbender/nav/alkisnav_adr.php?gkz=210&gemeinde=004&epsg=25832&str_schl=0575800401798 49 if (isset($str_schl) ) { 50 if (!preg_match('#^[0-9]{4,13}$#', $str_schl)) {die("Eingabefehler Stra&zlig;enschlüssel");} 51 } else { 52 $str_schl=""; 53 } 54 25 55 include("../../conf/alkisnav_conf.php"); 26 56 include("alkisnav_fkt.php"); // Funktionen … … 75 105 } 76 106 77 $sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage 78 FROM ax_lagebezeichnungkatalogeintrag k79 JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde80 WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL ";107 $sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage " 108 ."FROM ax_lagebezeichnungkatalogeintrag k " 109 ."JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde " 110 ."WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 81 111 82 112 switch ($gfilter) { … … 143 173 $match=str_pad($street, 5, "0", STR_PAD_LEFT); // "Wie eine Zahl" verarbeiten 144 174 } 145 $sql ="SELECT g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage 146 FROM ax_lagebezeichnungkatalogeintrag as k147 JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde148 WHERE k.lage LIKE $1 AND k.endet IS NULL AND g.endet IS NULL ";175 $sql ="SELECT g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage " 176 ."FROM ax_lagebezeichnungkatalogeintrag as k " 177 ."JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde " 178 ."WHERE k.lage LIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 149 179 switch ($gfilter) { 150 180 case 1: // Einzelwert … … 192 222 // Head 193 223 // Strasse zum Strassenschluessel 194 $sql ="SELECT g.bezeichnung AS gemname, k.gml_id AS kgml, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage 195 FROM ax_lagebezeichnungkatalogeintrag as k196 JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde197 WHERE k.schluesselgesamt = $1 AND k.endet IS NULL AND g.endet IS NULL LIMIT 1";224 $sql ="SELECT g.bezeichnung AS gemname, k.gml_id AS kgml, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage " 225 ."FROM ax_lagebezeichnungkatalogeintrag as k " 226 ."JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde " 227 ."WHERE k.schluesselgesamt = $1 AND k.endet IS NULL AND g.endet IS NULL LIMIT 1"; 198 228 199 229 $v=array($str_schl); // Schluessel-Gesamt .. … … 220 250 $sqlko ="SELECT "; 221 251 if($epsg == "25832") { // Transform nicht notwendig 222 $sqlko.="st_x(st_Centroid(f.wkb_geometry)) AS x, "; 223 $sqlko.="st_y(st_Centroid(f.wkb_geometry)) AS y "; 252 $sqlko.="st_x(st_Centroid(f.wkb_geometry)) AS x, st_y(st_Centroid(f.wkb_geometry)) AS y "; 224 253 } else { 225 $sqlko.="st_x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, " ;226 $sqlko.="st_y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y ";254 $sqlko.="st_x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, " 255 ."st_y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 227 256 } 228 $sqlko.="FROM ax_lagebezeichnungohnehausnummer o "; 229 $sqlko.="JOIN ax_flurstueck f ON o.gml_id=ANY(f.zeigtauf) "; 230 $sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 "; 231 $sqlko.="LIMIT 1;"; // die erstbeste Koordinate 257 $sqlko.="FROM ax_lagebezeichnungohnehausnummer o JOIN ax_flurstueck f ON o.gml_id=ANY(f.zeigtauf) " 258 ."WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 LIMIT 1;"; // die erstbeste Koordinate 232 259 233 260 $v=array($land,$regb,$kreis,$gemnd,$nr); … … 249 276 250 277 if ($x > 0) { // Koord. bekommen? 251 echo "\n\t<a title='Positionieren 1:".$scalestr."' href='javascript:"; // mit Link 252 echo "transtitle(\"auf Straße positioniert\"); "; 253 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalestr."); "; 254 echo "parent.parent.showHighlight(".$x.",".$y."); "; 255 // echo "document.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$str_schl."\""; 256 echo "' "; // end href 257 echo "\n\t\tonmouseover='parent.parent.showHighlight(" .$x. "," .$y. ")' "; 258 echo "\n\t\tonmouseout='parent.parent.hideHighlight()'"; 259 echo ">\n\t\t".$sname." (".$nr.")\n\t</a>"; 278 echo "\n\t<a title='Positionieren 1:".$scalestr."' href='javascript:" // mit Link 279 ."transtitle(\"auf Straße positioniert\"); " 280 ."parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalestr."); " 281 ."parent.parent.showHighlight(".$x.",".$y."); " 282 ."' " // end href 283 ."\n\t\tonmouseover='parent.parent.showHighlight(" .$x. "," .$y. ")' " 284 ."\n\t\tonmouseout='parent.parent.hideHighlight()'" 285 .">\n\t\t".$sname." (".$nr.")\n\t</a>"; 260 286 } else { // keine Koord. gefunden 261 287 echo $sname." (".$nr.")"; // nur Anzeige, ohne Link … … 276 302 $sql="SELECT min(replace(h.hausnummer,' ','')) AS hsnr, "; 277 303 if($epsg == "25832") { // Transform nicht notwendig 278 $sql.="avg (st_x(p.wkb_geometry)) AS x, "; 279 $sql.="avg (st_y(p.wkb_geometry)) AS y "; 304 $sql.="avg (st_x(p.wkb_geometry)) AS x, avg (st_y(p.wkb_geometry)) AS y "; 280 305 } else { 281 $sql.="avg (st_x(st_transform(p.wkb_geometry,".$epsg."))) AS x, " ;282 $sql.="avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y ";283 } 284 $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON h.gml_id=ANY(p.dientzurdarstellungvon) 285 WHERE p.art='HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5286 AND p.endet IS NULL AND h.endet IS NULL287 GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2)288 ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);";306 $sql.="avg (st_x(st_transform(p.wkb_geometry,".$epsg."))) AS x, " 307 ."avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y "; 308 } 309 $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON h.gml_id=ANY(p.dientzurdarstellungvon) " 310 ."WHERE p.art='HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 " 311 ."AND p.endet IS NULL AND h.endet IS NULL " 312 ."GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2) " 313 ."ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; 289 314 // Problem: In der Datenbank gibt es mehrere hausnummern-Koordinaten fÃŒr verschiedene 290 315 // MaÃstÀbe der Kartendarstellung … … 312 337 $x=$rowh["x"]; 313 338 $y=$rowh["y"]; 314 echo "\n\t<td class='hsnr'>"; 315 echo "<a href='"; 316 echo "javascript:"; 317 echo "transtitle(\"auf Haus ".$hsnr." positioniert\"); "; 318 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalehs."); "; 319 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 320 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 321 echo "onmouseout='parent.parent.hideHighlight()"; 322 echo "'>".$hsnr."</a>"; 323 echo "</td>"; 339 echo "\n\t<td class='hsnr'>" 340 ."<a href='javascript:transtitle(\"auf Haus ".$hsnr." positioniert\"); " 341 ."parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalehs."); " 342 ."parent.parent.showHighlight(".$x.",".$y.");' " 343 ."onmouseover='parent.parent.showHighlight(".$x.",".$y.")' " 344 ."onmouseout='parent.parent.hideHighlight()" 345 ."'>".$hsnr."</a>" 346 ."</td>"; 324 347 $cnt++; 325 348 $count++; … … 342 365 // Start hier! 343 366 // =========== 344 if(isset($epsg)) { 345 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 367 368 // Validation: Eingabefeld aus Formular. 369 // Suchbegriff (StraÃenname) oder StraÃenschlÃŒssel. 370 // Hier formatierte Meldung und html-Foot. 371 if (isset($street) and $street != "" ) { 372 if (!preg_match('#^[0-9a-zA-ZÀöÌÃÃÃÃ* -.]{1,25}$#', $street)) { 373 echo "<p class='err'>Eingabe unzulässig!</p>"; 374 $street=""; 375 } 346 376 } else { 347 $epsg=$gui_epsg; // aus Conf 348 } 349 350 // Filter auf Zustaendigkeit z.B. ein Stadtgebiet 351 if ($gemeinde == "") { 352 $gfilter = 0; // ungefiltert 353 } elseif(strpos($gemeinde, ",") === false) { 354 $gfilter = 1; // Einzelwert 355 } else { 356 $gfilter = 2; // Liste 357 } 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 377 $street=""; 378 } 379 380 if ($str_schl != "") { // aus Link 365 381 $trans="Hausnummern zur Straße"; 366 382 suchHausZurStr(true); 367 // Wert aus Eingabe in Formular 368 } elseif($street != "") { 383 } elseif($street != "") { // Eingabe in Formular 369 384 if (trim($street, "*,0..9, ") == "") { // Zahl, ggf. mit Wildcard 370 385 $trans="Suche Straßenschlüssel \"".$street."\""; -
trunk/mapbender/http/nav/alkisnav_eig.php
r376 r399 1 1 <?php 2 /* Navigation mit ALKIS-Daten im Mapbender 2.7 - Teil EigentÃŒmer-Suche 3 Diese Version des Programms verwendet die Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 4 5 Version vom 2 /* Navigation mit ALKIS-Daten im Mapbender 2 - Teil EigentÃŒmer-Suche 3 Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 4 Version vom 6 5 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 7 6 2016-03-02 $gemeinde auf feste LÀnge korrigieren 8 7 2016-07-18 Personendaten: Zeilen getauscht. Wie Brief-Anschrift. 9 8 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 9 2018-02-15 Strikte Input-Validation der Parameter 10 10 */ 11 11 12 // Variable initialisieren13 $gbkennz="";14 $blattgml="";15 $person ="";16 17 12 $cntget = extract($_GET); 18 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); // temporÀr .. 13 14 // Input-Validation 15 // Parameter aus Konfiguration oder Links sollten keine "Eingabefehler" enthalten. 16 // Entweder falsche Konfiguration oder Hack. Programm sofort abbrechen. 17 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} // Mandant, muss! 18 19 if(isset($epsg)) { // SRS, kann. Wenn als Parameter ... 20 if (preg_match('#^EPSG:[0-9]{4,5}$#', $epsg)) { // Prefix aus MB-Mapframe 21 $epsg = str_replace("EPSG:", "" , $epsg); 22 } elseif (!preg_match('#^[0-9]{4,5}$#', $epsg)) { // nur die Nummer 23 die("Eingabefehler epsg"); 24 } 25 } else { // Nichts ÃŒbergeben 26 $epsg=$gui_epsg; // dann default aus Conf 27 } 28 29 // Filter-Parameter fÃŒr Gemeindenummer in Kreis-Datenbank aus der Mapbender GUI-Konfiguration 30 if (isset($gemeinde) AND trim($gemeinde, '0') != "") { 31 if (!preg_match('#^[0-9]{1,3}$#', $gemeinde)) {die("Eingabefehler Gemeinde");} 32 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); 33 if(strpos($gemeinde, ",") === false) { 34 $gfilter = 1; // Einzelwert 35 } else { 36 $gfilter = 2; // Liste 37 } 38 } else { // Kein Filter 39 $gemeinde = ""; 40 $gfilter = 0; 41 } 42 if (isset($blattgml) and $blattgml != "" ) { 43 if (!preg_match('#^[0-9a-zA-Z]{16}$#', $blattgml)) {die("Eingabefehler GML-ID Blatt");} 44 } else { 45 $blattgml=""; 46 } 47 if (isset($person) and $person != "" ) { 48 if (!preg_match('#^[0-9a-zA-Z]{16}$#', $person)) {die("Eingabefehler GML-ID Person");} 49 } else { 50 $person=""; 51 } 52 if (isset($gbkennz) and $gbkennz != "" ) { // gggg-bbbbbbA-0001 53 if (!preg_match('#^[0-9A-E -]{4,17}$#', $gbkennz)) {die("Eingabefehler Grundbuch-Kennzeichen");} 54 } else { 55 $gbkennz=""; 56 } 57 19 58 include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 20 59 include("alkisnav_fkt.php"); // Funktionen … … 53 92 function familiensuche() { 54 93 // Einen Link generieren, um nach anderen Personen mit gleichem Familiennamen (Nachnamen) zu suchen. 55 // Bei versehendlich falschem Vornamen muss nicht von vorn begonnen werden. 94 // Bei versehendlich falschem Vornamen muss somit nicht von vorn begonnen werden. 95 56 96 global $gkz, $gemeinde, $epsg, $name; 57 if(isset($name)) { // Familiensuche 58 echo "\n<div class='back' title='Andere Personen mit diesem Nachnamen'>"; 59 echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer_2.png' width='16' height='16' alt='FAM' title='Andere Personen mit diesem Nachnamen'> "; 60 echo "\n<a class='back' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&name=".$name."'>\"".$name."\"</a>"; 61 echo "\n</div>\n<br>"; 97 $lnknam=urlencode(substr($name,0,50)); 98 $dspnam=htmlentities($name, ENT_QUOTES, "UTF-8"); 99 if(isset($name)) { 100 echo "\n<div class='back' title='Andere Personen mit diesem Nachnamen'>" 101 ."\n\t\t<img class='nwlink' src='ico/Eigentuemer_2.png' width='16' height='16' alt='FAM' title='Andere Personen mit diesem Nachnamen'> " 102 ."\n<a class='back' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&name=".$lnknam."'>\"".$dspnam."\"</a>" 103 ."\n</div>\n<br>"; 62 104 } 63 105 return; … … 68 110 global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $auskpath; // $debug 69 111 70 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, 71 a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer72 FROM ax_person p LEFT JOIN ax_anschrift a ON a.gml_id=ANY(p.hat)73 WHERE p.gml_id= $1 AND p.endet IS NULL AND a.endet IS NULL LIMIT 1;";112 $sql ="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, " 113 ."a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer " 114 ."FROM ax_person p LEFT JOIN ax_anschrift a ON a.gml_id=ANY(p.hat) " 115 ."WHERE p.gml_id= $1 AND p.endet IS NULL AND a.endet IS NULL LIMIT 1;"; 74 116 // Es wird nur EINE Zeile ausgewertet 75 117 … … 160 202 161 203 if($match1 != '%'){ 162 $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 " ;163 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;";204 $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 " 205 ."ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; 164 206 $v=array($match, $match1, $linelimit); 165 207 }else{ 166 $sql.="nachnameoderfirma ILIKE $1 " ;167 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;";208 $sql.="nachnameoderfirma ILIKE $1 " 209 ."ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; 168 210 $v=array($match, $linelimit); 169 211 } … … 189 231 } elseif($cnt == 1){ // Eindeutig! 190 232 $person = $persongml; 233 $name = $nachname; // familiensuche() verwendet sonst den Suchbegriff 191 234 } else { 192 235 echo "\n<p class='anz'>".$cnt." Eigentümer mit '".$name."'</p>"; // im Limit … … 213 256 // Body 214 257 // Suche nach GrundbÃŒchern der Person 215 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam 216 FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon=gb.gml_id217 JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk218 WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL;";258 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam " 259 ."FROM ax_namensnummer n JOIN ax_buchungsblatt gb ON n.istbestandteilvon=gb.gml_id " 260 ."JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk " 261 ."WHERE n.bennennt = $1 AND n.endet IS NULL AND gb.endet IS NULL AND b.endet IS NULL;"; 219 262 220 263 // Parameter $gbkennz, z.B. nach Klick auf Zeile "Bezirk" … … 275 318 $nxtbltblatt=urlencode($blatt); 276 319 $nxtbltseite=$bltseite + 1; 277 echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person."&bltbez=".$nxtbltbez."&bltblatt=".$nxtbltblatt."&bltseite=".$nxtbltseite."' " ;278 echo "title='Blättern ab ".htmlentities($beznam)." Blatt ".$blatt."'>weitere</a>";279 echo"</p>";320 echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person."&bltbez=".$nxtbltbez."&bltblatt=".$nxtbltblatt."&bltseite=".$nxtbltseite."' " 321 ."title='Blättern ab ".htmlentities($beznam)." Blatt ".$blatt."'>weitere</a>" 322 ."</p>"; 280 323 } elseif($cnt == 1) { // Eindeutig! 281 324 $blattgml=$gml; // dann Stufe 3 gleich nachschieben … … 305 348 306 349 // Grundbuch-Daten ermitteln 307 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam " ;308 $sql.="FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk ";309 $sql.="WHERE gb.gml_id= $1 AND gb.endet IS NULL and b.endet IS NULL LIMIT 1 ;";350 $sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam " 351 ."FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk " 352 ."WHERE gb.gml_id= $1 AND gb.endet IS NULL and b.endet IS NULL LIMIT 1 ;"; 310 353 $v=array($blattgml); 311 354 $res=pg_prepare("", $sql); … … 353 396 354 397 // Baustein 1: SQL-Anfang fuer beide Varianten 355 $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam, 356 s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemashl, trim(trailing from ot.gemarkung) AS gemarkungsname, ";398 $sql1 ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam, " 399 ."s1.gml_id as bsgml, s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ot.gemashl, trim(trailing from ot.gemarkung) AS gemarkungsname, "; 357 400 if($epsg == "25832") { // Transform nicht notwendig 358 $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; 359 $sql1.="st_y(st_centroid(f.wkb_geometry)) AS y "; 401 $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, st_y(st_centroid(f.wkb_geometry)) AS y "; 360 402 } else { 361 $sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, " ;362 $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y ";403 $sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, " 404 ."st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y "; 363 405 } 364 406 365 407 // NamenNummer >istbestandteilvon> buchungsblatt <istbestandteilvon< buchungsstelle-1 366 $sql1.="FROM ax_namensnummer nn 367 JOIN ax_buchungsblatt gb ON gb.gml_id=nn.istbestandteilvon368 JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk369 JOIN ax_buchungsstelle s1 ON gb.gml_id=s1.istbestandteilvon ";408 $sql1.="FROM ax_namensnummer nn " 409 ."JOIN ax_buchungsblatt gb ON gb.gml_id=nn.istbestandteilvon " 410 ."JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk " 411 ."JOIN ax_buchungsstelle s1 ON gb.gml_id=s1.istbestandteilvon "; 370 412 371 413 // Baustein A: Auswahl 1 oder 2 … … 374 416 375 417 // buchungsStelle1 (herr.) >an> buchungsStelle2 (dien.) <istGebucht< FS 376 $sqla2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id=ANY(s1.an) " ;377 $sqla2.="JOIN ax_flurstueck f ON s2.gml_id=f.istgebucht ";418 $sqla2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id=ANY(s1.an) " 419 ."JOIN ax_flurstueck f ON s2.gml_id=f.istgebucht "; 378 420 379 421 // Baustein 2: SQL-Ende fuer beide Varianten 380 $sql2 ="JOIN gema_shl ot ON f.land || f.gemarkungsnummer = ot.gemashl ";// Ortsteil381 $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 ";422 $sql2 ="JOIN gema_shl ot ON f.land || f.gemarkungsnummer = ot.gemashl " // Ortsteil 423 ."WHERE nn.benennt = $1 AND nn.endet IS NULL AND gb.endet IS NULL AND s1.endet IS NULL AND f.endet IS NULL "; 382 424 $sqlw2="AND s2.endet IS NULL "; 383 425 … … 407 449 $bltwhere =""; 408 450 } else { // BlÀttern, Fortsetzen bei ... 409 $bltwhere ="AND ((b.bezeichnung > '".$bltbez."') " ;410 $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung > '".$bltblatt."') ";411 $bltwhere.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung = '".$bltblatt."' AND cast(s1.laufendenummer AS integer) >= ".$bltbvnr." )) ";451 $bltwhere ="AND ((b.bezeichnung > '".$bltbez."') " 452 ."OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung > '".$bltblatt."') " 453 ."OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung = '".$bltblatt."' AND cast(s1.laufendenummer AS integer) >= ".$bltbvnr." )) "; 412 454 } // FlurstÃŒcke in der angeblÀtterten BVNR werden ggf. wiederholt 413 455 … … 489 531 $nxtbltblatt=urlencode($blatt); 490 532 $nxtbltseite=$bltseite + 1; 491 echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person ;492 echo "&gbkennz=".$zgbbez;// Filter Bezirk493 echo "&bltbez=".$nxtbltbez."&bltblatt=".$nxtbltblatt."&bltbvnr=".$bvnr."&bltseite=".$nxtbltseite."&bltrecht=ohne' ";494 echo "title='Blättern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>";495 echo"</p>";533 echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person 534 ."&gbkennz=".$zgbbez // Filter Bezirk 535 ."&bltbez=".$nxtbltbez."&bltblatt=".$nxtbltblatt."&bltbvnr=".$bvnr."&bltseite=".$nxtbltseite."&bltrecht=ohne' " 536 ."title='Blättern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>" 537 ."</p>"; 496 538 } elseif($zfs1 > 1) { // Meldung (Plural) ab 2, im Limit 497 539 echo "\n<p class='anz'>"; … … 567 609 $nxtbltblatt=urlencode($blatt); 568 610 $nxtbltseite=$bltseite + 1; 569 echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person ;570 echo "&gbkennz=".$zgbbez;// Filter Bezirk571 echo "&bltbez=".$nxtbltbez."&bltblatt=".$nxtbltblatt."&bltbvnr=".$bvnr."&bltseite=".$nxtbltseite."&bltrecht=nur' ";572 echo "title='Blättern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>";573 echo"</p>";611 echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$person 612 ."&gbkennz=".$zgbbez // Filter Bezirk 613 ."&bltbez=".$nxtbltbez."&bltblatt=".$nxtbltblatt."&bltbvnr=".$bvnr."&bltseite=".$nxtbltseite."&bltrecht=nur' " 614 ."title='Blättern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>" 615 ."</p>"; 574 616 } elseif($zfs2 > 1) { // ab 2 575 617 echo "\n<p class='anz'>"; … … 589 631 // 3. gb = gml_id des Grundbuches -> Suche nach FlurstÃŒcken 590 632 591 if(isset($epsg)) { 592 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 633 // Validation: Eingabefeld aus Formular. Wird aber auch an Link angehÀngt (LÀnge!) 634 // Suchbegriff (EigentÃŒmer) 635 // Hier formatierte Meldung und html-Foot. 636 if (isset($name) and $name != "" ) { 637 if (!preg_match('#^[a-zA-Z0-9ÀöÌÃÃÃÃ*,. \-&/]{1,50}$#', $name)) { 638 echo "<p class='err'>Eingabe unzulässig!</p>"; 639 // if ($debug > 1) {echo "<p class='err'>Name='".$name."' LÀnge='".strlen($name)."</p>";} 640 $name=""; 641 } 593 642 } else { 594 $epsg=$gui_epsg; // aus Conf 595 } 596 if ($gemeinde == "") { 597 $gfilter = 0; // Gemeinde ungefiltert 598 } elseif(strpos($gemeinde, ",") === false) { 599 $gfilter = 1; // Gemeinde Einzelwert 600 } else { 601 $gfilter = 2; // Gemeinde Filter-Liste 602 } 603 604 $kennztyp=ZerlegungGBKennz($gbkennz); // Grundbuch-Kennzeichen aus Parameter zerlegen: $z__ 643 $name=""; 644 } 645 646 $kennztyp=ZerlegungGBKennz($gbkennz); // Grundbuch-Kennzeichen aus Parameter zerlegen 605 647 // 2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR 606 648 … … 633 675 if ($kennztyp > 1) { 634 676 $trans="Grdb. und Flst. von .. in .."; // Filter GB-Bez, 635 // darunter sind dann Name und Bezirk farblich markiert636 677 } else { 637 $trans="Grundb. und Flurst. von .."; // der EigentÃŒmersteht darunter678 $trans="Grundb. und Flurst. von .."; // Name steht darunter 638 679 } 639 680 getGBuFSbyPerson(); // Schritte 2+3 gleichzeitig, dabei Gemeinde-Filter auf Stufe 3 … … 645 686 getEigByName(); // Suchen nach Namensanfang 646 687 647 if($person != "") { // genau EIN Treffer zum Namen688 if($person != "") { // genau EIN Treffer zum gesuchten Namen 648 689 if ($gfilter == 0) { 649 690 $trans="Grundbücher zum Namen"; -
trunk/mapbender/http/nav/alkisnav_fkt.php
r376 r399 1 1 <?php 2 /* Navigation mit ALKIS-Daten im Mapbender 2 .7- Teil "Funktionen"2 /* Navigation mit ALKIS-Daten im Mapbender 2 - Teil "Funktionen" 3 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 4 Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 6 5 Version vom 7 6 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 8 7 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 8 2018-02-15 Ãberarbeitung des Code 9 9 */ 10 10 … … 94 94 } 95 95 if ($aktuell) {$cls=" aktuell";} else {$cls="";} 96 echo "\n<div class='ga".$cls."' title='Amtsgericht'>" ;97 echo "\n\t\t<img class='nwlink' src='ico/Gericht.png' width='16' height='16' alt='AG' title='Amtsgericht'> ";98 echo "AG <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>";99 echo $agd."</a> (".$anr.")";100 echo"\n</div>";96 echo "\n<div class='ga".$cls."' title='Amtsgericht'>" 97 ."\n\t\t<img class='nwlink' src='ico/Gericht.png' width='16' height='16' alt='AG' title='Amtsgericht'> " 98 ."AG <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&ag=".$anr."'>" 99 .$agd."</a> (".$anr.")" 100 ."\n</div>"; 101 101 return; 102 102 } … … 108 108 $gnamd=htmlentities($gnam, ENT_QUOTES, "UTF-8"); 109 109 if ($aktuell) {$cls=" aktuell";} else {$cls="";} 110 echo "\n<div class='gk".$cls."' title='GB-Bezirk'>" ;111 echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.png' width='16' height='16' alt='Bez.' title='GB-Bezirk'> ";112 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez;113 echo"&gbbeznam=".urlencode($gnam);114 if ($person != "") { // EigentÃŒmer-Suche115 echo "&person=".$person."'>";116 echo"Bezirk ".$gnamd."</a> (".$zgbbez.")";117 } else { // Grundbuch-Suche118 echo "'>";119 echo"Bezirk ".$gnamd."</a> (".suchfeld($zgbbez).")";120 }110 echo "\n<div class='gk".$cls."' title='GB-Bezirk'>" 111 ."\n\t\t<img class='nwlink' src='ico/GB-Bezirk.png' width='16' height='16' alt='Bez.' title='GB-Bezirk'> " 112 ."<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gbkennz=".$zgbbez 113 ."&gbbeznam=".urlencode($gnam); 114 if ($person != "") { // EigentÃŒmer-Suche 115 echo "&person=".$person."'>" 116 ."Bezirk ".$gnamd."</a> (".$zgbbez.")"; 117 } else { // Grundbuch-Suche 118 echo "'>" 119 ."Bezirk ".$gnamd."</a> (".suchfeld($zgbbez).")"; 120 } 121 121 echo "\n</div>"; 122 122 return; … … 142 142 echo "\n\t<img class='nwlink' src='ico/GBBlatt.png' width='16' height='16' alt='Blatt' title='".$dientxt."GB-Blatt'>"; 143 143 } else { 144 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>" ;145 echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.png' width='16' height='16' alt='Blatt' title='Nachweis'>";146 echo"\n\t</a> ";144 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&gmlid=".$blattgml."\")'>" 145 ."\n\t\t<img class='nwlink' src='ico/GBBlatt_link.png' width='16' height='16' alt='Blatt' title='Nachweis'>" 146 ."\n\t</a> "; 147 147 } 148 148 149 149 // Text, Self-Link 150 echo $nam." <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg ;151 echo"&blattgml=".$blattgml."&gbkennz=".$bezirk."-".$blattlnk;150 echo $nam." <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg 151 ."&blattgml=".$blattgml."&gbkennz=".$bezirk."-".$blattlnk; 152 152 153 153 echo "&gbbeznam=".urlencode($beznam); … … 176 176 } 177 177 if ($aktuell) {$cls=" aktuell";} else {$cls="";} 178 echo "\n<div class='gs".$cls."' title='".$ti."Grundstück'>" ;179 echo"\n\t<img class='nwlink' src='ico/Grundstueck.png' width='16' height='16' alt='GS' title='".$ti."Grundstück'> ".$re;178 echo "\n<div class='gs".$cls."' title='".$ti."Grundstück'>" 179 ."\n\t<img class='nwlink' src='ico/Grundstueck.png' width='16' height='16' alt='GS' title='".$ti."Grundstück'> ".$re; 180 180 if ($blattkennz == "") { // ohne Link 181 181 echo "Buchung ".$bvnra; 182 182 } else { 183 183 $gbkennlnk=urlencode($blattkennz."-".$bvnr); // Trailing Blanks! 184 echo "<a href='".$_SERVER['SCRIPT_NAME']. "?gkz=". $gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&buchunggml=".$buchunggml ;185 echo"&gbkennz=".$gbkennlnk."'>Buchung ".$bvnra."</a>";184 echo "<a href='".$_SERVER['SCRIPT_NAME']. "?gkz=". $gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&buchunggml=".$buchunggml 185 ."&gbkennz=".$gbkennlnk."'>Buchung ".$bvnra."</a>"; 186 186 } 187 187 echo "\n</div>"; … … 195 195 $bez=urlencode($gmdname); 196 196 if ($aktuell) {$cls=" aktuell";} else {$cls="";} 197 echo "\n<div class='gm".$cls."' title='Gemeinde'>" ;198 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.png' width='16' height='16' alt='Stadt'>";199 echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gm=".$gmdnr."&bez=".$bez."'>";200 echo " ".$stadt."</a> (".substr($gmdnr, 5).")";201 echo"\n</div>";197 echo "\n<div class='gm".$cls."' title='Gemeinde'>" 198 ."\n\t\t<img class='nwlink' src='ico/Gemeinde.png' width='16' height='16' alt='Stadt'>" 199 ." Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gm=".$gmdnr."&bez=".$bez."'>" 200 ." ".$stadt."</a> (".substr($gmdnr, 5).")" 201 ."\n</div>"; 202 202 return; 203 203 } … … 221 221 if ($aktuell) {$cls=" aktuell";} else {$cls="";} 222 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).")";227 echo"\n</div>";223 echo "\n<div class='gk".$cls."' title='Gemarkung'>" 224 ."\n\t\t<img class='nwlink' src='ico/Gemarkung.png' width='16' height='16' alt='GKG' title='Gemarkung'>" 225 ." OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gkgnr."'>" 226 ." ".$gnam."</a> (".substr($gkgnr, 2).")" 227 ."\n</div>"; 228 228 return; 229 229 } … … 234 234 235 235 if ($aktuell) {$cls=" aktuell";} else {$cls="";} 236 echo "\n<div class='fs".$cls."'>"; 237 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>"; 238 echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.png' width='16' height='16' alt='FS' title='Nachweis'>"; 239 echo "\n\t</a>\n\t"; 240 241 echo " <a title='Flurstück positionieren 1:".$scalefs."' href='"; 242 echo "javascript:"; 243 echo "transtitle(\"auf Flurstück positioniert\"); "; 244 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 245 echo "parent.parent.showHighlight(".$x.",".$y.");' "; 246 echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 247 echo "onmouseout='parent.parent.hideHighlight()'>"; 236 echo "\n<div class='fs".$cls."'>" 237 ."\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&gmlid=".$fs_gml."\")'>" 238 ."\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.png' width='16' height='16' alt='FS' title='Nachweis'>" 239 ."\n\t</a>\n\t"; 240 241 echo " <a title='Flurstück positionieren 1:".$scalefs."' href='" 242 ."javascript:transtitle(\"auf Flurstück positioniert\"); " 243 ."parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); " 244 ."parent.parent.showHighlight(".$x.",".$y.");' " 245 ."onmouseover='parent.parent.showHighlight(".$x.",".$y.")' " 246 ."onmouseout='parent.parent.hideHighlight()'>"; 248 247 249 248 if ($gmkg == "" ) { … … 262 261 263 262 $nnam=htmlentities($nachname, ENT_QUOTES, "UTF-8"); 264 $namlnk=urlencode( $nachname);263 $namlnk=urlencode(substr($nachname,0,50)); 265 264 $vnam=htmlentities($vorname, ENT_QUOTES, "UTF-8"); 266 // Link zur Auskunft Person ++ Icon differenzieren nach Eigentuemerart? 267 268 echo "<div class='pe'> 269 <a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$persongml."\")'> 270 <img class='nwlink' src='ico/Eigentuemer.png' width='16' height='16' alt='EIG' title='Nachweis'> 271 </a> 272 <a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$persongml."&name=".$namlnk."'>".$nnam.", ".$vnam."</a> 273 </div>"; 265 // Link zur Auskunft Person, Icon differenzieren nach Eigentuemerart? 266 echo "<div class='pe'>" 267 ."\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$persongml."\")'>" 268 ."\n\t\t<img class='nwlink' src='ico/Eigentuemer.png' width='16' height='16' alt='EIG' title='Nachweis'>" 269 ."\n\t</a>" 270 ."\n\t<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$persongml."&name=".$namlnk."'>".$nnam.", ".$vnam."</a>" 271 ."</div>"; 274 272 return; 275 273 } … … 279 277 // Die Kopfzeile ÃŒber den Hausnummern hat einen zusÀtzlichen Koordinaten-Map-Link, das ist in der Liste zu aufwÀndig? 280 278 global $gkz, $gemeinde, $epsg, $auskpath, $gfilter, $debug; 281 //if ($debug > 1) {echo "<p class='dbg'>function zeile_strasse()<p>";} // Ablauf-Verfolgung282 279 283 280 echo "\n\t<div class='stl' title='Straßenschlüssel ".$skey."'>"; 284 281 285 282 // 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>";283 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&gmlid=".$kgml."\")'>" 284 ."\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.png' width='16' height='16' alt='STR' title='Auskunft Straße'>" 285 ."\n\t</a>"; 289 286 // 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.")";287 echo " <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$gkey."' title='in ".$gemname."'>".$sname 288 ."</a> (".$skey.")"; 292 289 293 290 // Die Gemeinde dahinter falls mehrere möglich … … 311 308 $sql1 ="SELECT s1.laufendenummer AS lfd, s1.gml_id AS bsgml, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 312 309 if($epsg == "25832") { // Transform nicht notwendig 313 $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, "; 314 $sql1.="st_y(st_centroid(f.wkb_geometry)) AS y, "; 310 $sql1.="st_x(st_centroid(f.wkb_geometry)) AS x, st_y(st_centroid(f.wkb_geometry)) AS y, "; 315 311 } else { 316 $sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, " ;317 $sql1.="st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";312 $sql1.="st_x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, " 313 ."st_y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 318 314 } 319 315 $sql1.="g.bezeichnung FROM ax_buchungsstelle s1 "; … … 323 319 324 320 // zwischen, Variante 2. Nur an oder "an" und "zu"? 325 $sqlz2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id=ANY(s1.an) 326 JOIN ax_flurstueck f ON f.istgebucht=s2.gml_id ";321 $sqlz2 ="JOIN ax_buchungsstelle s2 ON s2.gml_id=ANY(s1.an) " 322 ."JOIN ax_flurstueck f ON f.istgebucht=s2.gml_id "; 327 323 328 324 // hinten gleich 329 $sql2="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 330 WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL ";325 $sql2="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer " 326 ."WHERE s1.istbestandteilvon = $1 AND f.endet IS NULL AND s1.endet IS NULL "; 331 327 332 328 switch ($gfilter) { -
trunk/mapbender/http/nav/alkisnav_fls.php
r376 r399 1 1 <?php 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 2 /* Navigation mit ALKIS-Daten im Mapbender 2 - Teil FlurstÃŒck-Suche 3 Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 7 4 Version vom 8 5 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 9 6 2016-03-02 $gemeinde auf feste LÀnge korrigieren 10 7 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 8 2017-03-06 Korrektur: Gemeinde-Suche bei Kreis-DB in norGIS-Struktur 9 2018-02-15 Strikte Input-Validation der Parameter 11 10 */ 12 11 13 // Variable initialisieren14 $hist="n";15 $gm="";16 17 12 $cntget = extract($_GET); 18 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); // temporÀr bei Umstellung auf norGIS, besser im Mapbender 3stellig konfigurieren. 13 14 // Input-Validation 15 // Parameter aus Konfiguration oder Links sollten keine "Eingabefehler" enthalten. 16 // Entweder falsche Konfiguration oder Hack. Programm sofort abbrechen. 17 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} // Mandant, muss! 18 19 if(isset($epsg)) { // SRS, kann. Wenn als Parameter ... 20 if (preg_match('#^EPSG:[0-9]{4,5}$#', $epsg)) { // Prefix aus MB-Mapframe 21 $epsg = str_replace("EPSG:", "" , $epsg); 22 } elseif (!preg_match('#^[0-9]{4,5}$#', $epsg)) { // nur die Nummer 23 die("Eingabefehler epsg"); 24 } 25 } else { // Nichts ÃŒbergeben 26 $epsg=$gui_epsg; // dann default aus Conf 27 } 28 29 // Filter-Parameter fÃŒr Gemeindenummer in Kreis-Datenbank aus der Mapbender GUI-Konfiguration 30 if (isset($gemeinde) AND trim($gemeinde, '0') != "") { 31 if (!preg_match('#^[0-9]{1,3}$#', $gemeinde)) {die("Eingabefehler Gemeinde");} 32 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); 33 if(strpos($gemeinde, ",") === false) { 34 $gfilter = 1; // Einzelwert 35 } else { 36 $gfilter = 2; // Liste 37 } 38 } else { // Kein Filter 39 $gemeinde = ""; 40 $gfilter = 0; 41 } 42 43 // Suche nach historischen FS 44 if(isset($hist)) { // Wenn ÃŒbergeben 45 if (!preg_match('#^[jn]{1}$#', $hist)) {die("Eingabefehler hist");} // Ja/Nein 46 if ($hist == "j") { 47 $phist = true; // als Boolean 48 } else { 49 $phist = false; 50 } 51 } else { // Nichts ÃŒbergeben 52 $phist = false; // default = aktuelle FS 53 } 54 55 // Gemeinde-Nummer als Link aus der Baumstruktur 56 if (isset($gm) ) { 57 if (!preg_match('#^[0-9]{8}$#', $gm)) {die("Eingabefehler gm");} 58 } else { 59 $gm=""; // Var. init. 60 } 61 19 62 include("../../conf/alkisnav_conf.php"); 20 63 include("alkisnav_fkt.php"); // Funktionen … … 252 295 switch ($gfilter) { 253 296 case 1: // Einzelwert 254 $sql.="WHERE substring(gemshl from 6 for 3) = '".$gemeinde."' "; break; 297 $sql.="WHERE substring(gemshl from 6 for 3) = '".$gemeinde."' "; 298 break; 255 299 case 2: // Liste 256 $sql.="WHERE substring(gemshl from 6 for 3) in ('".str_replace(",", "','", $gemeinde)."') "; break; 300 $sql.="WHERE substring(gemshl from 6 for 3) in ('".str_replace(",", "','", $gemeinde)."') "; 301 break; 257 302 default: break; 258 303 } 259 $sql.=" AND endet IS NULLORDER BY gemname LIMIT $1 ;";304 $sql.="ORDER BY gemname LIMIT $1 ;"; 260 305 $res=pg_prepare("", $sql); 261 306 $res=pg_execute("", array($linelimit)); … … 269 314 $gnr=$row["gemshl"]; 270 315 $gemeindename=$row["gemname"]; 271 zeile_gemeinde($gnr, $gemeindename );316 zeile_gemeinde($gnr, $gemeindename, false); 272 317 $cnt++; 273 318 } … … 327 372 if(preg_match("/\*/",$fskennz)){ 328 373 $match = trim(preg_replace("/\*/i","%", strtoupper($fskennz))); 374 // Durchsuchte Namenspalte ist rechts mit Leerstellen aufgefÃŒllt. Darum Wildcard am Ende erzwingen. 375 if (substr($match, strlen($match), 1) != "%") {$match.="%";} 329 376 } else { 330 377 $match = trim($fskennz)."%"; … … 333 380 // Pass auf! GemeindeschlÃŒssel ist in den beiden SchlÃŒsseltabellen linksbÃŒndig gefÃŒllt, 334 381 // 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 ";382 $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 " 383 ."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 384 338 385 switch ($gfilter) { … … 735 782 // Start hier! 736 783 // =========== 737 if(isset($epsg)) { 738 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 784 if ($debug >= 1) {echo "\n<p class='dbg'>gemeinde='".$gemeinde."'. gfilter='".$gfilter."'</p>";} 785 786 // Validation: Eingabefeld aus Formular. 787 // Suchbegriff (Gemarkungsname) oder FlurstÃŒcks-Kennzeichen (ll)gggg-fff-zzzz/nnn (11). 788 // Hier formatierte Meldung und html-Foot. 789 if (isset($fskennz) and $fskennz != "" ) { 790 if (!preg_match('#^[0-9a-zA-ZÀöÌÃÃÃÃ* -]{1,25}$#', $fskennz)) { 791 echo "<p class='err'>Eingabe unzulässig!</p>"; 792 $fskennz=""; 793 } 739 794 } else { 740 #if ($debug >= 1) {echo "\n<p class='dbg'>kein EPSG gesetzt</p>";} 741 $epsg=$gui_epsg; // Conf 742 } 743 744 // Filter aus Mapbender-GUI-Einbindung 745 if ($gemeinde == "") { 746 $gfilter = 0; 747 } elseif(strpos($gemeinde, ",") === false) { 748 $gfilter = 1; // Einzelwert 749 } else { 750 $gfilter = 2; // Liste 751 } 752 if ($hist == "j") {$phist = true;} else {$phist = false;} 753 795 $fskennz=""; 796 } 797 754 798 if($gm != "") { // Self-Link aus Gemeinde-Liste 755 799 $trans="Gemarkungen zur Gemeinde"; … … 821 865 } 822 866 823 // Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion 824 // im Kopf des Ergebnisrahmens anzeigen. 867 // Nach Durchlaufen des PHP-Scriptes die zuletzt ausgefÃŒhrte Transaktion im Kopf des Ergebnisrahmens anzeigen. 825 868 // Dazu die im HTML-Header definierte Javascript-Function benutzen. 826 869 // Alternativ wird auch aus dem Javascript "positionieren Karte" dieser Titel gesetzt. … … 829 872 transtitle('".$trans."'); 830 873 </script>"; 831 832 874 ?> 833 875 -
trunk/mapbender/http/nav/alkisnav_grd.php
r376 r399 1 1 <?php 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 2 /* Navigation mit ALKIS-Daten im Mapbender 2 - Teil Grundbuch-Suche 3 Datenbank-Struktur aus dem norGIS-ALKIS-Importer. 5 4 Version vom 6 5 2016-02-11 Version fÃŒr norGIS-ALKIS-Import aus Version Classic abgeleitet. 7 6 2016-03-02 $gemeinde auf feste LÀnge korrigieren 8 7 2016-11-28 Gemeinsam genutzte Datenbanken ermöglichen 8 2018-02-15 Strikte Input-Validation der Parameter 9 9 */ 10 10 11 // Variable initialisieren12 $ag="";13 $gbkennz="";14 $buchunggml="";15 $blattgml="";16 17 11 $cntget = extract($_GET); 18 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); // temporÀr .. 12 13 // Input-Validation 14 // Parameter aus Konfiguration oder Links sollten keine "Eingabefehler" enthalten. 15 // Entweder falsche Konfiguration oder Hack. Programm sofort abbrechen. 16 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} // Mandant, muss! Formularfeld hidden 17 18 if(isset($epsg)) { // SRS, Formularfeld hidden 19 if (preg_match('#^EPSG:[0-9]{4,5}$#', $epsg)) { // Prefix aus MB-Mapframe 20 $epsg = str_replace("EPSG:", "" , $epsg); 21 } elseif (!preg_match('#^[0-9]{4,5}$#', $epsg)) { // nur die Nummer 22 die("Eingabefehler epsg"); 23 } 24 } else { // Nichts ÃŒbergeben 25 $epsg=$gui_epsg; // dann default aus Conf 26 } 27 28 // Filter-Parameter fÃŒr Gemeindenummer in Kreis-Datenbank aus der Mapbender GUI-Konfiguration, Formularfeld hidden 29 if (isset($gemeinde) AND trim($gemeinde, '0') != "") { 30 if (!preg_match('#^[0-9]{1,3}$#', $gemeinde)) {die("Eingabefehler Gemeinde");} 31 $gemeinde=str_pad($gemeinde, 3, "0", STR_PAD_LEFT); 32 if(strpos($gemeinde, ",") === false) { 33 $gfilter = 1; // Einzelwert 34 } else { 35 $gfilter = 2; // Liste 36 } 37 } else { // Kein Filter 38 $gemeinde = ""; 39 $gfilter = 0; 40 } 41 42 // Optionale Parameter. Links aus der Baumstruktur. Wenn nicht gesetzt, dann die Variable initialisieren. 43 if (isset($ag) and $ag != "" ) { // Amtsgericht-Nummer 44 if (!preg_match('#^[0-9]{4}$#', $ag)) {die("Eingabefehler Amtsgericht");} 45 } else { 46 $ag=""; 47 } 48 if (isset($buchunggml) and $buchunggml != "" ) { 49 if (!preg_match('#^[0-9a-zA-Z]{16}$#', $buchunggml)) {die("Eingabefehler GML-ID Buchung");} 50 } else { 51 $buchunggml=""; 52 } 53 if (isset($blattgml) and $blattgml != "" ) { 54 if (!preg_match('#^[0-9a-zA-Z]{16}$#', $blattgml)) {die("Eingabefehler GML-ID Blatt");} 55 } else { 56 $blattgml=""; 57 } 58 if (isset($gbbeznam) and $gbbeznam != "" ) { 59 if (!preg_match('#^[a-zA-ZÀÌöÃÃÃÃ12 -]{3,40}$#', $gbbeznam)) {die("Eingabefehler Grundbuch-Bezirks-Name '".$gbbeznam."'");} 60 } else { 61 $gbbeznam=""; 62 } 63 19 64 include("../../conf/alkisnav_conf.php"); // Konfigurations-Einstellungen 20 65 include("alkisnav_fkt.php"); // Funktionen … … 59 104 $linelimit=40; 60 105 61 $sql ="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle 62 WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL 63 ORDER BY bezeichnung LIMIT $1 ;"; 106 $sql="SELECT stelle, bezeichnung AS ag FROM ax_dienststelle " 107 ."WHERE stelle IN (".$liste_ag.") AND stellenart = 1000 AND endet IS NULL ORDER BY bezeichnung LIMIT $1 ;"; 64 108 $res = pg_prepare("", $sql); 65 109 $res = pg_execute("", array($linelimit)); … … 99 143 // Body 100 144 // Die Subquery stellt sicher, dass nur Bezirke aufgelistet werden, die auch BlÀtter enthalten 101 $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g 102 JOIN ax_dienststelle a ON g.stelle=a.stelle 103 WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL 104 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 105 ORDER BY g.bezeichnung LIMIT $2 ;"; 145 $sql ="SELECT g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g JOIN ax_dienststelle a ON g.stelle=a.stelle " 146 ."WHERE a.stelle = $1 AND a.stellenart = 1000 AND a.endet IS NULL AND g.endet IS NULL " 147 ."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 " 148 ."ORDER BY g.bezeichnung LIMIT $2 ;"; 106 149 107 150 $v = array($agkey, $linelimit); … … 135 178 // Parameter = SchlÃŒssel des Bezirks 136 179 #global $debug; 137 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g 138 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;";180 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g " 181 ."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;"; 139 182 $v=array($gbbez); 140 183 $res=pg_prepare("", $sql); … … 166 209 $linelimit=80; 167 210 168 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g 169 JOIN ax_dienststelle a ON g.stelle=a.stelle170 WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL171 ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;";// "AND a.stellenart=1000 " Amtsgericht211 $sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g " 212 ."JOIN ax_dienststelle a ON g.stelle=a.stelle " 213 ."WHERE g.bezeichnung ILIKE $1 AND g.endet IS NULL AND a.endet IS NULL " 214 ."ORDER BY a.bezeichnung, g.bezeichnung LIMIT $2 ;"; // "AND a.stellenart=1000 " Amtsgericht 172 215 if ( $gbkennz == "") { 173 216 $match = "%"; … … 175 218 if(preg_match("/\*/",$gbkennz)){ 176 219 $match = trim(preg_replace("/\*/i","%", strtoupper($gbkennz))); 220 if (substr($match, strlen($match), 1) != "%") {$match.="%";} // Wildcard am Ende obligatorisch 177 221 } else { 178 222 $match = trim($gbkennz)."%"; … … 227 271 } 228 272 // Body 229 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b 230 WHERE b.bezirk= $1 AND b.endet IS NULL ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;";273 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b " 274 ."WHERE b.bezirk= $1 AND b.endet IS NULL ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;"; 231 275 $v=array($zgbbez, $linelimit); 232 276 $res=pg_prepare("", $sql); … … 251 295 echo "\n<p>Geben sie ein: '".$zgbbez."-999A'<br>wobei '999A' = gesuchtes GB-Blatt</p>"; 252 296 // Vorbelegen des Eingabefeldes fÃŒr neue Suche 253 echo "<script type='text/javascript'>parent.GrdGazetteerFrame.gbkennz.value='".$zgbbez."- ?';</script>";297 echo "<script type='text/javascript'>parent.GrdGazetteerFrame.gbkennz.value='".$zgbbez."-';</script>"; 254 298 } elseif ($cntbl > 1) { 255 299 echo "\n<p class='anz'>".$cntbl." Blätter</p>"; // im Limit … … 261 305 // Kennzeichen "Bezirk + Blatt" eingegeben. Dazu die gml_id des Blattes ermitteln. 262 306 global $debug, $zgbbez, $zblatt, $zblattn, $zblattz; 263 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b 264 WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung ";307 $sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b " 308 ."WHERE b.bezirk= $1 AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 265 309 266 310 if ($zblattz == "") { // Ohne Buchstabenerweiterung: Formate '123','000123 ','0000123' … … 310 354 311 355 // Blatt -> B u c h u n g s s t e l l e 312 $sql ="SELECT s.gml_id FROM ax_buchungsstelle s 313 JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id314 WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung ";356 $sql ="SELECT s.gml_id FROM ax_buchungsstelle s " 357 ."JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id " 358 ."WHERE b.bezirk= $1 AND s.endet IS NULL AND b.endet IS NULL AND b.buchungsblattnummermitbuchstabenerweiterung "; 315 359 316 360 if ($zblattz == "") { // Ohne Buchstabenerweiterung … … 425 469 // Recht "an" (dienende Buchungen und ihre Flurst.) 426 470 427 $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, 428 bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, 429 gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez 430 FROM ax_buchungsstelle sh 431 JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) 432 JOIN ax_flurstueck f ON f.istgebucht=sd.gml_id 433 JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 434 JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id 435 JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk 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 438 .$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 471 $sql =$sqlanf.", sd.gml_id AS diengml, sd.laufendenummer AS dienlfd, bd.gml_id AS dienbltgml, bd.buchungsblattnummermitbuchstabenerweiterung AS dienblatt, " 472 ."gd.stelle, gd.gml_id AS dienbezgml, gd.bezirk, gd.bezeichnung AS diengbbez " 473 ."FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) " 474 ."JOIN ax_flurstueck f ON f.istgebucht=sd.gml_id " 475 ."JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer " 476 ."JOIN ax_buchungsblatt bd ON sd.istbestandteilvon=bd.gml_id " 477 ."JOIN ax_buchungsblattbezirk gd ON bd.land=gd.land AND bd.bezirk=gd.bezirk " 478 ."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 " 479 480 .$sqlfilter."ORDER BY gd.bezeichnung, bd.buchungsblattnummermitbuchstabenerweiterung, cast(sd.laufendenummer AS integer), f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;"; 439 481 440 482 $v=array($buchunggml); … … 496 538 // Start hier! 497 539 // =========== 498 if(isset($epsg)) { 499 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 540 541 // Validation: Eingabefeld aus Formular. 542 // Suchbegriff (Bezirksname) oder Grundbuch-Kennzeichen gggg-999999z-BVNR (17). 543 // Hier formatierte Meldung und html-Foot. 544 if (isset($gbkennz) and $gbkennz != "" ) { 545 if (!preg_match('#^[0-9a-zA-ZÀöÌÃÃÃÃ* -]{1,25}$#', $gbkennz)) { 546 echo "<p class='err'>Eingabe unzulässig!</p>"; 547 $gbkennz=""; 548 } 500 549 } else { 501 $epsg=$gui_epsg; // aus Conf 502 } 503 504 // Filter aus Conf-Datei 505 if ($gemeinde == "") { 506 $gfilter = 0; // ungefiltert 507 } elseif(strpos($gemeinde, ",") === false) { 508 $gfilter = 1; // Einzelwert 509 } else { 510 $gfilter = 2; // Liste 511 // $gemeinde = "'".str_replace(",", "','", $gemeinde)."'"; // Jedes Element in '' 550 $gbkennz=""; 512 551 } 513 552
Note: See TracChangeset
for help on using the changeset viewer.