Changeset 140 for trunk/data


Ignore:
Timestamp:
12/09/11 14:29:57 (12 years ago)
Author:
frank.jaeger
Message:

Filter auf Gemeinde bei Navigation bei Suche nach Eigentümer. Dazu Hilfstabelle aufbauen.

Location:
trunk/data
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/data/konvert/postnas_0.6/gemeinden_definition.sql

    r105 r140  
    11 
    22-- ALKIS PostNAS 0.6 
     3 
     4 
     5-- Teil 1: Anlegen der Tabellen 
     6 
     7 
     8-- Stand  
     9 
     10--  2011-07-25 PostNAS 06, Umbenennung 
     11--  2011-12-08 Person -> Gemeinde 
     12 
     13SET client_encoding = 'UTF-8'; 
     14 
     15-- Alles auf Anfang! 
     16 
     17-- DROP VIEW gemeinde_person_typ1; 
     18-- DROP VIEW gemeinde_person_typ2; 
     19 
     20-- DROP TABLE gemeinde_gemarkung; 
     21 
    322 
    423-- ======================================================= 
     
    1231-- Da nicht stÀndig mit 'SELECT DISTINCT' sÀmtliche FlurstÃŒcke durchsucht werden können,  
    1332-- muss diese Information als (redundante) Tabelle nach dem Laden zwischengespeichert werden.  
    14  
    15  
    16 -- Teil 1: Anlegen der Tabelle 
    17  
    18 -- Stand  
    19  
    20 --  2011-07-25 PostNAS 06, Umbenennung 
    21  
    22  
    23 SET client_encoding = 'UTF-8'; 
    24  
    25 -- Alles auf Anfang! 
    26  
    27 DROP TABLE gemeinde_gemarkung; 
    2833 
    2934CREATE TABLE gemeinde_gemarkung ( 
     
    4550 
    4651COMMENT ON COLUMN gemeinde_gemarkung.gkz            IS 'Gemeindekennziffer fÃŒr Mandant'; 
     52 
     53 
     54-- ======================================================= 
     55-- Tabelle fuer die Zuordnung vom EigentÃŒmern zu Gemeinden 
     56-- ======================================================= 
     57 
     58-- Die Feststellung, ob eine Person (Mit-) EigentÃŒmer von mindestens einem 
     59-- FlurstÃŒck in einer Gemeinde ist, geht ÃŒber viele Relationen. 
     60-- Dabei kann es mehrere Varianten geben. 
     61-- Dies sollte nach dem Laden ermittelt und gespeichert werden, damit dies in 
     62-- der Navigation auf einfache Art verwendet werden kann.  
     63 
     64 
     65-- DROP TABLE gemeinde_person; 
     66 
     67CREATE TABLE gemeinde_person ( 
     68  land                  integer, 
     69  regierungsbezirk      integer, 
     70  kreis                 integer, 
     71  gemeinde              integer, 
     72  person                character varying(16),  
     73  buchtyp               integer, 
     74  CONSTRAINT gemeinde_person_pk PRIMARY KEY (gemeinde, person) 
     75); 
     76 
     77 
     78COMMENT ON TABLE  gemeinde_person                IS 'Person ist EigentÃŒmer von mindestens einem FlurstÃŒck in der Gemeinde'; 
     79COMMENT ON COLUMN gemeinde_person.gemeinde       IS 'Gemeindenummer'; 
     80COMMENT ON COLUMN gemeinde_person.buchtyp        IS 'Typ der Buchung 1=direkt, 2=Recht einer Buchungsstele an andere Buchungsstelle'; 
     81COMMENT ON COLUMN gemeinde_person.person         IS 'gml_id von Person'; 
     82 
     83-- Index zum Filtern in der Buchauskunft 
     84CREATE INDEX person_gemeinde  ON gemeinde_person (person, gemeinde); 
     85 
     86 
     87-- ======================================================= 
     88-- VIEWs  fuer die Zuordnung vom EigentÃŒmern zu Gemeinden 
     89-- ======================================================= 
     90 
     91-- "Normale" Buchungen 
     92 
     93CREATE VIEW gemeinde_person_typ1 
     94AS 
     95  SELECT DISTINCT 
     96    p.gml_id          AS person,  
     97    g.land, g.regierungsbezirk, g.kreis, g.gemeinde 
     98 
     99  FROM ax_person               p 
     100 
     101-- Person < benennt < Namensnummer 
     102  JOIN alkis_beziehungen      bpn  ON bpn.beziehung_zu   = p.gml_id  -- Bez. Person - Nummer 
     103  JOIN ax_namensnummer         n   ON bpn.beziehung_von  = n.gml_id 
     104 
     105-- Namensnummer > istBestandteilVon > Blatt 
     106  JOIN alkis_beziehungen      bnb  ON bnb.beziehung_von  = n.gml_id  -- Bez. Nummer - Blatt 
     107  JOIN ax_buchungsblatt        b   ON bnb.beziehung_zu   = b.gml_id 
     108 
     109-- Blatt < istBestandteilVon < buchungsStelle 
     110  JOIN alkis_beziehungen      bbg  ON bbg.beziehung_zu   = b.gml_id  -- Bez. Blatt  - Stelle 
     111  JOIN ax_buchungsstelle       s   ON bbg.beziehung_von  = s.gml_id  
     112 
     113-- buchungsStelle < istGebucht < flurstÃŒck 
     114  JOIN alkis_beziehungen      bsf  ON bsf.beziehung_zu   = s.gml_id  -- Bez. Stelle - FlurstÃŒck 
     115  JOIN ax_flurstueck           f   ON bsf.beziehung_von  = f.gml_id  
     116 
     117  JOIN ax_gemarkung            k   ON f.land             = k.land  
     118                                  AND f.gemarkungsnummer = k.gemarkungsnummer  
     119  JOIN gemeinde_gemarkung      g   ON k.gemarkungsnummer = g.gemarkung 
     120 
     121  WHERE bpn.beziehungsart = 'benennt'  
     122    AND bnb.beziehungsart = 'istBestandteilVon' 
     123    AND bbg.beziehungsart = 'istBestandteilVon' 
     124    AND bsf.beziehungsart = 'istGebucht' 
     125; 
     126 
     127COMMENT ON VIEW gemeinde_person_typ1 IS 'Personen die EigentÃŒmer vom FlurstÃŒcken in einer Gemeinde sind. Typ1 = nomale Buchungen mit direkter Beziehung.'; 
     128 
     129 
     130-- "Komplexe" Buchungen mit Rechten von Buchungen an Buchungen 
     131 
     132CREATE VIEW gemeinde_person_typ2 
     133AS 
     134  SELECT DISTINCT 
     135    p.gml_id          AS person,  
     136  --bpn.beziehungsart AS bpnbez,  
     137  --bnb.beziehungsart AS bnbbez,  
     138  --bbg.beziehungsart AS bbgbez,  
     139  --bsf.beziehungsart AS bsfbez,  
     140  --k.gemarkungsnummer, 
     141    g.land, g.regierungsbezirk, g.kreis, g.gemeinde 
     142 
     143  FROM ax_person               p 
     144 
     145-- Person < benennt < Namensnummer 
     146  JOIN alkis_beziehungen      bpn  ON bpn.beziehung_zu   = p.gml_id  -- Bez. Person - Nummer 
     147  JOIN ax_namensnummer         n   ON bpn.beziehung_von  = n.gml_id 
     148 
     149-- Namensnummer > istBestandteilVon > Blatt 
     150  JOIN alkis_beziehungen      bnb  ON bnb.beziehung_von  = n.gml_id  -- Bez. Nummer - Blatt 
     151  JOIN ax_buchungsblatt        b   ON bnb.beziehung_zu   = b.gml_id 
     152 
     153-- Blatt < istBestandteilVon < buchungsStelle1 
     154  JOIN alkis_beziehungen      bbg  ON bbg.beziehung_zu   = b.gml_id  -- Bez. Blatt  - Stelle 
     155  JOIN ax_buchungsstelle       s1  ON bbg.beziehung_von  = s1.gml_id  
     156 
     157-- buchungsStelle2 < an < buchungsStelle1 
     158  JOIN alkis_beziehungen      bss  ON bss.beziehung_von  = s1.gml_id  -- Bez. Stelle  - Stelle 
     159  JOIN ax_buchungsstelle       s2  ON bss.beziehung_zu   = s2.gml_id  
     160 
     161-- buchungsStelle2 < istGebucht < flurstÃŒck 
     162  JOIN alkis_beziehungen      bsf  ON bsf.beziehung_zu   = s2.gml_id  -- Bez. Stelle - FlurstÃŒck 
     163  JOIN ax_flurstueck           f   ON bsf.beziehung_von  = f.gml_id  
     164 
     165  JOIN ax_gemarkung            k   ON f.land             = k.land  
     166                                  AND f.gemarkungsnummer = k.gemarkungsnummer  
     167  JOIN gemeinde_gemarkung      g   ON k.gemarkungsnummer = g.gemarkung 
     168 
     169  WHERE bpn.beziehungsart = 'benennt'  
     170    AND bnb.beziehungsart = 'istBestandteilVon' 
     171    AND bbg.beziehungsart = 'istBestandteilVon' 
     172    AND bss.beziehungsart = 'an' 
     173    AND bsf.beziehungsart = 'istGebucht' 
     174 -- LIMIT 100  -- Test-Option 
     175; 
     176 
     177COMMENT ON VIEW gemeinde_person_typ2 IS 'Personen die EigentÃŒmer vom FlurstÃŒcken in einer Gemeinde sind. Typ2 = Buchungen mit Rechten einer Buchungssstelle an einer anderen.'; 
     178 
     179 
     180-- Statistik ÃŒber die Buchungs-Typen je Gemeinde 
     181CREATE VIEW gemeinde_person_statistik 
     182AS 
     183  SELECT p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp, count(p.person) as personen 
     184  FROM   gemeinde_person    p 
     185  JOIN   gemeinde_gemarkung g 
     186    ON   p.land     = g.land  
     187    AND  p.regierungsbezirk = g.regierungsbezirk  
     188    AND  p.kreis    = g.kreis  
     189    AND  p.gemeinde = g.gemeinde 
     190  GROUP BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp 
     191  ORDER BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, p.buchtyp 
     192; 
     193 
     194COMMENT ON VIEW gemeinde_person_statistik IS 'ZÀhlen der Personen je Gemeinde und Buchungstyp'; 
     195 
     196 
     197-- ENDE -- 
  • trunk/data/konvert/postnas_0.6/gemeinden_laden.sql

    r105 r140  
    1414 
    1515 
    16 -- Teil 2: Laden der Tabelle 
     16-- Teil 2: Laden der Tabellen 
    1717 
    1818-- Stand  
    1919 
    2020--  2011-07-25 PostNAS 06, Umbenennung 
     21--  2011-12-08 Person -> Gemeinde 
     22 
    2123 
    2224SET client_encoding = 'UTF-8'; 
     
    5860 
    5961 
     62 
     63-- ======================================================= 
     64-- Tabelle fuer die Zuordnung vom Eigentümern zu Gemeinden 
     65-- ======================================================= 
     66 
     67 
     68-- erst mal sauber machen 
     69DELETE FROM gemeinde_person; 
     70 
     71-- alle direkten Buchungen mit View ermitteln und in Tabelle speichern 
     72-- Für eine Stadt: ca. 20 Sekunden 
     73INSERT INTO  gemeinde_person  
     74       (land, regierungsbezirk, kreis, gemeinde, person, buchtyp) 
     75 SELECT land, regierungsbezirk, kreis, gemeinde, person, 1 
     76   FROM gemeinde_person_typ1; 
     77 
     78 
     79-- noch die komplexeren Buchungen ergänzen (Recht an ..) 
     80-- Mit View ermitteln und in Tabelle speichern 
     81-- Für eine Stadt: ca. 10 Sekunden 
     82INSERT INTO  gemeinde_person  
     83       (  land,   regierungsbezirk,   kreis,   gemeinde,   person,  buchtyp) 
     84 SELECT q.land, q.regierungsbezirk, q.kreis, q.gemeinde, q.person,  2 
     85   FROM gemeinde_person_typ2 q   -- Quelle 
     86   LEFT JOIN gemeinde_person z   -- Ziel 
     87     ON q.person   = z.person    -- Aber nur, wenn dieser Fall im Ziel 
     88    AND q.land     = z.land  
     89    AND q.regierungsbezirk = z.regierungsbezirk  
     90    AND q.kreis    = z.kreis  
     91    AND q.gemeinde = z.gemeinde 
     92  WHERE z.gemeinde is Null;      -- ..  noch nicht vorhanden ist 
     93 
     94 
    6095-- ENDE -- 
  • trunk/data/konvert/postnas_0.6/sichten.sql

    r120 r140  
    66 
    77--  2011-07-25 PostNAS 06, Umbenennung 
     8--  2011-10-20 Nummer NebengebÀude und Zuordnungspfeile fuer GebÀude   ##### IN ARBEIT 
     9--  2011-12-08 umbenannt "gemeinde_in_gemarkung" -> "gemarkung_in_gemeinde" 
    810 
    911--  ----------------------------------------- 
     
    2729-- Die FlurstÃŒcksnummer fehlt dann im WMS. 
    2830-- Die Bedingung vorÃŒbergehend heraus nehmen. Ursache klÀren! 
    29  
    30 -- 4.11.2011 Sichten fÃŒr die Grenzen aus der Tabelle ax_besondereflurstuecksgrenze Astrid Emde 
    3131 
    3232 
     
    7878 
    7979 
     80-- Layer "ag_t_nebengeb" 
     81-- --------------------- 
     82 
     83CREATE OR REPLACE VIEW s_nummer_nebengebaeude  
     84AS  
     85 SELECT ap_pto.ogc_fid,  
     86        ap_pto.wkb_geometry,  
     87        ap_pto.drehwinkel * 57.296 AS drehwinkel,        -- umn: ANGLE [drehwinkel] 
     88     -- alkis_beziehungen.beziehungsart,                 -- TEST 
     89     -- ax_lagebezeichnungmitpseudonummer.pseudonummer,  -- die HsNr des zugehoerigen Hauptgebaeudes 
     90        ax_lagebezeichnungmitpseudonummer.laufendenummer -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes 
     91   FROM ap_pto 
     92   JOIN alkis_beziehungen  
     93     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von 
     94   JOIN ax_lagebezeichnungmitpseudonummer  
     95     ON alkis_beziehungen.beziehung_zu  = ax_lagebezeichnungmitpseudonummer.gml_id 
     96  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon' 
     97; 
     98 
     99COMMENT ON VIEW s_nummer_nebengebaeude IS 'fuer Kartendarstellung: Hausnummern NebengebÀude'; 
     100 
     101-- ToDo: Die Zahl in Klammern setzen ?  (in Map oder View?) 
     102 
    80103 
    81104-- Layer "ag_p_flurstueck" 
     
    140163 
    141164COMMENT ON VIEW s_beschriftung IS 'ap_pto, die noch nicht in anderen Layern angezeigt werden'; 
     165 
     166 
     167BAUSTELLE 
     168 
     169 
     170-- Layer "s_zuordungspfeil_gebaeude" 
     171-- ----------------------------------- 
     172 
     173CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude  
     174AS  
     175 SELECT ap_lpo.ogc_fid,  
     176     -- alkis_beziehungen.beziehungsart, -- TEST 
     177     -- ap_lpo.art, -- TEST 
     178        ap_lpo.wkb_geometry 
     179   FROM ap_lpo 
     180   JOIN alkis_beziehungen  
     181     ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von 
     182   JOIN ax_gebaeude  
     183     ON alkis_beziehungen.beziehung_zu = ax_gebaeude.gml_id 
     184  WHERE ap_lpo.art = 'Pfeil' 
     185    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'; 
     186 
     187COMMENT ON VIEW s_zuordungspfeil_gebaeude IS 'fuer Kartendarstellung'; 
     188 
     189 
     190-- Sichten vom OBK (Oberbergischer Kreis) zu "Grenzen" 
     191-- --------------------------------------------------- 
     192-- Schema "alkis" daraus entfernt. 
     193 
     194-- Feld "ax_besondereflurstuecksgrenze.artderflurstuecksgrenze" als Array "integer[]" ! 
     195-- Anpassung Schema 18.09.2011 
     196 
     197CREATE OR REPLACE VIEW sk2022_gemeindegrenze  
     198AS  
     199 SELECT gemg.ogc_fid, gemg.wkb_geometry 
     200   FROM ax_besondereflurstuecksgrenze gemg 
     201  WHERE (7106 = ANY (gemg.artderflurstuecksgrenze))  
     202    AND gemg.advstandardmodell ~~ 'DLKM'::text; 
     203 
     204 
     205CREATE OR REPLACE VIEW sk2020_regierungsbezirksgrenze  
     206AS  
     207 SELECT rbg.ogc_fid, rbg.wkb_geometry 
     208   FROM ax_besondereflurstuecksgrenze rbg 
     209  WHERE (7103 = ANY (rbg.artderflurstuecksgrenze))  
     210    AND rbg.advstandardmodell ~~ 'DLKM'::text; 
     211 
     212 
     213CREATE OR REPLACE VIEW sk2018_bundeslandgrenze  
     214AS  
     215 SELECT blg.ogc_fid, blg.wkb_geometry 
     216   FROM ax_besondereflurstuecksgrenze blg 
     217  WHERE (7102 = ANY (blg.artderflurstuecksgrenze))  
     218    AND blg.advstandardmodell ~~ 'DLKM'::text; 
     219 
     220 
     221CREATE OR REPLACE VIEW sk2014_gemarkungsgrenze  
     222AS  
     223 SELECT gemag.ogc_fid, gemag.wkb_geometry 
     224   FROM ax_besondereflurstuecksgrenze gemag 
     225  WHERE (7003 = ANY (gemag.artderflurstuecksgrenze))  
     226    AND gemag.advstandardmodell ~~ 'DLKM'::text; 
     227 
     228 
     229--CREATE OR REPLACE VIEW sk2012_flurgrenze  
     230--AS  
     231-- SELECT fg.ogc_fid, fg.wkb_geometry 
     232--   FROM ax_besondereflurstuecksgrenze fg 
     233--  WHERE (3000 = ANY (fg.artderflurstuecksgrenze))  
     234--    AND fg.advstandardmodell ~~ 'DLKM'::text; 
     235 
     236-- Vorlaeufig, bis Schema umgestellt ist 
     237 
     238CREATE OR REPLACE VIEW sk2012_flurgrenze  
     239AS  
     240 SELECT fg.ogc_fid, fg.wkb_geometry 
     241   FROM ax_besondereflurstuecksgrenze fg 
     242  WHERE (3000 = fg.artderflurstuecksgrenze)  
     243    AND fg.advstandardmodell ~~ 'DLKM'::text; 
     244 
     245-- comment .... 
     246 
    142247 
    143248--  ------------------------------------------ 
     
    240345-- Nur durch Auswertung der FlurstÃŒcke kann man ermitteln, in welcher Gemeinde eine Gemarkung liegt. 
    241346 
    242 CREATE OR REPLACE VIEW gemeinde_in_gemarkung 
     347-- 2011-12-08 umbenannt 
     348 
     349CREATE OR REPLACE VIEW gemarkung_in_gemeinde 
    243350AS 
    244351  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer 
     
    247354; 
    248355 
    249 COMMENT ON VIEW gemeinde_in_gemarkung IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.'; 
     356COMMENT ON VIEW gemarkung_in_gemeinde IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.'; 
    250357 
    251358 
     
    481588; 
    482589 
    483 -- 
    484 -- Sichten fÃŒr Grenzen aus ax_besondereflurstuecksgrenze 
    485 -- 
    486 -- Select distinct artderflurstuecksgrenze from ax_besondereflurstuecksgrenze 
    487 Create view grenze_flur_3000 as  
    488 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze 
    489 where 3000 = ANY(artderflurstuecksgrenze); 
    490  
    491 Create view grenze_gemarkung_7003 as  
    492 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze 
    493 where 7003 = ANY(artderflurstuecksgrenze); 
    494  
    495  
    496 Create view grenze_regierungsbezirk_7103 as  
    497 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze 
    498 where 7103 = ANY(artderflurstuecksgrenze); 
    499  
    500 Create view grenze_landkreisgrenze_7104 as  
    501 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze 
    502 where 7104 = ANY(artderflurstuecksgrenze); 
    503  
    504  
    505 Create view grenze_gemeinde_7106 as  
    506 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze 
    507 where 7106 = ANY(artderflurstuecksgrenze); 
    508  
    509590-- END -- 
    510591 
  • trunk/data/mapbender/conf/alkisnav_conf.php

    r124 r140  
    11<?php 
    22/* Einstellungen fuer Mapbender-Navigation mit ALKIS-Daten 
    3         ALKIS-PostGIS-Datenbank aus Konverter PostNAS 0.5/0.6 
     3        ALKIS-PostGIS-Datenbank aus Konverter PostNAS 0.6 
    44        krz Mi.-Ra./Li. 
    55        2011-07-26 
    66        2011-11-07 Land 
     7        2011-12-09 $persfilter (gemeinde_person) 
    78*/ 
    89 
     
    3637$ag_liste = "'2102','2105','2106','2107','2108','2110','2303','2307'"; 
    3738 
     39# Nur Personen anzeigen, die Eigentum in der Gemeinde (-liste) haben 
     40# "true" setzt voraus, dass die Hilfstabelle "gemeinde_person" gefuellt ist 
     41$persfilter=true; 
     42 
    3843# Entwicklungsumgebung 
    3944$debug=0; // 0=Produktion, 1=mit Fehlermeldungen, 2=mit Informationen, 3=mit SQL 
  • trunk/data/mapbender/http/nav/alkisnav.css

    r126 r140  
    33         2011-04-11 
    44         2011-11-09 Historie, dbg 
     5         2011-12-09 p.nam 
    56*/ 
    67body,p,a,.textfield,.sbutton    {font-family: Verdana, Arial, Helvetica, sans-serif;} 
     
    1011p.hilfe         {font-size:  9px; text-align: right; color: gray; padding-right: 3px;} /* Programmier-Hilfsfelder */ 
    1112p.start         {font-size:  9px; color: gray;} 
    12 p.nam           {font-size: 10px; border: 1px solid navy; padding: 3px; margin: 0px;} 
     13p.nam           {font-size: 10px; border: 1px solid navy; padding: 3px; margin: 0px; color: maroon;} 
    1314p.err           {font-size: 11px; color: red;}  /* Fehler -> Anwender */ 
    1415p.dbg           {font-size: 10px; color: gray;} /* Debug -> Entwickler */ 
     
    2122div                     {margin: 0px; padding: 0px;} 
    2223div.back        {font-size: 10px; color: gray; border-bottom: 1px dotted gray;} 
    23 div.nam         {color: maroon;} /* Name */ 
     24/* div.nam              {color: maroon;}  Name */ 
    2425div.ga          {color: fuchsia;        margin-left:  0px; margin-top: 6px;} /* GB-Amtsgericht */ 
    2526div.gm          {color: green;          margin-left:  0px; margin-top: 6px;} /* Gemeinde */ 
  • trunk/data/mapbender/http/nav/alkisnav_adr.php

    r115 r140  
    11<?php 
    22/* Version vom  
    3         24.03.2011: bei HsNr auch Gemeinde in Where, Anzeige Gemeinde je nach Filter  
    4         25.03.2011: parameter &gemeinde= auch als Liste moeglich 
    5         z.B. Wasserverband zustaendig fuer: &gemeinde=12,20,24,28,32 
    63        11.04.2011 epsg in Link, transform nur wenn notwendig 
    74        25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden 
    85        24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 
    9  
    10         ToDo: Mouse-Over in Straßenliste soll Position zeigen, 
     6        09.12.2011 Sonderfall PostNAS 0.5 raus, 
     7 
     8        ToDo: 
     9        -       Eingabe aus "Balken" von Buchauskunft "Lage" zulassen: Numerisch: Gem-Str-Haus-lfd 
     10                Analog zur Zerlegung des FS-Kennz in _fls 
     11        -       Mouse-Over in Straßenliste soll Position zeigen, 
    1112                dazu in der DB eine Tabelle mit Koordinate zum StraßenschlÃŒssel aufbauen.  
    1213*/ 
    13 import_request_variables("PG"); 
     14import_request_variables("G"); 
    1415include("../../conf/alkisnav_conf.php"); 
    1516$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
     
    183184                $gemnd=$row["gemeinde"]; 
    184185                $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); 
    185                 if ($dbvers=="05") { // 2011-07-25 
    186                         $nr=ltrim($row["lage"], "0"); 
    187                 } else { // >= PostNAS 0.6 
    188                         $nr=$row["lage"]; 
    189                 } 
     186                $nr=$row["lage"]; 
    190187 
    191188                if ($showParent) { 
  • trunk/data/mapbender/http/nav/alkisnav_eig.php

    r135 r140  
    11<?php 
    22/* Version vom  
    3         13.01.2011  
    4         11.04.2011 epsg in Link, transform nur wenn notwendig 
    5         25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden 
    6         24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 
    7         17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
    8         02.12.2011 Suche nach Vorname Nachname oder Nachname 
     3        24.10.2011      Nach Pos-Klick Highlight erneuern statt hideHighlight 
     4        17.11.2011      Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
     5        02.12.2011      Suche nach Vorname Nachname oder Nachname 
     6        09.12.2011      Filter "Gemeinde" fÃŒr Ebene FlurstÃŒcke. 
     7                                        Filter "Gemeinde" fÃŒr Personen ÃŒber neue Hilfstabelle "gemeinde_person". 
     8                                        Format css Person (Rahmen). 
     9        ToDo: Auf der Stufe 2 "getGBbyPerson" noch Filtern nach Gemeinde 
    910*/ 
    1011import_request_variables("PG"); 
     
    1213$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
    1314$con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname.$dbvers.$gkz); 
    14 // ToDo: Buchung zwischen Blatt und Flst? 
    1515?> 
    1616 
     
    3939// Eigentuemer nach Name(-nsanfang) 
    4040// =============================== 
    41         global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb; 
     41        global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $gfilter, $persfilter, $auskpath; 
    4242        $linelimit=120; 
    4343        $arr = explode(",", $name); 
     
    4949                $match = trim($name0)."%"; 
    5050        }        
    51          
    5251        if(preg_match("/\*/",$name1)){ 
    5352                $match1 = trim(preg_replace("/\*/i","%", strtoupper($name1))); 
     
    5655        }                
    5756         
    58         $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person as p "; 
     57        $sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person p "; 
     58 
     59        if ($persfilter and ($gfilter > 0)) { 
     60                $sql.="JOIN gemeinde_person g ON p.gml_id = g.person WHERE "; 
     61                switch ($gfilter) { 
     62                        case 1: // Einzelwert 
     63                                $sql.="g.gemeinde=".$gemeinde." AND "; break; 
     64                        case 2: // Liste 
     65                                $sql.="g.gemeinde in (".$gemeinde.") AND "; break; 
     66                } 
     67        } else { 
     68                $sql.="WHERE "; 
     69        } 
    5970        if($match1 != '%'){ 
    60                 $sql.="WHERE nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 ";                
     71                $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 ";              
    6172                $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; 
    6273                $v=array($match, $match1, $linelimit); 
    6374        }else{ 
    64                 $sql.="WHERE nachnameoderfirma ILIKE $1 ";               
     75                $sql.="nachnameoderfirma ILIKE $1 ";             
    6576                $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; 
    6677                $v=array($match, $linelimit); 
    6778        }  
    68         // +++ Adresse der Person zur eindeutigen Bestimmung? 
    6979        $res=pg_prepare("", $sql); 
    7080        $res=pg_execute("", $v); 
     
    7484        } 
    7585        $cnt = 0; 
    76         // einfache Liste ohne div und Icon      
    7786        while($row = pg_fetch_array($res)) { 
    7887                $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 
    7988                $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 
    8089                $gml=$row["gml_id"]; 
    81                 // +++ Icon mit Link auf Person-Auskunft, ÃŒber gml_id   
    82                 // Zur Zeit siehe unten: erst nach Auswahl einer einzelnen Person 
    83                 echo "\n<a class='nam' title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$gml."&amp;name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>"; 
     90                // Link zur Auskunft Person  +++ Icon differenzieren? Firma/Person 
     91                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gml."\")'>"; 
     92                        echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 
     93                echo "\n\t</a> ";                
     94                echo "\n<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$gml."&amp;name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>"; 
    8495                $cnt++; 
    8596        } 
     
    117128        if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} 
    118129        // Daten der Person 
    119         echo "\n<div class='nam'>"; 
    120                 // Link zur Auskunft Person 
     130        echo "\n\t<table>\n\t<tr>\n\t\t<td valign='top'>"; 
     131                // Sp. 1: Icon, Link zur Auskunft Person 
    121132                echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$person."\")'>"; 
    122133                        echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>"; 
    123                 echo "\n\t</a> "; 
    124                 echo "\n\t<p class='nam'>";              
     134                echo "\n\t</a></td>\n\t\t<td>"; 
     135                echo "\n\t<p class='nam'>"; // Sp. 2: Rahmen 
    125136                if ($row = pg_fetch_array($res)) { 
    126137                        $namzeil=$row["nachnameoderfirma"].", ".$row["vorname"]; 
     
    135146                        if (trim($namzeil) != "") {echo "\n\t<br>".htmlentities($namzeil, ENT_QUOTES, "UTF-8");} 
    136147                } 
    137                 echo "\n\t</p>"; 
    138         echo "\n</div>"; 
     148        echo "\n\t</p></td></tr>\n\t</table>"; 
    139149 
    140150        // Suche nach GrundbÃŒchern der Person 
     
    181191// FlurstÃŒcke zum gewÀhlten Grundbuch 
    182192// =================================== 
    183         global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg; 
     193        global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg, $gfilter, $persfilter; 
    184194        $linelimit=120; 
    185195 
     
    197207        } 
    198208 
     209        // SQL-Bausteine vorbereiten 
     210        $sql1 ="SELECT s1.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
     211        if($epsg == "25832") { // Transform nicht notwendig 
     212                $sql1.="x(st_centroid(f.wkb_geometry)) AS x, "; 
     213                $sql1.="y(st_centroid(f.wkb_geometry)) AS y, "; 
     214        } else {   
     215                $sql1.="x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 
     216                $sql1.="y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";                         
     217        } 
     218        $sql1.="g.gemarkungsnummer, g.bezeichnung "; 
     219   $sql1.="FROM alkis_beziehungen vbg "; 
     220        $sql1.="JOIN ax_buchungsstelle s1 ON vbg.beziehung_von = s1.gml_id ";  
     221 
     222        // Zwischen-JOIN (zusÀtzlich nur bei zweiter Abfrage) 
     223        $sqlz ="JOIN alkis_beziehungen vss ON vss.beziehung_von = s1.gml_id "; 
     224        $sqlz.="JOIN ax_buchungsstelle s2 ON vss.beziehung_zu = s2.gml_id "; 
     225 
     226        $sqla1 ="JOIN alkis_beziehungen vfb ON s1.gml_id = vfb.beziehung_zu "; 
     227        $sqla2 ="JOIN alkis_beziehungen vfb ON s2.gml_id = vfb.beziehung_zu "; 
     228 
     229        $sql2.="JOIN ax_flurstueck f  ON vfb.beziehung_von = f.gml_id "; 
     230   $sql2.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
     231 
     232        if ($persfilter and ($gfilter > 0)) { 
     233                $sql2.="JOIN gemeinde_gemarkung v ON g.land=v.land AND g.gemarkungsnummer=v.gemarkung "; 
     234        } 
     235 
     236        $sql2.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 
     237 
     238        if ($persfilter and ($gfilter > 0)) { 
     239                switch ($gfilter) { 
     240                        case 1: // Einzelwert 
     241                                $sql2.="AND v.gemeinde=".$gemeinde." "; break; 
     242                        case 2: // Liste 
     243                                $sql2.="AND v.gemeinde in (".$gemeinde.") "; break; 
     244                } 
     245        } 
     246        $sql2.="ORDER BY s1.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 
     247 
    199248        // Blatt <vbg/istBestandteilVon<  Buchungsstelle <vfb/istGebucht< Flurstck. 
    200         $sql ="SELECT s.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 
    201         if($epsg == "25832") { // Transform nicht notwendig 
    202                 $sql.="x(st_centroid(f.wkb_geometry)) AS x, "; 
    203                 $sql.="y(st_centroid(f.wkb_geometry)) AS y, "; 
    204         } else {   
    205                 $sql.="x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 
    206                 $sql.="y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";                  
    207         } 
    208         $sql.="g.gemarkungsnummer, g.bezeichnung "; 
    209    $sql.="FROM alkis_beziehungen vbg "; 
    210         $sql.="JOIN ax_buchungsstelle s ON vbg.beziehung_von = s.gml_id ";  
    211         $sql.="JOIN alkis_beziehungen vfb ON s.gml_id = vfb.beziehung_zu ";  
    212         $sql.="JOIN ax_flurstueck f  ON vfb.beziehung_von = f.gml_id "; 
    213    $sql.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 
    214         $sql.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' "; 
    215         $sql.="ORDER BY s.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;"; 
    216  
    217         // +++ Sonderfall Fehlt noch: Blatt -> Buchung -> (Recht an) Buchung -> FlurstÃŒck 
    218         // +++ Ebene Buchung dazwischen wie im Teil 'Grundbuch' ? 
     249        $sql=$sql1.$sqla1.$sql2; // Direkte Buchungen 
     250 
    219251        $v=array($gb, $linelimit); 
    220252        $res=pg_prepare("", $sql); 
     
    225257                return; 
    226258        } 
    227         $zfs=0; 
     259        $zfs1=0; 
    228260        while($row = pg_fetch_array($res)) {     
    229261                $fs_gml=$row["gml_id"]; 
    230262                $bvnr=$row["lfd"]; 
    231                 if ($bvnr > 0) {                 
    232                         $bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT); 
    233                 } else { 
    234                         $bvnr=""; 
    235                 } 
     263                if ($bvnr > 0) {$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);} else {$bvnr="";} 
    236264                $gmkg=$row["bezeichnung"]; 
    237265                $flur=$row["flurnummer"]; 
     
    251279                        echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; 
    252280                echo "\n</div>"; 
    253                 $zfs++; 
    254         } 
    255         if($zfs == 0) {  
    256                 echo "\n<p class='err'>Kein Flurst&uuml;ck.</p>"; 
    257                 echo "\n<p class='hilfe'>Hinweis: Sonderf&auml;lle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>"; 
     281                $zfs1++; 
     282        } 
     283 
     284        // Zweite Abfrage (Variante) aus den Bausteinen zusammen bauen 
     285        // buchungsStelle2 < an < buchungsStelle1 
     286        $sql=$sql1.$sqlz.$sqla2.$sql2; // Rechte an 
     287 
     288        $v=array($gb, $linelimit); 
     289        $res=pg_prepare("", $sql); 
     290        $res=pg_execute("", $v); 
     291        if (!$res) { 
     292                echo "\n<p class='err'>Fehler bei Recht an Buchung.</p>"; 
     293                if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 
     294                return; 
     295        } 
     296        $zfs2=0; 
     297        while($row = pg_fetch_array($res)) {     
     298                $fs_gml=$row["gml_id"]; 
     299                $bvnr=$row["lfd"]; 
     300                if ($bvnr > 0) {$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);} else {$bvnr="";} 
     301                $gmkg=$row["bezeichnung"]; 
     302                $flur=$row["flurnummer"]; 
     303                $fskenn=$row["zaehler"]; 
     304                if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer 
     305                $x=$row["x"]; 
     306                $y=$row["y"]; 
     307                echo "\n<div class='fs'>"; 
     308                        echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>"; 
     309                                echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>"; 
     310                        echo "\n\t</a> ";        
     311                        echo "\n\tRecht an <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='"; 
     312                                        echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); "; 
     313                                        echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
     314                                echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     315                                echo "onmouseout='parent.parent.hideHighlight()'>"; 
     316                        echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; 
     317                echo "\n</div>"; 
     318                $zfs2++; 
     319        } 
     320 
     321        if($zfs1 + $zfs2 == 0) {  
     322                echo "\n<p class='err'>Kein Flurst&uuml;ck im berechtigten Bereich.</p>"; 
     323        //      echo "\n<p class='hilfe'>Hinweis: Sonderf&auml;lle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>"; 
    258324        } elseif($zfs >= $linelimit) { 
    259325                echo "\n<p>... und weitere</p>";  
     
    277343} 
    278344if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";} 
     345if ($gemeinde == "") { 
     346        $gfilter = 0; // ungefiltert 
     347} elseif(strpos($gemeinde, ",") === false) { 
     348        $gfilter = 1; // Einzelwert 
     349} else { 
     350        $gfilter = 2; // Liste 
     351} 
    279352 
    280353// Welche Parameter? 
  • trunk/data/mapbender/http/nav/alkisnav_fls.php

    r129 r140  
    11<?php 
    22/* Version vom 
    3         13.01.2011 
    4         25.03.2011 Filter als Gemeinde-Liste 
    5         12.04.2011 epsg in Link, transform nur wenn notwendig 
    6         12.05.2011 Syntaxfehler in SQL 
    7         25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden 
    83        24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 
    94        07.11.2011 optional auch Historische FS suchen, Link auf Buchauskunft-Modul alkisfshis.php 
     
    1611        17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
    1712*/ 
    18 import_request_variables("PG"); 
     13import_request_variables("G"); 
    1914include("../../conf/alkisnav_conf.php"); 
    2015$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
  • trunk/data/mapbender/http/nav/alkisnav_grd.php

    r129 r140  
    11<?php 
    22/* Version vom 
    3         14.01.2011 
    4         12.04.2011 epsg in Link, transform nur wenn notwendig,  
    5         neue Suchstrategie bei Leer-Eingabe (Liste Amtsgerichte), Icon GB-Bez. 
    6         25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden 
    73        24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 
    84        17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 
    95*/ 
    10 import_request_variables("PG"); 
     6import_request_variables("G"); 
    117include("../../conf/alkisnav_conf.php"); 
    128$con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 
Note: See TracChangeset for help on using the changeset viewer.