Ignore:
Timestamp:
12/05/16 10:57:00 (7 years ago)
Author:
frank.jaeger
Message:

ALKIS-Auskunft: in info/alkis/ den Stand 372 wieder hergestellt (Versionen aus "alkisn" versehendlich dort hoch geladen).
In info/alkisn/ Nachbesserungen an Gebäude-Name und Nutzungsart.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/info/info/alkis/alkisexport.php

    r376 r377  
    66        Der View verkettet Flurstueck - Buchungsstelle - Grundbuch - Eigentuemer 
    77        Die Lagebezeichnung des FlurstÃŒcks wird in ein Feld komprimiert. 
    8         Parameter Beispiele:  
    9                 ?gkz=mandant&tabtyp=flurstueck/grundbuch/person&gmlid=DE... 
    10                 ?gkz=270&tabtyp=gemarkung&gemarkung=2662    
    11                 ?gkz=270&gemarkung=2662 
    12         Parameter Beispiele fÃŒr Fehler: 
    13                 ?gkz=270&tabtyp=gemarkung&gmlid=2662 
    14                 ?gkz=270&tabtyp=flurstueck&gemarkung=2662 
    15                 ?gkz=270&tabtyp=flurstueck 
    16                 ?gkz=270&gmlid=2662 
     8        Parameter: gkz=mandant&gmlid=DE...&tabtyp=flurstueck/grundbuch/person 
    179 
    18         Version 
    19         2016-02-23 Version fuer norGIS-ALKIS-Import 
    20         2016-10-18 Export einer ganzen Gemarkung zulassen (Sonderfall bei den Parametern) 
    21         2016-11-29 Gemeinsam genutzte Datenbanken ermöglichen 
    22  
    23 ++ ToDo: SQL "exp_csv_str" und "exp_csv_str" optimieren 
     10        2014-01-17 krz f.j. 
     11        2014-01-20 weitere Spalten und verbesserte Formatierung 
     12        2014-01-21 Der View liefert "Rechtsgemeinschaft" nun als Feld in allen Personen-SÀtzen  
     13                        eines GB-Blattes statt als eigenen "Satz ohne Person". 
     14        2014-01-27 Erweiterung auf Filter "strasse" ("gml_id" aus "ax_lagebezeichnungkatalogeintrag") 
     15        2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
     16        2014-09-10 Bei Relationen den Timestamp abschneiden 
     17        2014-09-30 RÃŒckbau substring(gml_id) 
     18        2015-12-09 LATIN1 in '' 
    2419*/ 
    2520 
     
    3631        $res=pg_prepare("", $sql); 
    3732        $res=pg_execute("", $v); 
    38         if (!$res) {return "** Fehler bei Lagebezeichnung **";} 
     33        if (!$res) { 
     34                return "** Fehler bei Lagebezeichnung **"; //.$sql; 
     35        } 
    3936        $j=0; 
    4037        $lagehsnr=""; 
     
    5754// HIER START // 
    5855 
    59 $gkz=''; $tabtyp = ''; $gemarkung=''; $gmlid=''; // erwartete Parameter initialisieren 
    60 $cntget = extract($_GET); // aktuelle Parameter aus URL auslesen 
    61 require_once("alkis_conf_location.php"); // Konfiguration laden 
    62 include("alkisfkt.php"); // Funktionen der ALKIS-Auskunft laden 
    63  
    64 if ($tabtyp == '') { // Parameter (-kombinationen) pruefen 
    65         if ($gemarkung == '') { // Beim Wert "gmlid" MUSS man die Tabelle dazu nennen 
    66                 exit ("Fehler: Art des Suchfilters nicht angeben."); 
    67         } else {  // Art des Wertes bestimmt eindeutig den Filter 
    68                 $tabtyp = 'gemarkung'; 
    69         } 
    70 } elseif ($tabtyp == 'gemarkung') { 
    71         if ($gemarkung == '') { 
    72                 exit ("Fehler: Gemarkungsnummer nicht angeben."); 
    73         } 
    74 } 
    75 if ($gmlid == '') { 
    76         if ($gemarkung == '') { 
    77                 exit ("Fehler: Kein Wert fuer die Suche angegeben."); 
    78         } else { // Wert fÃŒr Gemarkungsnummer angegeben 
    79                 if ($tabtyp != 'gemarkung') { 
    80                         exit ("Fehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Wert fuer Gemarkungsnummer."); 
    81                 } 
    82                 $filename='alkis_'.$tabtyp.'_'.$gemarkung.'.csv'; 
    83         } 
    84 } else { // alles gut 
    85         $filename='alkis_'.$tabtyp.'_'.$gmlid.'.csv'; 
    86 } 
    87  
    88 // DOWNLOAD der CSV-Datei vorbereiten (statt HTML-Ausgabe) 
     56$cntget = extract($_GET); // Parameter aus URL lesen 
    8957header('Content-type: application/octet-stream'); 
    90 header('Content-Disposition: attachment; filename="'.$filename.'"'); 
     58header('Content-Disposition: attachment; filename="alkis_'.$tabtyp.'_'.$gmlid.'.csv"'); 
     59require_once("alkis_conf_location.php"); 
     60include("alkisfkt.php"); 
    9161 
    9262// CSV-Ausgabe: Kopfzeile mit Feldnamen 
     
    9464 
    9565// Datenbank-Verbindung 
    96 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisexport.php'"); 
    97 if (!$con) {exit("Fehler beim Verbinden der DB");} 
     66$con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass); 
     67if (!$con) { 
     68        exit("Fehler beim Verbinden der DB"); 
     69} 
    9870pg_set_client_encoding($con, 'LATIN1'); // FÃŒr Excel kein UTF8 ausgeben 
    99  
    100 $viewname="exp_csv"; // Standard-View, ist in der Datenbank gespeichert 
    101 $v=array($gmlid); // Standard-Filter-Feld 
    10271 
    10372// Der Parameter "Tabellentyp" bestimmt den Namen des Filter-Feldes aus dem View "exp_csv". 
    10473switch ($tabtyp) { // zulaessige Werte fuer &tabtyp= 
    105         case 'flurstueck': // ax_flurstueck.gml_id 
    106                 $filter = "fsgml"; 
    107                 break; 
    108         case 'grundbuch': // ax_buchungsblatt.gml_id 
    109                 $filter = "gbgml"; 
    110                 break; 
    111         case 'person': // ax_person.gml_id 
    112                 $filter = "psgml"; 
    113                 break; 
    114         case 'strasse': // ax_lagebezeichnungkatalogeintrag.gml_id = Straße-GML-ID 
    115                 $filter = "stgml"; 
    116                 $viewname="exp_csv_str"; // alternativer View mit "_str", ist in der Datenbank gespeichert   
    117                 break; 
    118         case 'gemarkung': // SONDERfall als Parameter wird "Gemarkungsnummer" und nicht "gml_id" geliefert 
    119                 $filter = "gemarkungsnummer"; 
    120                 $v=array($gemarkung); // anderes Filter-Feld, anderer Parameter 
    121                 break; 
    122         default: 
    123                 exit("Falscher Parameter '".$tabtyp."'"); 
    124                 break; 
     74        case 'flurstueck': $filter = "fsgml"; break; // ax_flurstueck.gml_id 
     75        case 'grundbuch':  $filter = "gbgml"; break; // ax_buchungsblatt.gml_id 
     76        case 'person':     $filter = "psgml"; break; // ax_person.gml_id 
     77        case 'strasse':    $filter = "stgml"; break; // ax_lagebezeichnungkatalogeintrag.gml_id = Straße-GML-ID 
     78        default: exit("Falscher Parameter '".$tabtyp."'"); break; 
    12579} 
    12680 
    12781// Daten aus gespeichertem View, zusaetzlich Filter: "feld"='wert' mitgeben 
    128 $sql="SELECT * FROM ".$viewname." WHERE ".$filter." = $1 "; 
     82if ($tabtyp == 'strasse') { // Sonderversion 
     83        $sql="SELECT * FROM exp_csv_str WHERE ".$filter." = $1 "; 
     84} else { 
     85        $sql="SELECT * FROM exp_csv WHERE ".$filter." = $1 "; 
     86} 
    12987 
     88$v=array($gmlid); 
    13089$res=pg_prepare("", $sql); 
    13190$res=pg_execute("", $v); 
     
    147106        $flstnummer=$row["zaehler"]; 
    148107        $nenner=$row["nenner"]; 
    149         // Bruchnummer kann in Excel als Datum interpretiert werden. In '' setzen. 
    150         if ($nenner > 0) {$flstnummer="'".$flstnummer."/".$nenner."'";} // BruchNr 
     108        if ($nenner > 0) {$flstnummer.="/".$nenner;} // BruchNr 
    151109        $fs_flae=$row["fs_flae"]; // amtliche Fl. aus DB-Feld 
    152110 
     
    182140                        $rechtsg=$row["nam_bes"]; // Beschrieb der Rechtsgemeinschaft 
    183141                } else { 
    184                 //      $rechtsg=rechtsgemeinschaft($nam_adr); // EntschlÃŒsseln 
    185                         $rechtsg=$row["nam_adrv"]; // Art der Rechtsgemeischaft (Value zum Key) 
     142                        $rechtsg=rechtsgemeinschaft($nam_adr); // EntschlÃŒsseln 
    186143                } 
    187144        } 
     
    191148        $nana=$row["nachnameoderfirma"]; 
    192149        $namteil=$row["namensbestandteil"]; 
    193         //$name=anrede($row["anrede"]);   
    194         $name=$row["anrv"]; // Anrede (Value zum Key) 
     150        $name=anrede($row["anrede"]); 
    195151        if ($name != "") {$name.=" ";} // Trenner 
    196152        if ($namteil != "") {$name.=$namteil." ";} // von und zu 
Note: See TracChangeset for help on using the changeset viewer.