- Timestamp:
- 12/09/11 14:29:57 (12 years ago)
- Location:
- trunk/data
- Files:
-
- 1 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/konvert/postnas_0.6/gemeinden_definition.sql
r105 r140 1 1 2 2 -- 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 13 SET 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 3 22 4 23 -- ======================================================= … … 12 31 -- Da nicht stÀndig mit 'SELECT DISTINCT' sÀmtliche FlurstÃŒcke durchsucht werden können, 13 32 -- muss diese Information als (redundante) Tabelle nach dem Laden zwischengespeichert werden. 14 15 16 -- Teil 1: Anlegen der Tabelle17 18 -- Stand19 20 -- 2011-07-25 PostNAS 06, Umbenennung21 22 23 SET client_encoding = 'UTF-8';24 25 -- Alles auf Anfang!26 27 DROP TABLE gemeinde_gemarkung;28 33 29 34 CREATE TABLE gemeinde_gemarkung ( … … 45 50 46 51 COMMENT 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 67 CREATE 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 78 COMMENT ON TABLE gemeinde_person IS 'Person ist EigentÃŒmer von mindestens einem FlurstÃŒck in der Gemeinde'; 79 COMMENT ON COLUMN gemeinde_person.gemeinde IS 'Gemeindenummer'; 80 COMMENT ON COLUMN gemeinde_person.buchtyp IS 'Typ der Buchung 1=direkt, 2=Recht einer Buchungsstele an andere Buchungsstelle'; 81 COMMENT ON COLUMN gemeinde_person.person IS 'gml_id von Person'; 82 83 -- Index zum Filtern in der Buchauskunft 84 CREATE 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 93 CREATE VIEW gemeinde_person_typ1 94 AS 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 127 COMMENT 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 132 CREATE VIEW gemeinde_person_typ2 133 AS 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 177 COMMENT 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 181 CREATE VIEW gemeinde_person_statistik 182 AS 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 194 COMMENT 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 14 14 15 15 16 -- Teil 2: Laden der Tabelle 16 -- Teil 2: Laden der Tabellen 17 17 18 18 -- Stand 19 19 20 20 -- 2011-07-25 PostNAS 06, Umbenennung 21 -- 2011-12-08 Person -> Gemeinde 22 21 23 22 24 SET client_encoding = 'UTF-8'; … … 58 60 59 61 62 63 -- ======================================================= 64 -- Tabelle fuer die Zuordnung vom Eigentümern zu Gemeinden 65 -- ======================================================= 66 67 68 -- erst mal sauber machen 69 DELETE FROM gemeinde_person; 70 71 -- alle direkten Buchungen mit View ermitteln und in Tabelle speichern 72 -- Für eine Stadt: ca. 20 Sekunden 73 INSERT 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 82 INSERT 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 60 95 -- ENDE -- -
trunk/data/konvert/postnas_0.6/sichten.sql
r120 r140 6 6 7 7 -- 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" 8 10 9 11 -- ----------------------------------------- … … 27 29 -- Die FlurstÃŒcksnummer fehlt dann im WMS. 28 30 -- 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 Emde31 31 32 32 … … 78 78 79 79 80 -- Layer "ag_t_nebengeb" 81 -- --------------------- 82 83 CREATE OR REPLACE VIEW s_nummer_nebengebaeude 84 AS 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 99 COMMENT ON VIEW s_nummer_nebengebaeude IS 'fuer Kartendarstellung: Hausnummern NebengebÀude'; 100 101 -- ToDo: Die Zahl in Klammern setzen ? (in Map oder View?) 102 80 103 81 104 -- Layer "ag_p_flurstueck" … … 140 163 141 164 COMMENT ON VIEW s_beschriftung IS 'ap_pto, die noch nicht in anderen Layern angezeigt werden'; 165 166 167 BAUSTELLE 168 169 170 -- Layer "s_zuordungspfeil_gebaeude" 171 -- ----------------------------------- 172 173 CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude 174 AS 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 187 COMMENT 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 197 CREATE OR REPLACE VIEW sk2022_gemeindegrenze 198 AS 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 205 CREATE OR REPLACE VIEW sk2020_regierungsbezirksgrenze 206 AS 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 213 CREATE OR REPLACE VIEW sk2018_bundeslandgrenze 214 AS 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 221 CREATE OR REPLACE VIEW sk2014_gemarkungsgrenze 222 AS 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 238 CREATE OR REPLACE VIEW sk2012_flurgrenze 239 AS 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 142 247 143 248 -- ------------------------------------------ … … 240 345 -- Nur durch Auswertung der FlurstÃŒcke kann man ermitteln, in welcher Gemeinde eine Gemarkung liegt. 241 346 242 CREATE OR REPLACE VIEW gemeinde_in_gemarkung 347 -- 2011-12-08 umbenannt 348 349 CREATE OR REPLACE VIEW gemarkung_in_gemeinde 243 350 AS 244 351 SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer … … 247 354 ; 248 355 249 COMMENT ON VIEW gem einde_in_gemarkungIS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.';356 COMMENT ON VIEW gemarkung_in_gemeinde IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.'; 250 357 251 358 … … 481 588 ; 482 589 483 --484 -- Sichten fÃŒr Grenzen aus ax_besondereflurstuecksgrenze485 --486 -- Select distinct artderflurstuecksgrenze from ax_besondereflurstuecksgrenze487 Create view grenze_flur_3000 as488 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze489 where 3000 = ANY(artderflurstuecksgrenze);490 491 Create view grenze_gemarkung_7003 as492 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze493 where 7003 = ANY(artderflurstuecksgrenze);494 495 496 Create view grenze_regierungsbezirk_7103 as497 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze498 where 7103 = ANY(artderflurstuecksgrenze);499 500 Create view grenze_landkreisgrenze_7104 as501 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze502 where 7104 = ANY(artderflurstuecksgrenze);503 504 505 Create view grenze_gemeinde_7106 as506 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze507 where 7106 = ANY(artderflurstuecksgrenze);508 509 590 -- END -- 510 591 -
trunk/data/mapbender/conf/alkisnav_conf.php
r124 r140 1 1 <?php 2 2 /* Einstellungen fuer Mapbender-Navigation mit ALKIS-Daten 3 ALKIS-PostGIS-Datenbank aus Konverter PostNAS 0. 5/0.63 ALKIS-PostGIS-Datenbank aus Konverter PostNAS 0.6 4 4 krz Mi.-Ra./Li. 5 5 2011-07-26 6 6 2011-11-07 Land 7 2011-12-09 $persfilter (gemeinde_person) 7 8 */ 8 9 … … 36 37 $ag_liste = "'2102','2105','2106','2107','2108','2110','2303','2307'"; 37 38 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 38 43 # Entwicklungsumgebung 39 44 $debug=0; // 0=Produktion, 1=mit Fehlermeldungen, 2=mit Informationen, 3=mit SQL -
trunk/data/mapbender/http/nav/alkisnav.css
r126 r140 3 3 2011-04-11 4 4 2011-11-09 Historie, dbg 5 2011-12-09 p.nam 5 6 */ 6 7 body,p,a,.textfield,.sbutton {font-family: Verdana, Arial, Helvetica, sans-serif;} … … 10 11 p.hilfe {font-size: 9px; text-align: right; color: gray; padding-right: 3px;} /* Programmier-Hilfsfelder */ 11 12 p.start {font-size: 9px; color: gray;} 12 p.nam {font-size: 10px; border: 1px solid navy; padding: 3px; margin: 0px; }13 p.nam {font-size: 10px; border: 1px solid navy; padding: 3px; margin: 0px; color: maroon;} 13 14 p.err {font-size: 11px; color: red;} /* Fehler -> Anwender */ 14 15 p.dbg {font-size: 10px; color: gray;} /* Debug -> Entwickler */ … … 21 22 div {margin: 0px; padding: 0px;} 22 23 div.back {font-size: 10px; color: gray; border-bottom: 1px dotted gray;} 23 div.nam {color: maroon;} /*Name */24 /* div.nam {color: maroon;} Name */ 24 25 div.ga {color: fuchsia; margin-left: 0px; margin-top: 6px;} /* GB-Amtsgericht */ 25 26 div.gm {color: green; margin-left: 0px; margin-top: 6px;} /* Gemeinde */ -
trunk/data/mapbender/http/nav/alkisnav_adr.php
r115 r140 1 1 <?php 2 2 /* Version vom 3 24.03.2011: bei HsNr auch Gemeinde in Where, Anzeige Gemeinde je nach Filter4 25.03.2011: parameter &gemeinde= auch als Liste moeglich5 z.B. Wasserverband zustaendig fuer: &gemeinde=12,20,24,28,326 3 11.04.2011 epsg in Link, transform nur wenn notwendig 7 4 25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden 8 5 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, 11 12 dazu in der DB eine Tabelle mit Koordinate zum StraÃenschlÃŒssel aufbauen. 12 13 */ 13 import_request_variables(" PG");14 import_request_variables("G"); 14 15 include("../../conf/alkisnav_conf.php"); 15 16 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; … … 183 184 $gemnd=$row["gemeinde"]; 184 185 $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"]; 190 187 191 188 if ($showParent) { -
trunk/data/mapbender/http/nav/alkisnav_eig.php
r135 r140 1 1 <?php 2 2 /* 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 9 10 */ 10 11 import_request_variables("PG"); … … 12 13 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 13 14 $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?15 15 ?> 16 16 … … 39 39 // Eigentuemer nach Name(-nsanfang) 40 40 // =============================== 41 global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb ;41 global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $gfilter, $persfilter, $auskpath; 42 42 $linelimit=120; 43 43 $arr = explode(",", $name); … … 49 49 $match = trim($name0)."%"; 50 50 } 51 52 51 if(preg_match("/\*/",$name1)){ 53 52 $match1 = trim(preg_replace("/\*/i","%", strtoupper($name1))); … … 56 55 } 57 56 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 } 59 70 if($match1 != '%'){ 60 $sql.=" WHEREnachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 ";71 $sql.="nachnameoderfirma ILIKE $1 AND p.vorname ILIKE $2 "; 61 72 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $3 ;"; 62 73 $v=array($match, $match1, $linelimit); 63 74 }else{ 64 $sql.=" WHEREnachnameoderfirma ILIKE $1 ";75 $sql.="nachnameoderfirma ILIKE $1 "; 65 76 $sql.="ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; 66 77 $v=array($match, $linelimit); 67 78 } 68 // +++ Adresse der Person zur eindeutigen Bestimmung?69 79 $res=pg_prepare("", $sql); 70 80 $res=pg_execute("", $v); … … 74 84 } 75 85 $cnt = 0; 76 // einfache Liste ohne div und Icon77 86 while($row = pg_fetch_array($res)) { 78 87 $nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8"); 79 88 $vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8"); 80 89 $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."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$gml."&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."&gemeinde=".$gemeinde."&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."&gemeinde=".$gemeinde."&epsg=".$epsg."&person=".$gml."&name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>"; 84 95 $cnt++; 85 96 } … … 117 128 if (!$res) {echo "\n<p class='err'>Fehler bei Name</p>\n";} 118 129 // Daten der Person 119 echo "\n <div class='nam'>";120 // Link zur Auskunft Person130 echo "\n\t<table>\n\t<tr>\n\t\t<td valign='top'>"; 131 // Sp. 1: Icon, Link zur Auskunft Person 121 132 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&gemeinde=".$gemeinde."&gmlid=".$person."\")'>"; 122 133 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 125 136 if ($row = pg_fetch_array($res)) { 126 137 $namzeil=$row["nachnameoderfirma"].", ".$row["vorname"]; … … 135 146 if (trim($namzeil) != "") {echo "\n\t<br>".htmlentities($namzeil, ENT_QUOTES, "UTF-8");} 136 147 } 137 echo "\n\t</p>"; 138 echo "\n</div>"; 148 echo "\n\t</p></td></tr>\n\t</table>"; 139 149 140 150 // Suche nach GrundbÃŒchern der Person … … 181 191 // FlurstÃŒcke zum gewÀhlten Grundbuch 182 192 // =================================== 183 global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg ;193 global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg, $gfilter, $persfilter; 184 194 $linelimit=120; 185 195 … … 197 207 } 198 208 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 199 248 // 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 219 251 $v=array($gb, $linelimit); 220 252 $res=pg_prepare("", $sql); … … 225 257 return; 226 258 } 227 $zfs =0;259 $zfs1=0; 228 260 while($row = pg_fetch_array($res)) { 229 261 $fs_gml=$row["gml_id"]; 230 262 $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="";} 236 264 $gmkg=$row["bezeichnung"]; 237 265 $flur=$row["flurnummer"]; … … 251 279 echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>"; 252 280 echo "\n</div>"; 253 $zfs++; 254 } 255 if($zfs == 0) { 256 echo "\n<p class='err'>Kein Flurstück.</p>"; 257 echo "\n<p class='hilfe'>Hinweis: Sonderfä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."&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ü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ück im berechtigten Bereich.</p>"; 323 // echo "\n<p class='hilfe'>Hinweis: Sonderfälle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>"; 258 324 } elseif($zfs >= $linelimit) { 259 325 echo "\n<p>... und weitere</p>"; … … 277 343 } 278 344 if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";} 345 if ($gemeinde == "") { 346 $gfilter = 0; // ungefiltert 347 } elseif(strpos($gemeinde, ",") === false) { 348 $gfilter = 1; // Einzelwert 349 } else { 350 $gfilter = 2; // Liste 351 } 279 352 280 353 // Welche Parameter? -
trunk/data/mapbender/http/nav/alkisnav_fls.php
r129 r140 1 1 <?php 2 2 /* Version vom 3 13.01.20114 25.03.2011 Filter als Gemeinde-Liste5 12.04.2011 epsg in Link, transform nur wenn notwendig6 12.05.2011 Syntaxfehler in SQL7 25.07.2011 PostNAS 0.5/0.6 Versionen unterscheiden8 3 24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 9 4 07.11.2011 optional auch Historische FS suchen, Link auf Buchauskunft-Modul alkisfshis.php … … 16 11 17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 17 12 */ 18 import_request_variables(" PG");13 import_request_variables("G"); 19 14 include("../../conf/alkisnav_conf.php"); 20 15 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; -
trunk/data/mapbender/http/nav/alkisnav_grd.php
r129 r140 1 1 <?php 2 2 /* Version vom 3 14.01.20114 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 unterscheiden7 3 24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 8 4 17.11.2011 Nachweis-Links ÃŒber javascript im neuen Hochformat-Fenster 9 5 */ 10 import_request_variables(" PG");6 import_request_variables("G"); 11 7 include("../../conf/alkisnav_conf.php"); 12 8 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password;
Note: See TracChangeset
for help on using the changeset viewer.