Ignore:
Timestamp:
09/15/14 15:11:32 (10 years ago)
Author:
frank.jaeger
Message:

Anpassung der Programme und Views an verschieden lange gm_id und Datenbanken mit historischen Objekten.

File:
1 edited

Legend:

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

    r330 r333  
    2121        2014-02-06 Korrektur 
    2222        2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    23         2014-09-10 Bei Relationen den Timestamp abschneiden 
     23        2014-09-15 Bei Relationen den Timestamp abschneiden 
    2424 
    2525        ToDo: 
     
    9595        // Feld flurstueckskennzeichen ist in DB indiziert 
    9696        // Format z.B.'052647002001910013__' oder '05264700200012______' 
    97         $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 ;"; 
     97        $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 AND endet IS NULL ;"; 
    9898 
    9999        $v = array($fskzdb); 
     
    195195 
    196196// G e m e i n d e 
    197 $sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3";  
     197$sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3 AND endet IS NULL;";  
    198198 
    199199$v = array($bezirk,$kreis,$gemeinde); 
     
    224224 
    225225// K r e i s 
    226 $sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2";  
     226$sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2 AND endet IS NULL;";  
    227227$v = array($bezirk,$kreis); 
    228228$res = pg_prepare("", $sql); 
     
    242242 
    243243// R e g - B e z 
    244 $sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 "; 
     244$sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 AND endet IS NULL;"; 
    245245$v = array($bezirk); 
    246246$res = pg_prepare("", $sql); 
     
    267267FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16) = ANY(f.weistauf)   
    268268JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
    269 WHERE f.gml_id= $1 ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
     269WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL     
     270ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 
    270271 
    271272$v = array($gmlid); 
     
    316317FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf)  
    317318LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage  
    318 WHERE f.gml_id = $1 ;"; 
     319WHERE f.gml_id = $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL;"; 
    319320 
    320321$v = array($gmlid); 
     
    370371// ** N U T Z U N G ** Gemeinsame FlÀche von NUA und FS 
    371372// Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben 
    372 $sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe, "; 
    373 $sql.="st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla "; 
    374 $sql.="FROM ax_flurstueck f, nutzung n JOIN nutzung_meta m ON m.nutz_id=n.nutz_id "; 
    375 $sql.="LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class "; 
    376 $sql.="WHERE f.gml_id= $1 AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true "; // id FS, ueberlappende Flaechen 
    377 $sql.="AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 "; // unter Rundung 
    378 $sql.="ORDER BY schnittflae DESC;"; 
     373$sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe,  
     374st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla  
     375FROM ax_flurstueck f, nutzung n JOIN nutzung_meta m ON m.nutz_id=n.nutz_id  
     376LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class  
     377WHERE f.gml_id= $1 AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true  
     378AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05  
     379AND f.endet IS NULL ORDER BY schnittflae DESC;"; 
    379380 
    380381$v = array($gmlid); 
     
    499500//  b.name, b.artderfestlegung,  
    500501 
    501 $sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, "; 
    502 $sql_boden.="b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key "; 
    503 $sql_boden.="FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert=b.artderfestlegung "; 
    504 $sql_boden.="LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle "; 
    505 $sql_boden.="WHERE ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry) "; 
    506 $sql_boden.="OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry)"; 
     502$sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez,  
     503b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key  
     504FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert=b.artderfestlegung  
     505LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle  
     506WHERE b.endet IS NULL AND d.endet IS NULL   
     507AND ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 ), wkb_geometry)  
     508OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 ), wkb_geometry)"; 
     509 
    507510pg_prepare($con, "bodeneuordnung", $sql_boden); 
    508511$res_bodeneuordnung = pg_execute($con, "bodeneuordnung", array($gmlid)); 
    509512 
    510 $sql_str = "SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE 1000 = ANY(artderflurstuecksgrenze) AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry);"; 
     513$sql_str = "SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry);"; 
    511514pg_prepare($con, "strittigeGrenze", $sql_str); 
    512515$res_strittigeGrenze = pg_execute($con, "strittigeGrenze", array($gmlid)); 
     
    615618FROM ax_flurstueck f JOIN ax_buchungsstelle s ON substring(s.gml_id,1,16)=f.istgebucht  
    616619LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart=b.wert  
    617 WHERE f.gml_id= $1 ORDER BY s.laufendenummer;"; 
     620WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL ORDER BY s.laufendenummer;"; 
    618621 
    619622$v = array($gmlid); 
     
    631634 
    632635        // B U C H U N G S B L A T T  zur Buchungsstelle (istBestandteilVon) 
    633         $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung "; 
    634         $sql.="FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=s.istbestandteilvon "; 
    635         $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 
    636         $sql.="WHERE s.gml_id = $1 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 
     636        $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung  
     637        FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=s.istbestandteilvon  
     638        LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk  
     639        WHERE s.gml_id = $1 AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 
     640        ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 
    637641 
    638642        $v = array($gmls); 
     
    742746        } 
    743747 
    744         // Buchungstelle  >an>  Buchungstelle  >istBestandteilVon>  BLATT  -> Bezirk 
    745         $sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond, "; 
    746         $sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart "; 
    747         $sql.="FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an) "; // Stelle >an> Stelle 
    748         $sql.="JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=sd.istbestandteilvon  ";// Stelle >istbestandteilvon> Blatt 
    749         $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 
    750         $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON sd.buchungsart=a.wert "; 
    751         $sql.="WHERE sh.gml_id= $1 "; // id herrschende Buchungsstelle 
    752         $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 
    753  
    754         $v = array($gmls); 
     748        // Buchungstelle >an> Buchungstelle >istBestandteilVon> BLATT -> Bezirk 
     749        $sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond,  
     750        b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart  
     751        FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an)  
     752        JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=sd.istbestandteilvon   
     753        LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk  
     754        LEFT JOIN ax_buchungsstelle_buchungsart a ON sd.buchungsart=a.wert  
     755        WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 
     756        ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 
     757 
     758        $v = array($gmls); // id herrschende Buchungsstelle 
    755759        $resan = pg_prepare("", $sql); 
    756760        $resan = pg_execute("", $v); 
    757761        if (!$resan) { 
    758                 echo "\n<p class='err'>Keine weiteren Buchungsstellen.</p>\n"; 
     762                echo "\n<p class='err'>Fehler bei 'weitere Buchungsstellen'.</p>\n"; 
    759763                if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmls."'</p>";} 
    760764        } 
Note: See TracChangeset for help on using the changeset viewer.