Ignore:
Timestamp:
02/07/11 16:24:47 (13 years ago)
Author:
frank.jaeger
Message:

ALKIS-Auskunft überarbeitet

File:
1 edited

Legend:

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

    r78 r81  
    1111        17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute) 
    1212        01.02.2011  *Left* Join - Fehlertoleranz bei unvollstaendigen Schluesseltabellen 
     13        07.02.2011  JOIN ax_gemeinde auch ueber regierungsbezirk 
     14        ToDo: Entschluesseln Kreis usw. 
    1315*/ 
    1416ini_set('error_reporting', 'E_ALL & ~ E_NOTICE'); 
     
    7274 
    7375// Lagebezeichnung 
    74 $sql ="SELECT s.bezeichnung AS snam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, "; 
     76$sql ="SELECT s.bezeichnung AS snam, k.bezeichnung AS knam, g.bezeichnung AS gnam, l.land, l.regierungsbezirk, l.kreis, l.gemeinde, l.lage, "; 
    7577switch ($ltyp) { 
    7678        case "m": // "Mit HsNr" 
     
    8587} 
    8688$sql.="FROM ".$tnam." l "; 
    87  
    88 // Gemeinde entschluesseln 
    89 $sql.="LEFT JOIN  ax_gemeinde g ON l.kreis=g.kreis AND l.gemeinde=g.gemeinde "; 
    90  
    91 // Strasse entschluesseln 
     89// Gemeinde, Kreis, Strasse entschluesseln 
     90$sql.="LEFT JOIN ax_gemeinde g ON l.land=g.land AND l.regierungsbezirk=g.regierungsbezirk AND l.kreis=g.kreis AND l.gemeinde=g.gemeinde "; 
     91$sql.="LEFT JOIN ax_kreisregion k ON l.land=k.land AND l.regierungsbezirk=k.regierungsbezirk AND l.kreis=k.kreis "; 
    9292$sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s "; 
    9393// Besonderheit: unterschiedliche Feldformate und Fuellungen!!! 
    94  
    9594switch ($ltyp) { 
    9695        case "o": //"Ohne HsNr" 
     
    9897                //  in ax_lagebezeichnungKatalogeintrag mit fÃŒhrenden Nullen 
    9998                //  in ax_lagebezeichnungOhneHausnummer jedoch ohne fÃŒhrende Nullen 
    100                 $sql.="ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=trim(leading '0' from s.lage) "; 
     99                $sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=trim(leading '0' from s.lage) "; 
    101100        break; 
    102101        default: // "Mit HsNr" + "mit PseudoNr" 
     
    104103                // ax_LagebezeichnungMitHausnummer.lage    ist integer, 
    105104                // ax_lagebezeichnungMitPseudonummer.lage  ist integer, 
    106                 $sql.="ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage "; 
     105                $sql.="ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND to_char(l.lage, 'FM00000')=s.lage "; 
    107106        break; 
    108107} 
     
    119118        $regbez=$row["regierungsbezirk"]; 
    120119        $kreis=$row["kreis"]; 
     120        $knam=$row["knam"]; 
    121121        $gem  =$row["gemeinde"]; 
    122122        $gnam =$row["gnam"]; 
     
    125125        $unver=$row["unverschluesselt"]; // Gewanne 
    126126        $kennz=$land."-".$regbez."-".$kreis."-".$gem."-".$lage."-"; 
    127  
    128127        switch ($ltyp) { 
    129  
    130128                case "m": // "Mit HsNr" 
    131129                        $hsnr=$row["hausnummer"]; 
     
    135133                        echo "<p class='lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken 
    136134                break; 
    137  
    138135                case "p": // "mit PseudoNr" 
    139136                        $pseu=$row["pseudonummer"]; 
     
    141138                        $kennz.=$pseu."-".$lfd; 
    142139                        $untertitel="NebengebÀude mit laufender Nummer (Lagebezeichnung mit Pseudonummer)"; 
    143                         // Balken 
    144                 //      echo "<p class='lage'>ALKIS Lagebezeichnung mit Pseudonummer ".$kennz."&nbsp;</p>\n"; // Balken 
    145140                        echo "<p class='lage'>ALKIS Lagebezeichnung NebengebÀude ".$kennz."&nbsp;</p>\n"; // Balken 
    146141                break; 
    147  
    148142                case "o": //"Ohne HsNr" 
    149143                        if ($lage == "") { 
     
    153147                        } 
    154148                        $untertitel="Stra&szlig;e ohne Hausnummer und/oder Gewanne (unverschl&uuml;sselte Lage)"; 
    155                         // Balken 
    156149                        echo "<p class='lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz."&nbsp;</p>\n"; // Balken 
    157150                break; 
    158151        } 
    159  
    160152} else { 
    161153        echo "<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>"; 
     
    166158echo "<p>Typ: ".$untertitel."</p>"; 
    167159 
    168 echo "\n<table class='outer'>\n<tr>\n\t<td>"; 
    169         // Tabelle Kennzeichen 
     160echo "\n<table class='outer'>\n<tr>\n\t<td>";   // Tabelle Kennzeichen 
    170161        // ToDo: !! kleiner, wenn ltyp=0 und die Schluesselfelder leer sind 
    171162        echo "\n\t<table class='kennzla' title='Lage'>"; 
     
    192183                        echo "\n\t\t<td title='Bundesland'>".$land."</td>"; 
    193184                        echo "\n\t\t<td title='Regierungsbezirk'>".$regbez."</td>"; 
    194                         echo "\n\t\t<td title='Kreis'>".$kreis."</td>"; 
     185                        echo "\n\t\t<td title='Kreis'>"; 
     186                                if ($showkey) { 
     187                                                echo "<span class='key'>".$kreis."</span><br>"; 
     188                                } 
     189                        echo $knam."&nbsp;</td>"; 
    195190                        echo "\n\t\t<td title='Gemeinde'>"; 
    196                         if ($showkey) { 
    197                                 echo "<span class='key'>".$gem."</span><br>"; 
    198                         } 
    199                         echo $gnam."</td>"; 
     191                                if ($showkey) { 
     192                                        echo "<span class='key'>".$gem."</span><br>"; 
     193                                } 
     194                        echo $gnam."&nbsp;</td>"; 
    200195                        echo "\n\t\t<td title='Stra&szlig;e'>"; 
    201                         if ($showkey) { 
    202                                 echo "<span class='key'>".$lage."</span><br>"; 
    203                         } 
    204                         echo $snam."</td>"; 
     196                                if ($showkey) { 
     197                                        echo "<span class='key'>".$lage."</span><br>"; 
     198                                } 
     199                        echo $snam."&nbsp;</td>"; 
    205200                        switch ($ltyp) { 
    206201                                case "m": 
     
    385380        $sql.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise = h.bauweise_id "; 
    386381        $sql.="LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion = u.wert "; 
    387         $sql.="WHERE v.beziehung_zu= $1 "; 
    388         $sql.="AND   v.beziehungsart= $2 ;"; 
     382        $sql.="WHERE v.beziehung_zu= $1 AND v.beziehungsart= $2 ;"; 
    389383 
    390384        $v = array($gmlid,$bezart); 
Note: See TracChangeset for help on using the changeset viewer.