Changeset 199


Ignore:
Timestamp:
01/17/13 17:53:56 (11 years ago)
Author:
frank.jaeger
Message:

Der Flurstücks-Nachweis kann alternativ zur gml_id nun auch mit einem FS-Kennzeichen im alten ALB-Format aufgerufen werden. Dies ermöglicht Querverbindungen aus anderen Fachkatastern, die ein Flurstückskennzeichen gespeichert haben, aber keine gml_id.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/var/www/info/alkis/alkisfsnw.php

    r198 r199  
    1313        2012-07-24 Export als CSV, pg_free_result(), pg_close() 
    1414        2012-11-27 split deprecated, besser: explode 
     15        2013-01-17 FS-Kennzeichen (ALB-Format) als Parameter statt gmlid möglich 
    1516 
    1617        ToDo: 
     
    5354if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n"; 
    5455 
     56// Ein (ALB- ?) FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt 
     57if ($gmlid == '' and $fskennz != '') { 
     58        // Übergabe Format z.B. "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz" 
     59        $arr=explode("-", $fskennz, 4); 
     60        $zgemkg=trim($arr[0]); 
     61        if (strlen($zgemkg) == 20 and $arr[1] == "") { // Oh, ist wohl schon das Datenbank-Feldformat  
     62                $fskzdb=$zgemkg; 
     63        } else { // Nö, ist wohl eher ALB-Format 
     64                // Das Kennzeichen auseinander nehmen.  
     65                if (strlen($zgemkg) == 6) { 
     66                        $land=substr($zgemkg, 0, 2); 
     67                        $zgemkg=substr($zgemkg, 2, 4); 
     68                } else { // kein schöner Land .. 
     69                        $land='05'; // NRW, ToDo: Default-Land aus config 
     70                } 
     71                $zflur=str_pad($arr[1], 3 , "0", STR_PAD_LEFT); // Flur-Nr 
     72                $zfsnr=trim($arr[2]); // FlurstÃŒcke-Nr 
     73                $zn=explode("/", $zfsnr, 2); // Bruch? 
     74                $zzaehler=str_pad(trim($zn[0]), 5 , "0", STR_PAD_LEFT);  
     75                $znenner=trim($zn[1]); 
     76                if (trim($znenner, " 0.") == "") { // kein Bruch oder nur Nullen 
     77                        $znenner="____"; // in DB-Spalte mit Tiefstrich aufgefÃŒllt 
     78                } else { 
     79                        $zn=explode(".", $znenner, 2); // .00 wegwerfen 
     80                        $znenner=str_pad($zn[0], 4 , "0", STR_PAD_LEFT); 
     81                } 
     82                // nun die Teile stellengerecht wieder zusammen setzen           
     83                $fskzdb=$land.$zgemkg.$zflur.$zzaehler.$znenner.'__'; // FS-Kennz. Format Datenbank 
     84        } 
     85        // Feld flurstueckskennzeichen ist in DB indiziert   
     86        // Format z.B.'052647002001910013__' oder '05264700200012______' 
     87        $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 ;"; 
     88 
     89        $v = array($fskzdb); 
     90        $res = pg_prepare("", $sql); 
     91        $res = pg_execute("", $v); 
     92        if ($row = pg_fetch_array($res)) { 
     93                $gmlid=$row["gml_id"]; 
     94        } else { 
     95                echo "<p class='err'>Fehler! Kein Treffer f&uuml;r Flurst&uuml;ckskennzeichen='".$fskennz."' (".$fskzdb.")</p>"; 
     96        } 
     97        pg_free_result($res); 
     98} 
     99 
    55100// F L U R S T U E C K 
    56101$sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae, f.zeitpunktderentstehung, "; 
    57102$sql.="g.gemarkungsnummer, g.bezeichnung "; 
    58103$sql.="FROM ax_flurstueck f "; 
    59 $sql.="LEFT JOIN ax_gemarkung  g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
     104$sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    60105$sql.="WHERE f.gml_id= $1"; 
    61106 
    62 $v = array($gmlid); 
     107$v = array($gmlid); // mit gml_id suchen 
    63108$res = pg_prepare("", $sql); 
    64109$res = pg_execute("", $v); 
     
    83128        $entsteh=$row["zeitpunktderentstehung"]; 
    84129        $name=$row["name"]; // Fortfuehrungsnummer(n) 
    85         //$arrn = split(",", trim($name, "{}") ); // deprecated 
    86130        $arrn = explode(",", trim($name, "{}") ); // PHP-Array 
    87131} else { 
    88         echo "<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>"; 
     132        echo "<p class='err'>Fehler! Kein Treffer f&uuml;r gml_id=".$gmlid."</p>"; 
    89133        if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 
    90134} 
     
    718762                <a title="Drucken" href='javascript:window.print()'><img src="ico/print.ico" width="16" height="16" alt="Drucken" /></a>&nbsp; 
    719763                <a title="Export Flurst&uuml;cksdaten als CSV" href='javascript:ALKISexportFS()'><img src="ico/download_fs.ico" width="32" height="16" alt="Export" /></a>&nbsp; 
    720 <!--    <a title="Export Grundbuchdaten als CSV" href='javascript:ALKISexportGB()'><img src="ico/download_gb.ico" width="32" height="16" alt="Export" /></a>&nbsp; --> 
     764                <a title="Export Grundbuchdaten als CSV" href='javascript:ALKISexportGB()'><img src="ico/download_gb.ico" width="32" height="16" alt="Export" /></a>&nbsp; 
    721765<!--    <a title="Seite schlie&szlig;en" href="javascript:window.close()"><img src="ico/close.ico" width="16" height="16" alt="Ende" /></a>     --> 
    722766        </div> 
Note: See TracChangeset for help on using the changeset viewer.