Ignore:
Timestamp:
09/15/14 17:52:35 (10 years ago)
Author:
frank.jaeger
Message:

Anpassung der Auskunft-Programme an variabel lange gml_id und Datenbanken mit "beendeten" Objekten.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mapbender/http/nav/alkisnav_adr.php

    r333 r334  
    99        2014-01-23      Link zum Auskunft-Modul fÃŒr Straße 
    1010        2014-09-03  PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    11         2014-09-10  Bei Relationen den Timestamp abschneiden 
     11        2014-09-15  Bei Relationen den Timestamp abschneiden, mehr "endet IS NULL" 
    1212 
    1313        ToDo: 
     
    6464                $match=trim($matches[1])."%"; 
    6565        } 
    66         $sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage "; 
    67         $sql.="FROM ax_lagebezeichnungkatalogeintrag k "; 
    68         $sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 
    69         $sql.="WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 
     66        $sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage  
     67        FROM ax_lagebezeichnungkatalogeintrag k  
     68        JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde  
     69        WHERE k.bezeichnung ILIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 
    7070        switch ($gfilter) { 
    7171                case 1: // Einzelwert 
     
    137137                $match=str_pad($street, 5, "0", STR_PAD_LEFT); // "Wie eine Zahl" verarbeiten  
    138138        } 
    139         $sql ="SELECT g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage "; 
    140         $sql.="FROM ax_lagebezeichnungkatalogeintrag as k "; 
    141         $sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 
    142         $sql.="WHERE k.lage LIKE $1 "; 
     139        $sql ="SELECT g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage  
     140        FROM ax_lagebezeichnungkatalogeintrag as k  
     141        JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde  
     142        WHERE k.lage LIKE $1 AND k.endet IS NULL AND g.endet IS NULL "; 
    143143        switch ($gfilter) { 
    144144                case 1: // Einzelwert 
     
    206206        // Head 
    207207        // Strasse zum Strassenschluessel 
    208         $sql ="SELECT g.bezeichnung AS gemname, k.gml_id AS kgml, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage "; 
    209         $sql.="FROM ax_lagebezeichnungkatalogeintrag as k "; 
    210         $sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; 
    211         $sql.="WHERE k.schluesselgesamt = $1 LIMIT 1";  
     208        $sql ="SELECT g.bezeichnung AS gemname, k.gml_id AS kgml, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage  
     209        FROM ax_lagebezeichnungkatalogeintrag as k  
     210        JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde  
     211        WHERE k.schluesselgesamt = $1 AND k.endet IS NULL AND g.endet IS NULL LIMIT 1";  
    212212 
    213213        $v=array($str_schl);    // Schluessel-Gesamt .. 
     
    297297                        $sql.="avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y ";                
    298298                } 
    299                 $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON substring(h.gml_id,1,16)=ANY(p.dientzurdarstellungvon) "; 
    300                 $sql.="WHERE p.art='HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 
    301                 $sql.="GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2) "; 
    302                 $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; 
     299                $sql.="FROM ap_pto p JOIN ax_lagebezeichnungmithausnummer h ON substring(h.gml_id,1,16)=ANY(p.dientzurdarstellungvon)  
     300                WHERE p.art='HNR' AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5  
     301                AND p.endet IS NULL AND h.endet IS NULL 
     302                GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2)  
     303                ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; 
    303304                // Problem: mehrere Koordinaten fÃŒr verschiedene MaßstÀbe der Kartendarstellung 
    304305                // Diese sollten nicht mehrfach gelistet werden. FÃŒr Positionierung "irgendeine" nehmen. 
Note: See TracChangeset for help on using the changeset viewer.