Changeset 412 for trunk/info/info/alkisn/alkisexport.php
- Timestamp:
- 11/09/18 14:17:35 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkisn/alkisexport.php
r405 r412 12 12 ?gkz=mandant&tabtyp=strasse&haus=m&gmlid=DE... Filter &haus=m/o = mit oder ohne Hausnummer 13 13 ?gkz=mandant&tabtyp=strasse&haus=o bei Strasse auch ohne gmlid zulÀssig - nicht verwenden wenn aus NBA unscharf geladen 14 ?gkz240,tabtyp=flstliste&gmlliste=DE...,DE.... 14 15 Beispiele fÃŒr Fehler: 15 16 ?gkz=270&tabtyp=gemarkung&gmlid=2662 … … 29 30 2017-12-20 Nur eine Adresse zur Person (Siehe Views in "views_exp_csv.sql") 30 31 2018-05-03 Aufruf aus neuem GrundstÃŒcksnachweis: tabtyp='buchung', angepasster View "exp_csv" notwendig 32 2018-10-16 Neuer Aufruf-Typ aus der rÀumlichen Selektion, &tabtyp=flstliste&prefix=DENW15&gmlliste=AL...,AL.... 31 33 32 34 ToDo: … … 73 75 74 76 // strikte Validierung aller Parameter 75 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 77 if ( isset($gmlid) ) { 78 if ( !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 79 } else { 80 $gmlid=""; 81 } 82 83 // FS-Limit? x (16+1) = 84 if ( isset($gmlliste) ) { 85 if (!preg_match("#^[0-9A-Za-z,]{16,2000}$#", $gmlliste)) { 86 // echo "\n<p>gmlliste=".$gmlliste."</p>\n"; // NUR TEST 87 die("Eingabefehler gmlliste"); 88 } 89 } 90 76 91 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 77 92 if (isset($gemarkung)) { … … 118 133 $filename='alkis_'.$tabtyp.'_'.$gemarkung.'.csv'; 119 134 120 /* // $gmlid zu strasse noch notwendig solange kein Filter auf "Gemeinde" verwendet wird.135 /* // $gmlid zu strasse ist noch notwendig solange kein Filter auf "Gemeinde" verwendet wird. 121 136 } elseif ($haus == 'm' or $haus == 'o') { // Sonderfall 2 - alle mit/ohne Hausnummer, nur ÃŒber View "exp_csv_str" möglich 122 137 if ($tabtyp != 'strasse') { … … 130 145 } 131 146 */ 147 } elseif ($gmlliste != '') { // Sonderfall 3 - FlurstÃŒcke aus rÀumlicher Selection 148 if ($tabtyp != 'flstliste') { 149 $err = "Fehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Liste der GML-ID."; 150 echo "\n".$err; exit ($err); 151 } 152 if (!isset($prefix) or !preg_match("#^[A-Z0-9,]{6}$#", $prefix)) { 153 die("Eingabefehler prefix"); 154 } 155 $filename='alkis_gebiet.csv'; // RÀumliche Selection 156 132 157 } else { 133 158 $err="\nFehler: Kein passender Wert fuer die Suche angegeben."; … … 151 176 pg_set_client_encoding($con, 'LATIN1'); // FÃŒr Excel kein UTF8 152 177 153 $viewname="exp_csv"; // Standard-View, in der DB gespeichert178 //$viewname="exp_csv"; // Standard-View, in der DB gespeichert 154 179 $v=array($gmlid); // Standard-Filter-Feld 155 180 156 181 // Der Parameter "Tabellentyp" bestimmt den Namen des Filter-Feldes aus dem View "exp_csv". 157 182 switch ($tabtyp) { // zulaessige Werte fuer &tabtyp= 183 158 184 case 'flurstueck': // ax_flurstueck.gml_id 159 $filter = "fsgml"; 160 break; 185 $sql="SELECT * FROM exp_csv WHERE fsgml = $1 "; 186 break; 187 161 188 case 'grundbuch': // ax_buchungsblatt.gml_id 162 $filter = "gbgml"; 163 break; 189 $sql="SELECT * FROM exp_csv WHERE gbgml = $1 "; 190 break; 191 164 192 case 'buchung': // ax_buchungsstelle.gml_id 165 $filter = "gsgml"; 166 break; 193 $sql="SELECT * FROM exp_csv WHERE gsgml = $1 "; 194 break; 195 167 196 case 'person': // ax_person.gml_id 168 $filter = "psgml"; 169 break; 197 $sql="SELECT * FROM exp_csv WHERE psgml = $1 "; 198 break; 199 170 200 case 'strasse': // ax_lagebezeichnungkatalogeintrag.gml_id = StraÃe-GML-ID 171 $filter = "stgml"; 172 $viewname="exp_csv_str"; // alternativer View mit "_str", ist in der Datenbank gespeichert 173 break; 201 // alternativer View mit "_str", ist in der Datenbank gespeichert 202 $sql="SELECT * FROM exp_csv_str WHERE stgml = $1 "; 203 break; 204 174 205 case 'gemarkung': // SONDERfall als Parameter wird "Gemarkungsnummer" und nicht "gml_id" geliefert 175 $filter = "gemarkungsnummer"; 176 $v=array($gemarkung); // anderes Filter-Feld, anderer Parameter 177 break; 206 $sql="SELECT * FROM exp_csv WHERE gemarkungsnummer = $1 "; 207 $v=array($gemarkung); 208 break; 209 210 case 'flstliste': 211 // Ganze IN-Liste als $1 in SQL bringt kein Ergebnis. 212 // GML-ID aufgeteilt: 6 Byte konstant, 10 Byte variabel in Liste 213 //$prefix vor JEDES Element setzen oder mit Substrings suchen? 214 // $sql="SELECT * FROM exp_csv WHERE fsgml IN ('".str_replace(",", "','", $gmlliste)."')"; // komplette GML-ID in Liste 215 $sql="SELECT * FROM exp_csv WHERE substring(fsgml from 1 for 6) = $1 " 216 ." AND substring(fsgml from 7 for 10) IN ('".str_replace(",", "','", $gmlliste)."')"; 217 $v=array($prefix); 218 break; 219 178 220 default: 179 221 $err="\nFalscher Parameter '".$tabtyp."'"; … … 182 224 } 183 225 184 // Daten aus gespeichertem View, zusaetzlich Filter: "feld"='wert' mitgeben185 $sql="SELECT * FROM ".$viewname." WHERE ".$filter." = $1 ";186 187 226 if ($haus == 'm' or $haus == 'o') { // nur FS mit/ohne verschl. Lagebez. 188 if ($gmlid == '') { // m/o-Filter als einziger Filter189 $sql="SELECT * FROM ".$viewname." WHERE fall='".$haus."' "; // Ersetzen190 $v=array(); // kein Filter-Feld191 // ToDo: Filter auf Gemeinde notwendig, wenn nicht auf strasse gefiltert wird.192 // - Sonst Ausgabe von Rand-FlurstÃŒcken (bei geometrischer Filterung des NBA-Verfahrens)193 // - Sonst ggf. Ausgabe Kreisgebiet194 } else { // als zusÀtzlicher Filter AND195 $sql.=" AND fall='".$haus."' "; // m/o-Filter AnhÀngen196 }227 // if ($gmlid == '') { // m/o-Filter als einziger Filter 228 // $sql="SELECT * FROM ".$viewname." WHERE fall='".$haus."' "; // Ersetzen 229 // $v=array(); // kein Filter-Feld 230 // // ToDo: Filter auf Gemeinde notwendig, wenn nicht auf strasse gefiltert wird. 231 // // - Sonst Ausgabe von Rand-FlurstÃŒcken (bei geometrischer Filterung des NBA-Verfahrens) 232 // // - Sonst ggf. Ausgabe Kreisgebiet 233 // } else { // als zusÀtzlicher Filter AND 234 $sql.=" AND fall='".$haus."' "; // m/o-Filter AnhÀngen 235 // } 197 236 } 198 237 … … 311 350 pg_free_result($res); 312 351 if ($i == 1) { // nur Kopf 313 $err="\nKein Treffer fuer gml_id='".$gmlid."'"; 352 if ( $gmlid == '' ) { 353 $err="\nKein Treffer"; 354 // echo "\n".$sql."\n".$v[0]."\n".$dbconn."\n"; 355 } else { 356 $err="\nKein Treffer fuer gml_id='".$gmlid."'"; 357 } 314 358 exit ($err); 315 359 }
Note: See TracChangeset
for help on using the changeset viewer.