- Timestamp:
- 06/24/21 15:59:16 (3 years ago)
- Location:
- trunk/info
- Files:
-
- 2 added
- 2 deleted
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkisn/alkis_conf_location.php
r377 r422 3 3 Pfad zur Konfigurationsdatei der ALKIS-Auskunft. 4 4 Die Conf-Datei sollte aus Sicherheitsgruenden nicht unterhalb des Web-Root-Verzeichnisses liegen. 5 6 Version: 7 2016-02-23 Version fuer norGIS-ALKIS-Import, keine PostNAS-Versionsnummer im DB-Namen 5 Version: 6 2020-10-13 Syntax ohne Klammern, rename 8 7 */ 9 require_once("/opt/gdi/conf/alkisn_conf.php"); // Nicht unter Web-Root speichern 8 include "/opt/gdi/conf/alkis_conf.php"; 10 9 ?> -
trunk/info/info/alkisn/alkisausk.php
r412 r422 11 11 Version: 12 12 2016-02-24 Version fuer norGIS-ALKIS-Import 13 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen (Berechtigung fÃŒr Gemeinde prÃŒfen)14 20 17-10-11 Sauber filtern auf endet IS NULL15 20 18-11-09 Umstellung Full-Schema13 .... 14 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 15 2020-12-15 Input-Validation und Strict Comparisation (===) 16 16 17 17 H i n w e i s : Dies Modul wird beim Entwickler nicht mehr produktiv eingesetzt. … … 19 19 Mangels Praxis bleiben Fehler möglicherweise unerkannt. 20 20 */ 21 ini_set("session.cookie_httponly", 1); 21 22 session_start(); 22 23 $cntget = extract($_GET); 23 24 require_once("alkis_conf_location.php"); 25 if ($auth == "mapbender") {require_once($mapbender);} 26 include("alkisfkt.php"); 24 if (isset($gkz)) { 25 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 26 } else { 27 die("Fehlender Parameter"); 28 } 29 include "alkis_conf_location.php"; 30 include "alkisfkt.php"; 31 27 32 $keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 28 if ($keys == "j") {$showkey=true;} else {$showkey=false;}33 if ($keys === "j") {$showkey=true;} else {$showkey=false;} 29 34 echo <<<END 30 35 <!doctype html> … … 38 43 <body> 39 44 END; 45 46 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 47 40 48 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisausk.php'"); 41 49 if (!$con) {echo "<br>Fehler beim Verbinden der DB.\n<br>";} … … 197 205 $blattkey=$rowg["blattart"]; 198 206 $blattart=$rowg["blattartv"]; 199 if ($blattkey == 1000) {207 if ($blattkey === 1000) { 200 208 echo "\n\t<table class='kennzgb' title='Bestandskennzeichen'>"; 201 209 } else { … … 221 229 ."\n\t</table>"; 222 230 223 if ($rowg["zaehler"] <>"") {231 if ($rowg["zaehler"] != "") { 224 232 echo "\n<p class='ant'>".$rowg["zaehler"]."/".$rowg["nenner"]." Anteil am Flurstück</p>"; 225 233 } … … 234 242 235 243 // E I G E N T U E M E R 236 if ($blattkey == 5000) { // SchlÃŒssel Blatt-Art244 if ($blattkey === 5000) { // SchlÃŒssel Blatt-Art 237 245 echo "\n<p>Keine Angaben zum Eigentum bei fiktivem Blatt</p>\n" 238 246 ."\n<p>Siehe weitere Grundbuchblätter mit Rechten an dem fiktiven Blatt.</p>"; … … 241 249 $n = eigentuemer($rowg["gml_id"], false, "imFenster"); // ohne Adressen 242 250 243 if ($n == 0) { // keine NamNum, kein Eigent.251 if ($n === 0) { // keine NamNum, kein Eigent. 244 252 echo "\n<p class='err'>Keine Eigentümer gefunden.</p>" 245 253 ."\n<p class='err'>Bezirk ".$rowg["bezirk"]." Blatt ".$rowg["blatt"]." Blattart ".$blattkey." (".$blattart.")</p>"; … … 248 256 $j++; 249 257 } 250 if ($j == 0) {echo "\n<p class='err'>Keine Buchungen gefunden.</p>";}258 if ($j === 0) {echo "\n<p class='err'>Keine Buchungen gefunden.</p>";} 251 259 echo "\n<hr>"; 252 260 253 footer($gmlid, $_SERVER['PHP_SELF']."?", "");261 footer($gmlid, selbstverlinkung()."?", ""); 254 262 255 263 ?> -
trunk/info/info/alkisn/alkisauszug.css
r405 r422 3 3 4 4 Version: 5 2010-09-21 Inlay 6 2010-09-30 body-width bei Print 7 2010-10-12 class p.fsd: margin statt position-relative, dann keine Scrollbar 8 2011-01-04 Spalte td.fla im fsnw 9 2011-01-26 einheitlich td padding-top 6px 10 2011-11-16 FS-Historie 11 2013-06-27 p.recht 12 2014-01-27 strasse, hsnr, Print-Balken 13 2014-09-15 PostNAS 0.8: p.cnt 14 2014-12-30 Neu: td.fsnr 15 2016-02-24 Umstellung norBIT-Struktur 16 2016-12-01 Stop-Meldung bei BerechtigungsprÃŒfung, Sortierspalten 17 2017-06-08 Tab-Zeilen-Farbe wechseln, Spaltenbreite td.flag, media screen 18 2017-06-09 ErlÀrung zu Haus: 2 Arten 19 2017-10-11 BodenschÀtzung 20 2017-10-17 td.nwlink min-width 21 2017-12-20 td.dbg 5 2010-09-21 6 .... 22 7 2018-04-23 Spaltenbreiten 23 8 2018-05-03 GS-Nachweis 9 2020-02-03 media screen body width 10 2021-03-08 Gruppenwechsel-ZwischenÃŒberschrift 11 2021-03-17 Balken von Bauwerk Farbe wie im WMS 24 12 25 https://wiki.selfhtml.org/wiki/Grafik/Farbpaletten#Farbnamen13 https://wiki.selfhtml.org/wiki/Grafik/Farbpaletten#Farbnamen 26 14 */ 27 15 body {background-color: #FEFFFE;} 28 p, body {font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; 29 font-size: 10pt; color: #000033; margin-top: 2pt; margin-bottom: 2pt;} 16 p, body {font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 10pt; color: #000033; margin-top: 2pt; margin-bottom: 2pt;} 30 17 31 /* Banner im Kopf (farbiger Balken), Farbcode fuer Nachweis-Art (gleiche Farbe wie Rahmen um das Kennzeichen) */ 32 p.fsausk,p.fskennz,p.fsei,p.fshis,p.gbkennz,p.gskennz,p.nakennz,p.geb,p.lage,p.strasse,p.recht {text-align: right; padding-top: 4px; padding-bottom: 4px; padding-right: 24px;} 33 /* Balken-Farben individuell */ 34 p.fsausk {background-color: teal; color: silver;} /* Uebersichts-Seite Flurstuecks-Auskunft */ 35 p.fskennz,p.fsei{background-color: navy; color: silver;} /* Flurstuecks-Nachweis */ 36 p.fshis {background-color: gray; color: white;} /* Flurstuecks-Historie */ 37 p.gbkennz {background-color: green; color: silver;} /* Bestandsnachweis */ 18 /* Banner im Kopf (farbiger Balken) */ 19 p.balken {text-align: right; padding-top: 4px; padding-bottom: 4px; padding-right: 24px;} 20 21 /* Farbcode individuell fÃŒr Nachweis-Art (gleiche Farbe wie Rahmen um Kennz.) */ 22 p.fsausk {background-color: teal; color: silver;} /* Uebersichts-Seite Flurstuecks-Auskunft */ 23 p.fskennz,p.fsei{background-color: navy; color: silver;} /* Flurstuecks-Nachweis */ 24 p.fshis {background-color: gray; color: white;} /* Flurstuecks-Historie */ 25 p.gbkennz {background-color: green; color: silver;} /* Bestandsnachweis */ 38 26 p.gskennz {background-color: LightGreen ; color: DimGray ;} /* GrundstÃŒcksnachweis */ 39 p.nakennz {background-color: maroon; color: silver;} /* Personen- und Adressdaten */40 p.geb {background-color: yellow; color: gray;} /* Gebaeude zum FS */41 p.lage {background-color: lime; color: gray;} /* Lage/Adresse zum FS */27 p.nakennz {background-color: maroon; color: silver;} /* Personen- und Adressdaten */ 28 p.geb {background-color: yellow; color: gray;} /* Gebaeude zum FS */ 29 p.lage {background-color: lime; color: gray;} /* Lage/Adresse zum FS */ 42 30 p.strasse {background-color: limegreen; color: slategray;} /* Strasse */ 43 p.recht {background-color: #F0F8FF; color: gray;} /* Baurecht, Bodenneuordnung */ 31 p.recht {background-color: #F0F8FF; color: gray;} /* Baurecht, Bodenneuordnung */ 32 33 /* in alkisbauwerk.php synchron zum Mapfile (WMS), 9 Layer-Gruppen */ 34 p.bauwerk1 {background-color: rgb(40,0,180); color: gray;} /* 1 Bauwerk im Verkehrsbereich */ 35 p.bauwerk2 {background-color: rgb(0,160,246); color: gray;} /* 2 Bauwerk im GewÀsserbereich */ 36 p.bauwerk3 {background-color: rgb(160,130,0); color: black;} /* 3 Sonstiges Bauwerk oder sonstige Einrichtung */ 37 p.bauwerk4 {background-color: rgb(252,162,2); color: gray;} /* 4 Bauwerk oder Anlage fÃŒr Industrie und Gewerbe */ 38 p.bauwerk5 {background-color: rgb(140,0,120); color: gray;} /* 5 Bauwerk oder Anlage fÃŒr Sport, Freizeit und Erholung */ 39 p.bauwerk6 {background-color: rgb(220,10,10); color: black;} /* 6 Leitung */ 40 p.bauwerk7 {background-color: rgb(10,180,10 ); color: gray;} /* 7 Transportanlage */ 41 p.bauwerk8 {background-color: rgb(135,76,1); color: gray;} /* 8 Turm */ 42 p.bauwerk9 {background-color: rgb(0,140,40); color: black;} /* 9 VorratsbehÀlter, Speicherbauwerk */ 44 43 45 44 /* Format nach Inhalt */ 46 /* p.bezieh {text-align: right; background: olive; color: silver;} */ /* Beziehungen */ 47 p.fsd {margin-left: 170px;} /* Flst-Flaeche */ 48 p.gbl {position: relative; left: 60px;} /* Nam: Buchungsstelle*/ 45 p.fsd {margin-left: 170px;} /* Flst-Flaeche */ 46 p.gbl {position: relative; left: 60px;} /* Nam: Buchungsstelle*/ 49 47 p.zus {margin: 2pt; padding: 2pt; border:1px dotted maroon; background: white;} /* Zusatz zum Eigent., gerahmt */ 50 p.avh {font-style: italic; color: navy;} /* Anteilsverhaeltnis */48 p.avh {font-style: italic; color: navy;} /* Anteilsverhaeltnis */ 51 49 p.ant {font-style: italic; position: relative;} /* Anteil am FS left: 12px;*/ 52 p.geig {color: navy;} /* GB-Nachw. Eigentuemer Name */53 p.gadr {color: maroon; margin-top: 1pt;} /* GB-Nachw. Eigentuemer Adresse */50 p.geig {color: navy;} /* GB-Nachw. Eigentuemer Name */ 51 p.gadr {color: maroon; margin-top: 1pt;} /* GB-Nachw. Eigentuemer Adresse */ 54 52 p.nwlink, td.nwlink {font-size: 7pt; text-align: right; margin-top: 0pt;} /* Link zum Nachweis GB, FS, ..*/ 55 p.err {font-size: 11px; color: red;} /* Fehler -> Anwender */53 p.err {font-size: 11px; color: red;} /* Fehler -> Anwender */ 56 54 p.dbg, td.dbg{font-size: 10px; color: gray;} /* Debug -> Entwickler */ 57 p.cnt {font-size: 10px; color: gray;} /* Counter, Zaehler */58 p.warn {color: gray; font-style: italic;} /* Warnung, Hinweis */59 p.ph {color: gray;} /* Platzhalter */60 p.erklk {color: silver; font-size: 8pt;} /* Haus: ErklÀrungen zur Kategorie */61 p.erkli {color: grey; font-size: 8pt;} /* Haus: ErklÀrungen zum Inhalt */55 p.cnt {font-size: 10px; color: gray;} /* Counter, Zaehler */ 56 p.warn {color: gray; font-style: italic;} /* Warnung, Hinweis */ 57 p.ph {color: gray;} /* Platzhalter */ 58 p.erklk {color: silver; font-size: 8pt;} /* Haus: ErklÀrungen zur Kategorie */ 59 p.erkli {color: grey; font-size: 8pt;} /* Haus: ErklÀrungen zum Inhalt */ 62 60 63 61 /* Links */ … … 93 91 table.kennzstra {border: 2px solid limegreen; padding: 3px; margin: 0px;} /* Strasse */ 94 92 95 /* volle Breite fuer verschiedene Zwecke*/96 table.fs, table.nua, table.klas, table.eig, table.outer, table.geb {width: 100%;}93 /* fast volle Breite, fuer verschiedene Zwecke, aber kleiner als Body */ 94 table.fs, table.nua, table.klas, table.eig, table.outer, table.geb {width: 98%;} 97 95 98 96 td {vertical-align: top; padding-top: 6px;} /* ** Tabellenfelder ** */ … … 101 99 td.ll {width: 140px;} /* Liste Links */ 102 100 td.lr {color: black; padding-left: 4px;} /* Liste Rechts */ 103 td.re {min-width: 80px; padding-right: 4px; text-align: right;} 104 td.fla {width: 110px; padding-right: 4px; text-align: right;} 105 td.flag {min-width: 110px; padding-right: 4px; text-align: right;} 106 td.fsnr {padding-right: 4px; text-align: right;} 101 td.re {min-width: 80px; padding-right: 4px; text-align: right;} /* RechtsbÃŒndig */ 102 td.fla {width: 110px; padding-right: 4px; text-align: right;} /* Flaechen rechtsbuendig (stellengerecht) */ 103 td.flag {min-width: 110px; padding-right: 4px; text-align: right;} /* .. im GB-Bestandsnachweis erweiterbar */ 104 td.fsnr {padding-right: 4px; text-align: right;} /* Flst.-Nr. rechtsbuendig */ 107 105 td.key {width: 35px; padding-right: 4px; padding-left: 4px;} 108 /* Ertragsmesszahl der Bodenschaetzung 109 td.emz {width: 45px; padding-right: 4px; padding-left: 4px; text-align: right;} */ 106 /* td.emz {width: 45px; padding-right: 4px; padding-left: 4px; text-align: right;} Ertragsmesszahl der Bodenschaetzung */ 110 107 td.kurz {width: 26px; padding-left: 4px;} 111 td.nanu {width: 50px;} /* Namensnummer */108 td.nanu {width: 50px;} /* Namensnummer */ 112 109 td.sond, p.sond {font-size: 9pt; font-style: italic; background-color: white; 113 border: 1px dotted silver; padding: 6px;} /* Sondereigentumsbeschreibung */110 border: 1px dotted silver; padding: 6px;} /* Sondereigentumsbeschreibung */ 114 111 td.nrap, p.nrap {font-size: 9pt; font-style: italic; background-color: white;} /* Nummer im Aufteilungsplan */ 115 112 td.fett {font-weight: bold;} 116 td.nwlink {min-width: 80px;} /* Link zum Nachweis */113 td.nwlink {min-width: 80px;} /* Link zum Nachweis */ 117 114 118 /* Kopfzeile, Spaltenueberschrift */ 119 td.head, td.heads{font-style: italic; padding-top: 2px;} 120 td.head {border-bottom: 1px solid gray;} 121 td.heads {border-bottom: 1px solid black;} /* Kopf Sortierspalte(n) */ 115 /* Kopfzeile, SpaltenÃŒberschrift, GW-Zwischenzeile */ 116 td.head, td.heads, td.gw{font-style: italic; padding-top: 2px;} 117 td.head {border-bottom: 1px solid gray;} 118 td.heads {border-bottom: 1px solid black;} /* Kopf Sortierspalte */ 119 td.gw {background-color: WhiteSmoke;} /* Gruppen-Wechsel */ 122 120 123 121 td.sum {border-top: 2px dotted maroon; border-bottom:3px solid maroon; 124 122 border-left:0px dotted maroon; border-right:0px dotted maroon; font-weight: bold;} /* unter dem Strich = Summenzeile */ 125 td.bez {font-weight: bold;} /* Beziehungen */126 td.nhd {width: 150px;} /* Namen - linke / rechte Spalte */123 td.bez {font-weight: bold;} /* Beziehungen */ 124 td.nhd {width: 150px;} /* Namen - linke / rechte Spalte */ 127 125 td.nam {font-weight: bold;} 128 126 /* td.gbl {border-bottom: 1px dotted green;} Name: GB-Liste */ … … 133 131 td.hsnr {width: 70px; padding-right: 4px; text-align: right;} /* Hausnummer in StraÃe */ 134 132 135 /* Fallunterscheidung bei GebÀude auf FlurstÃŒck: */136 td.gin {color: rgb(0,50,0);} /* GebÀudein FS */137 td.gtl {color: rgb(140,140,100);} /* GebÀudeteilweise auf FS */138 td.gan {color: rgb(210,170,170);} /* GebÀudeangrenzend an FS*/133 /* Fallunterscheidung bei GebÀude oder Bauwerk auf FlurstÃŒck: */ 134 td.gin {color: rgb(0,50,0);} /* in FS */ 135 td.gtl {color: rgb(140,140,100);} /* teilweise auf FS */ 136 td.gan {color: rgb(210,170,170);} /* angrenzend an FS*/ 139 137 140 138 /* Farbwechsel je Zeile pair/unpair */ … … 142 140 tr.unp {background-color: rgb(252,255,252);} 143 141 144 /* Ueberschriften */142 /* Ãberschriften */ 145 143 h1, h2, h3, h4, h5, h6 {font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;} 146 144 h1 { color: black; font-size: 14pt;} … … 152 150 153 151 img {border: 0px; margin: 0px;} /* Icons */ 154 155 iframe.inlay {border:0px; width: 100%;} /* height: 400px; */156 152 157 153 /* Abbruch, Fehler der Berechtigung */ … … 166 162 /* Nur am Bildschirm: */ 167 163 @media screen { 168 /* gefÃŒllten farbiger Balken abrunden */ 169 p.fsausk,p.fskennz,p.fsei,p.fshis,p.gbkennz,p.gskennz,p.nakennz,p.geb,p.lage,p.strasse,p.recht { border-radius: 8px; } 164 body {width: 740px;} /* wenn in eigenem Browser-Tab geöffnet statt in Hochformat-Fenster. 165 width synchron halten mit Javascript-Function "imFenster" aus alkisinlayausk.php. Etwas kleiner als Fenster. */ 166 body.mbfi {width: 540px;} /* Mapbender Feature-Info, kleines PopUp-Fenster */ 167 /* iframe.inlay Siehe featureinfo.css */ 168 169 p.balken {border-radius: 8px;} /* gefÃŒllten farbiger Balken, abrunden */ 170 170 .onlyprint {visibility: hidden;} 171 171 } 172 172 173 173 /* Abweichende Darstellung im Druck. 174 Generell keine "Bedienelemente" mit drucken, also Links zu anderen Nachweisen oder optionale Umschalter fÃŒr den Umfang der Anzeige.175 Dies wird durch class='noprint' gesteuert. GroÃe farbige FlÀchen vermeiden, z.B. durch Rahmen ersetzen. */174 Generell keine "Bedienelemente" mit drucken, also Hyperlinks zu anderen Nachweisen oder optionale Umschalter fÃŒr den Umfang der Anzeige. 175 Dies wird durch class='noprint' gesteuert. GroÃe farbige FlÀchen vermeiden, z.B. durch einen Rahmen ersetzen. */ 176 176 @media print { 177 body {background-color: white;} /* width: 98%; */178 .noprint 177 body {background-color: white;} 178 .noprint {visibility: hidden;} 179 179 180 180 /* Balken im Druck (auf weiÃem Hintergrund) mit schwarzer Schrift */ -
trunk/info/info/alkisn/alkisbaurecht.php
r412 r422 5 5 Version: 6 6 2016-02-24 Version fuer norGIS-ALKIS-Import 7 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 8 2017-06-08 Validierung Eingabeparameter, Feinkorrekturen 9 2017-10-09 Sauber filtern auf endet IS NULL 10 2018-04-23 &nodebug 11 2018-11-09 Umstellung Full-Schema 7 .... 8 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 9 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 10 2020-12-15 Input-Validation und Strict Comparisation (===) 12 11 */ 12 ini_set("session.cookie_httponly", 1); 13 13 session_start(); 14 14 $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren … … 16 16 17 17 // strikte Validierung aller Parameter 18 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 19 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 18 if (isset($gmlid)) { 19 if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 20 } else { 21 die("Fehlender Parameter"); 22 } 23 if (isset($gkz)) { 24 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 25 } else { 26 die("Fehlender Parameter"); 27 } 20 28 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 21 if ($showkey == "j") {$showkey=true;} else {$showkey=false;}29 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 22 30 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 23 31 24 require_once("alkis_conf_location.php");25 i f ($auth == "mapbender") {require_once($mapbender);}26 include("alkisfkt.php"); // f. Footer 32 include "alkis_conf_location.php"; 33 include "alkisfkt.php"; 34 27 35 echo <<<END 28 36 <!doctype html> … … 38 46 END; 39 47 48 $erlaubnis = darf_ich(); if ($erlaubnis === 0) {die('<p class="stop1">Abbruch</p></body>');} 49 40 50 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 41 // Manuell an die URL anf ügen, wirkt nur temporär und wird nicht in Links weiter gereicht.42 if ($nodebug == "j") {$debug=0;}51 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 52 if ($nodebug === "j") {$debug=0;} 43 53 44 54 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbaurecht.php'"); … … 59 69 if (!$res) { 60 70 echo "\n<p class='err'>Fehler bei Baurecht.</p>"; 61 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid."</p>";}71 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 62 72 } 63 73 if ($row = pg_fetch_assoc($res)) { … … 67 77 $stellb=$row["stellbez"]; 68 78 $stella=$row["stellenart"]; 79 $behb=$row["beschreibung"]; 80 $behd=$row["dokumentation"]; 69 81 70 82 // Balken 71 echo "<p class=' recht'>ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr." </p>";83 echo "<p class='balken recht'>ALKIS Bau-, Raum- oder Bodenordnungsrecht ".$artfest."-".$verfnr." </p>"; 72 84 73 85 echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>"; … … 102 114 ."\n\t<td class='li'>Art der Dienststelle:</td>" 103 115 ."\n\t<td>"; 104 if ($showkey) {echo " <span class='key'>(".$stella.")</span> ";}105 echo "<span title='".$ row["d"]."'>".$row["v"]."</span>";116 if ($showkey) {echo " <span class='key'>(".$stella.")</span> ";} 117 echo "<span title='".$behd."'>".$behb."</span>"; 106 118 echo "</td>" 107 119 ."\n</tr>"; … … 124 136 FROM ax_flurstueck f, ax_bauraumoderbodenordnungsrecht r 125 137 WHERE r.gml_id= $1 AND f.endet IS NULL AND r.endet IS NULL "; 126 if ($filtgem == '' ) { // ungefiltert138 if ($filtgem === '' ) { // ungefiltert 127 139 $v=array($gmlid); 128 140 } else { 129 $sql.="AND f.gemeindezugehoerigkeit_kreis = $2 AND f.gemeindezugehoerigkeit_gemeinde = $3 "; // Zust ändiges Gebiet141 $sql.="AND f.gemeindezugehoerigkeit_kreis = $2 AND f.gemeindezugehoerigkeit_gemeinde = $3 "; // ZustÀndiges Gebiet 130 142 $v=array($gmlid, $filtkreis, $filtgem); 131 143 } 132 144 $sql.="AND st_intersects(r.wkb_geometry,f.wkb_geometry) = true 133 145 AND st_area(st_intersection(r.wkb_geometry,f.wkb_geometry)) > 0.05 134 ORDER BY schnittflae DESC LIMIT 50;";146 ORDER BY schnittflae DESC LIMIT 100;"; 135 147 // > 0.0 ist gemeint, Ungenauigkeit durch st_simplify 136 148 // Limit: Flurbereinig. kann gross werden! … … 140 152 $res=pg_execute("", $v); 141 153 if (!$res) { 142 echo "\n<p class='err'>Keine Flurstücke ermittelt.<br> \nSQL=<br></p>";143 // if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid."</p>";} 154 echo "\n<p class='err'>Keine Flurstücke ermittelt.<br></p>"; 155 //if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} // ggf. mehrere Parameter! 144 156 } 145 157 … … 172 184 echo "\n</table>"; 173 185 174 if ($fscnt == 0) { // nicht gefunden175 if ($filtgem == '' ) { // ungefiltert186 if ($fscnt === 0) { // nicht gefunden 187 if ($filtgem === '' ) { // ungefiltert 176 188 echo "\n<p class='err'>Kein Flurstück gefunden.</p>"; 177 189 } else { // Wahrscheinliche Ursache = Filter … … 179 191 // if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = ".$gmlid." $2 = ".$filtkreis." $3 = ".$filtgem."</p>";} 180 192 } 181 } elseif ($fscnt == 50) {182 echo "<p>... und weitere Flurstücke (Limit 50 erreicht).</p>";193 } elseif ($fscnt === 100) { 194 echo "<p>... und weitere Flurstücke (Limit 100 erreicht).</p>"; 183 195 } 184 196 … … 193 205 END; 194 206 195 footer($gmlid, $_SERVER['PHP_SELF']."?", "");207 footer($gmlid, selbstverlinkung()."?", ""); 196 208 197 209 ?> -
trunk/info/info/alkisn/alkisbestnw.php
r416 r422 7 7 Version: 8 8 2016-02-24 Version fuer norGIS-ALKIS-Import 9 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen, Markierung der Sortierung 10 2017-06-01 Function "eigentuemer" ohne Parameter $con 11 2017-06-08 Validierung Eingabeparameter, Farbwechsel der Tabelle je GrundstÃŒck, Feinschliff und HTML-Profilierung 12 2017-10-09 SchlÃŒssel der Blattart bei berechtigten BlÀttern, sauber filtern auf endet IS NULL 13 2018-04-23 Blatt und EigentÃŒmer in eine Tabelle. 14 2018-05-03 Anpassung an GrundstÃŒcksnachweis, kein Export fÃŒr fiktives Blatt 15 2018-11-09 Umstellung Full-Schema 16 2018-11-14 Korrektur zu Full-Schema 9 .... 10 2020-02-20 Authentifizierung ausgelegert in Function darf_ich() 11 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 12 2020-12-15 Input-Validation und Strict Comparisation (===) 17 13 */ 14 ini_set("session.cookie_httponly", 1); 18 15 session_start(); 19 16 $showkey="n"; $nodebug=""; // Var. initalisieren … … 21 18 22 19 // strikte Validierung aller Parameter 23 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 24 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 20 if (isset($gmlid)) { 21 if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 22 } else { 23 die("Fehlender Parameter"); 24 } 25 if (isset($gkz)) { 26 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 27 } else { 28 die("Fehlender Parameter"); 29 } 25 30 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 26 if ($showkey == "j") {$showkey=true;} else {$showkey=false;}31 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 27 32 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 28 33 29 require_once("alkis_conf_location.php");30 i f ($auth == "mapbender") {require_once($mapbender);}31 include("alkisfkt.php"); 34 include "alkis_conf_location.php"; 35 include "alkisfkt.php"; 36 32 37 ?> 33 38 <!doctype html> … … 47 52 <body> 48 53 <?php 54 55 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 56 49 57 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 50 58 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 51 if ($nodebug == "j") {$debug=0;}59 if ($nodebug === "j") {$debug=0;} 52 60 53 61 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisbestnw.php'"); … … 69 77 if (!$res) { 70 78 echo "\n<p class='err'>Fehler bei Grundbuchdaten.</p>"; 71 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}79 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 72 80 } 73 81 if ($row = pg_fetch_assoc($res)) { … … 76 84 $blatt=ltrim($row["blatt"], "0"); 77 85 78 echo "<p class=' gbkennz'>ALKIS Bestand ".$row["bezirk"]." - ".$blatt." </p>"; // Balken86 echo "<p class='balken gbkennz'>ALKIS Bestand ".$row["bezirk"]." - ".$blatt." </p>"; // Balken 79 87 echo "\n<h2>Grundbuch</h2>"; 80 88 echo "\n<table class='outer'>" // Blatt UND Eigent. … … 112 120 } else { // E I G E N T U E M E R 113 121 $n = eigentuemer($gmlid, true, ""); // MIT Adressen. 114 if ($n == 0) { // keine NamensNr, kein Eigentuemer122 if ($n === 0) { // keine NamensNr, kein Eigentuemer 115 123 echo "\n<p class='err'>Keine Namensnummer gefunden.</p>" 116 124 ."\n<p>Bezirk: ".$row["bezirk"].", Blatt: ".$blatt.", Blattart ".$blattkey." (".$blattart.")</p>"; … … 179 187 if (!$res) { 180 188 echo "\n<p class='err'>Fehler bei Buchung.</p>"; 181 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '". $gmlid."'</p>";}189 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 182 190 } 183 191 $i=0; … … 202 210 $j = bnw_fsdaten($lfdnr, $gml_bs, $bart, $anteil, true, $bartkey, $bartstory); // return=Anzahl der FS 203 211 $fscnt=$fscnt + $j; 204 if ($j == 0) { // k e i n e Flurstuecke gefunden (Miteigentumsnteil usw.)212 if ($j === 0) { // k e i n e Flurstuecke gefunden (Miteigentumsnteil usw.) 205 213 // Bei "normalen" Grundstuecken wurden hier Flurstuecksdaten gefunden und ausgegeben. 206 214 // Bei Miteigentumsanteil, Erbbaurecht usw. muss nach den "dienenden" Buchungsstellen gesucht werden, darauf sind die FS gebucht. … … 230 238 if (!$resan) { 231 239 echo "\n<p class='err'>Fehler bei 'andere Buchungsstelle'.</p>"; 232 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = '".$gml_bs."'</p>";}240 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gml_bs."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 233 241 } 234 242 … … 252 260 if (!$fbres) { 253 261 echo "\n<p class='err'>Fehler bei fiktivem Blatt.</p>"; 254 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}262 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( str_replace("$1", "'".$gml_bsan."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 255 263 } 256 264 $b=0; … … 271 279 echo "\n<tr class='".$trclass."'>" 272 280 ."\n\t<td id='bvnr".$lfdnr."'>"; // Sp.1 Erbbau BVNR, Sprungmarke 273 if($bvnr == $altbvnr) { // gleiches Grundstueck281 if($bvnr === $altbvnr) { // gleiches Grundstueck 274 282 echo " "; // dann Anzeige unterdruecken 275 283 } else { … … 328 336 $a++; 329 337 } 330 if ($a == 0) {338 if ($a === 0) { 331 339 echo "\n<tr class='".$trclass."'>" 332 340 ."\n\t<td><span class='wichtig'>".$bvnr."</span></td>" … … 349 357 echo "\n</table>"; 350 358 351 if ($i == 0) {359 if ($i === 0) { 352 360 echo "\n<p class='err'>Keine Buchung gefunden.</p>"; 353 361 } else { … … 379 387 if (!$resb) { 380 388 echo "\n<p class='err'>Fehler bei 'Berechtigte Blätter.</p>"; 381 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}389 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 382 390 } 383 391 $b=0; // count: Buchungen / BlÀtter 384 392 $zpaar=false; 385 393 while($rowb = pg_fetch_assoc($resb)) { 386 if ($b == 0) { // Ueberschrift und Tabelle nur ausgeben, wenn etwas gefunden wurde394 if ($b === 0) { // Ueberschrift und Tabelle nur ausgeben, wenn etwas gefunden wurde 387 395 echo "\n\n<h3><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Berechtigte Grundbücher</h3>" 388 396 ."\n<table class='outer'>" … … 443 451 $b++; 444 452 } 445 if ($b == 0) {453 if ($b === 0) { 446 454 if ($blattkey > 2000 ) { // Warnung nicht bei Grundbuchblatt 1000 und Katasterblatt 2000 447 455 echo "\n<p class='err'>Keine berechtigten Blätter zu ".$blattart." (".$blattkey.") gefunden.</p>"; … … 463 471 } 464 472 echo " \n</div>"; 465 footer($gmlid, $_SERVER['PHP_SELF']."?", "");473 footer($gmlid, selbstverlinkung()."?", ""); 466 474 ?> 467 475 </body> -
trunk/info/info/alkisn/alkisexport.php
r412 r422 22 22 -------- 23 23 2016-02-23 Version fuer norGIS-ALKIS-Import 24 2016-10-18 Export einer ganzen Gemarkung zulassen (Sonderfall bei den Parametern) 25 2016-11-29 Gemeinsam genutzte Datenbanken ermöglichen 26 2017-02-23 Filter mit/ohne Hausnummer zum Typ "strasse". 27 Dazu muss der View "exp_csv_str" um die spalte "fall" erweitert werden. 28 2017-06-08 Validierung Eingabeparameter 29 2017-10-11 Sauber filtern auf endet IS NULL 30 2017-12-20 Nur eine Adresse zur Person (Siehe Views in "views_exp_csv.sql") 24 .... 31 25 2018-05-03 Aufruf aus neuem GrundstÃŒcksnachweis: tabtyp='buchung', angepasster View "exp_csv" notwendig 32 26 2018-10-16 Neuer Aufruf-Typ aus der rÀumlichen Selektion, &tabtyp=flstliste&prefix=DENW15&gmlliste=AL...,AL.... 27 2020-12-16 Input-Validation und Strict Comparisation (===), BerechtigungsprÃŒfung vorÃŒbergehend deaktiviert 33 28 34 29 ToDo: … … 57 52 if ($j > 0) {$lagehsnr.=", ";} 58 53 $sneu=$row["bezeichnung"]; 59 if ($sneu == $salt) { // gleiche Str.54 if ($sneu === $salt) { // gleiche Str. 60 55 $lagehsnr.=$row["hausnummer"]; // HsNr dran haengen 61 56 } else { // Name UND HsNr dranhaengen … … 75 70 76 71 // strikte Validierung aller Parameter 77 if ( isset($gmlid)) {72 if (isset($gmlid)) { 78 73 if ( !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 79 74 } else { … … 82 77 83 78 // FS-Limit? x (16+1) = 84 if ( isset($gmlliste)) {79 if (isset($gmlliste)) { 85 80 if (!preg_match("#^[0-9A-Za-z,]{16,2000}$#", $gmlliste)) { 86 // echo "\n<p>gmlliste=".$gmlliste."</p>\n"; // NUR TEST87 81 die("Eingabefehler gmlliste"); 88 82 } 89 83 } 90 84 91 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 85 if (isset($gkz)) { 86 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 87 } else { 88 die("Fehlender Parameter"); 89 } 92 90 if (isset($gemarkung)) { 93 91 if (!preg_match('#^[0-9]{4}$#', $gemarkung)) {die("Eingabefehler gemarkung");} … … 98 96 if (!preg_match('#^[a-z]{0,10}$#', $tabtyp)) {die("Eingabefehler tabtyp");} 99 97 100 require_once("alkis_conf_location.php"); // Konfiguration laden 101 include("alkisfkt.php"); // Funktionen der ALKIS-Auskunft laden 102 103 if ($tabtyp == '') { // Parameter (-kombinationen) pruefen 98 include "alkis_conf_location.php"; 99 include "alkisfkt.php"; 100 101 // BerechtigungsprÃŒfung fuer CSV vorÃŒbergehend deaktiviert weil darin HTML-Meldungen ausgegeben werden. 102 // ggf. dies per Option verhindern und wieder aktivieren. 103 //$erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('Abbruch'); } 104 105 if ($tabtyp === '') { // Parameter (-kombinationen) pruefen 104 106 if ($gemarkung != '') { // Dieser Parameters bestimmt auch eindeutig den $tabtyp 105 107 $tabtyp = 'gemarkung'; … … 108 110 exit ($err); 109 111 } 110 } elseif ($tabtyp == 'gemarkung') {111 if ($gemarkung == '') {112 } elseif ($tabtyp === 'gemarkung') { 113 if ($gemarkung === '') { 112 114 $err="\nFehler: Gemarkungsnummer nicht angeben."; 113 115 exit ($err); … … 116 118 117 119 if ($gmlid != '') { // Angabe von gmlid ist der Normalfall, das passt fÃŒr fast jeden tabtyp 118 if ($tabtyp == 'strasse' and $haus != '') { // den Zusatzfilter m/o im Dateinamen dokumentieren119 if ($haus == 'm') {120 if ($tabtyp === 'strasse' and $haus != '') { // den Zusatzfilter m/o im Dateinamen dokumentieren 121 if ($haus === 'm') { 120 122 $filename='alkis_'.$tabtyp.'_'.$gmlid.'_mit_hsnr.csv'; 121 123 } else { // = o … … 134 136 135 137 /* // $gmlid zu strasse ist noch notwendig solange kein Filter auf "Gemeinde" verwendet wird. 136 } elseif ($haus == 'm' or $haus== 'o') { // Sonderfall 2 - alle mit/ohne Hausnummer, nur ÃŒber View "exp_csv_str" möglich138 } elseif ($haus === 'm' or $haus === 'o') { // Sonderfall 2 - alle mit/ohne Hausnummer, nur ÃŒber View "exp_csv_str" möglich 137 139 if ($tabtyp != 'strasse') { 138 140 $err="\nFehler: Falsche Kombination Parameter tabtyp='".$tabtyp."' mit Wert fuer Haus."; 139 141 exit ($err); 140 142 } 141 if ($haus == 'm') { // den Zusatzfilter m/o im Dateinamen dokumentieren143 if ($haus === 'm') { // den Zusatzfilter m/o im Dateinamen dokumentieren 142 144 $filename='alkis_'.$tabtyp.'_mit_hsnr.csv'; 143 145 } else { … … 224 226 } 225 227 226 if ($haus == 'm' or $haus== 'o') { // nur FS mit/ohne verschl. Lagebez.227 // if ($gmlid == '') { // m/o-Filter als einziger Filter228 if ($haus === 'm' or $haus === 'o') { // nur FS mit/ohne verschl. Lagebez. 229 // if ($gmlid === '') { // m/o-Filter als einziger Filter 228 230 // $sql="SELECT * FROM ".$viewname." WHERE fall='".$haus."' "; // Ersetzen 229 231 // $v=array(); // kein Filter-Feld … … 349 351 } 350 352 pg_free_result($res); 351 if ($i == 1) { // nur Kopf352 if ( $gmlid == '') {353 if ($i === 1) { // nur Kopf 354 if ($gmlid == '') { 353 355 $err="\nKein Treffer"; 354 // echo "\n".$sql."\n".$v[0]."\n".$dbconn."\n";355 356 } else { 356 357 $err="\nKein Treffer fuer gml_id='".$gmlid."'"; -
trunk/info/info/alkisn/alkisfkt.php
r419 r422 3 3 4 4 ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo). 5 F unctions5 F u n c t i o n s 6 6 7 7 Version: 8 8 2016-02-24 Version fuer norGIS-ALKIS-Import, "function linkgml" raus. Case-EntschlÃŒsselung raus. 9 2016-03-03 Hinweis auf Datenfehler wenn "ax_person" fehlt in function "eigentuemer" 10 2016-03-14 Kleine Korrekturen 11 2016-11-29 Gemeinsam genutzte Datenbanken ermöglichen (Filter Gemeinde) 12 2017-06-08 gestreifte Tabelle, Feinkorrekturen 13 2017-10-17 Deutsches Datumsformat fÃŒr Geburtsdatum der Person 14 2017-11-03 neue function werteliste() 15 2017-12-20 Default Anzeigewert "EigentÃŒmer" im Link fÃŒr leere EigentÃŒmerart, JÃŒngste Adresse zur Person verwenden. 16 2018-04-23 Berechtigte Buchungen im FS-Nachw. verbessern. Neue Spalte statt Ãberschriften fÃŒr "EigentÃŒmer" und "Berechtigte Buchungen". 17 2018-05-03 GrundstÃŒcksnachweis 18 2018-11-09 Umstellung Full-Schema 19 2018-11-19 EntschlÃŒsseln "zeigtaufexternes_art" mit function fortfuehrungen(). 20 2018-12-18 function fskenn_dbformat 21 22 ++ ToDo: Parameter $lnkclass in eigentuemer() und $jfenster in buchung_anzg() vereinheitlichen 9 .... 10 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] fÃŒr Einsatz hinter Gateway mit Ãnderung des Pfades (Docker/QWC2) 11 2020-12-09 Entschl. BodenschÀtzung korrigiert in function werteliste() 12 2020-12-15 Input-Validation und Strict Comparisation (===) 13 2020-12-16 Sonderfall QWC2 API-Gateway-Umleitung bei Selbstverlinkung 23 14 */ 15 16 function selbstverlinkung() { 17 // Aus der Server-Variable den Pfad entfernen. 18 global $pfadlos_selbstlink; 19 If ($pfadlos_selbstlink === 1) { // pfad-lose Selbstverlinkung hinter einer Umleitung. z.B. QWC2 API-Gateway 20 // Pfad entfernen 21 $mod=strrchr($_SERVER['PHP_SELF'], '/'); 22 $mod=substr($mod, 1); 23 } else { // normaler Webserver, die Systemvariable ist korrekt 24 $mod=$_SERVER['PHP_SELF']; 25 } 26 return $mod; 27 } 28 29 function darf_ich() { 30 // Am Anfang jedes Moduls aufrufen um $customer zu fÃŒllen. 31 // Nach EinfÃŒhrung eines automatisch einloggenden anonymen Mapbender-Gast-Benutzers muss dieser bei der Authentifizierung ausgeschlossen werden. 32 global $auth, $customer, $mb_guest_user, $debug; 33 34 if ($auth === "") { // nicht prÃŒfen 35 // if ($debug > 1) {echo "\n<p class='dbg'>keine Berechtigungs-PrÃŒfung</p>";} 36 $customer = "(unbekannt)"; 37 return 1; // alles erlaubt 38 39 } elseif ($auth === "mapbender") { 40 41 // if ($debug > 1) {echo "\n<p class='dbg' Berechtigungs-Prüfung Mapbender</p>";} 42 $customer = ""; 43 include '/opt/gdi/mapbender/http/php/mb_validateSession.php'; 44 45 if (!isset($_SESSION)) { // keine (passende) Session 46 if ($debug > 1) {echo "\n<p class='dbg'>Session nicht gesetzt</p>";} 47 } elseif ( !isset($_SESSION["mb_user_name"]) ) { 48 if ($debug > 1) {echo "\n<p class='dbg'>username nicht gesetzt</p>";} 49 } else { 50 $customer = $_SESSION["mb_user_name"]; // angemeldeter Benutzer 51 } 52 //if ($debug > 1) {echo "\n<p class='dbg'>Customer '".$customer."'</p>";} 53 if ($customer == "") { // Wer bin ich? 54 echo "<p class='stop2'>Aufruf nur aus Mapbender erlaubt.</p>"; 55 return 0; 56 } elseif ($customer == $mb_guest_user) { // in conf festgelegt 57 echo "<p class='stop2'>Eine Anmeldung im Mapbender ist notwendig.</p>"; 58 return 0; // gast-User darf nix 59 } else { 60 return 1; // echter User, ist erlaubt 61 } 62 63 } elseif ($auth === "qwc2") { 64 65 if ($debug > 1) {echo "\n<p class='dbg'>Berechtigungs-PrÃŒfung QWC2 -GEPLANT-</p>";} 66 67 // BAUSTELLE: Hier den Code einfÃŒgen um im QWC2 die Berechtigung zu prÃŒfen und den Benutzer auszulesen. 68 // Guggs du: https://git.sourcepole.ch/krz_dt/qwc2/-/issues/78 69 70 $customer = "(Unbekannt)"; 71 echo "<p class='stop2'>Berechtigungsprüfung fÃŒr QWC2 ist noch nicht möglich.</p>"; 72 return 1; // vorlÀufig erlaubt 73 74 } else { 75 76 echo "\n<p class='stop2'>Die Berechtigungs-PrÃŒfung ist falsch konfiguriert</p>"; 77 return 0; // verboten 78 } 79 } 24 80 25 81 function footer($gmlid, $link, $append) { … … 28 84 // Den URL-Parameter "&showkey=j/n" umschalten lassen. 29 85 // $append wird angehaengt wenn gefuellt. Anwendung: &eig=j bei FS-NW, <yp=m/p/o bei Lage 30 global $gkz, $showkey, $hilfeurl, $auth, $debug; 31 32 // S c r e e n - Foot 86 global $gkz, $showkey, $hilfeurl, $debug, $customer; 87 88 echo "<footer>"; 89 // S c r e e n - F o o t 33 90 echo "\n<div class='confbereich noprint'>" 34 91 ."\n\t<table class='outer'>\n\t<tr>"; 35 92 36 93 // Spalte 1: Info Benutzerkennung 37 if ($auth == "mapbender") { 38 $customer=$_SESSION["mb_user_name"]; 94 if (isset($customer)) { // ÃŒber global von fkt. darf_ich() 39 95 echo "\n\t\t<td title='Info'><i>Benutzer: ".$customer."</i></td>"; 40 96 } else { … … 50 106 echo $mylink."&showkey=j' title='Verschlüsselungen anzeigen'>Schlüssel ein</a>"; 51 107 } 52 // TemporÀr eine Ansicht ohne Entwicklungsumgebung 53 if ($debug > 0) { 54 echo " | ".$mylink."&nodebug=j' title='Debug-Ausgaben temporär abschalten'>Ansicht ohne Testausgaben</a>"; 108 if ($debug > 0) { // FÃŒr Entwickler temporÀr eine Ansicht OHNE debug 109 echo "<br>".$mylink."&nodebug=j' title='Debug-Ausgaben temporär abschalten'>Ansicht ohne Testausgaben</a>"; 55 110 } 56 111 echo "\n\t\t</td>"; … … 62 117 ."\n</div>\n"; 63 118 64 // P r i n t - Foot 65 if ($auth == "mapbender") { 66 // $customer=$_SESSION["mb_user_name"]; 67 echo "\n<p class='onlyprint'><i>Mapbender-Benutzer: ".$customer."</i></p>"; 68 } 119 // P r i n t - F o o t 120 if (isset($customer)) { 121 echo "\n<p class='onlyprint'><i>Benutzer: ".$customer."</i></p>"; 122 } 123 124 echo "</footer>"; 69 125 return 0; 70 126 } … … 110 166 if (!$resbs) { 111 167 echo "\n<p class='err'>Fehler bei 'Buchungsstelle ausgeben'.</p>"; 112 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sqlbs, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlbs."'</p>";} 113 } 114 $gezeigt=false; // Funktionswert 168 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlbs."'", $sqlbs), ENT_QUOTES, "UTF-8")."</p>";} 169 } 170 $gezeigt = 0; // Funktionswert default 171 115 172 if ($rowbs = pg_fetch_assoc($resbs)) { // ein Treffer 116 173 $blattkeyber=$rowbs["blattart"]; // Schluessel von Blatt-Art des GB 117 174 if ($blattkeyber != '5000' or $debug > 1) { // "Fiktives Blatt" nur bei Entwicklung anzeigen 118 $gezeigt =true; // Funktionswert175 $gezeigt = 1; // Funktionswert nach Treffer 119 176 $hgml=$rowbs["hgml"]; // GML-ID der (herrschenden) BuchungsStelle 120 177 $bartkey=$rowbs["buchungsart"]; // Buchungsart SchlÃŒssel … … 137 194 switch ($barttyp) { // Text der Ãberschrift 138 195 case "E": 139 if ($eig == 'j') {$h3txt = "Buchung und Eigentum";}196 if ($eig === 'j') {$h3txt = "Buchung und Eigentum";} 140 197 else {$h3txt = "Buchung";} 141 198 break; 142 199 case "R": $h3txt = "Grundstücksgleiche Rechte"; break; 143 200 } 144 if ($barttypgrp == "" and $gml_fs != "") { // die erste Ãberschrift mit ID und Umschalter201 if ($barttypgrp === "" and $gml_fs != "") { // die erste Ãberschrift mit ID und Umschalter 145 202 echo "\n\t<tr>\n\t\t<td colspan='3'>\n\t\t\t<h3 id='gb'>".$h3txt."</h3>\n\t\t</td>"; // 1-3 146 203 echo "\n\t\t<td>\n\t\t\t<p class='nwlink noprint'>" // 4 147 ."\n\t\t\t\t<a href='". $_SERVER['PHP_SELF']."?gkz=".$gkz."&gmlid=".$gml_fs;204 ."\n\t\t\t\t<a href='".selbstverlinkung()."?gkz=".$gkz."&gmlid=".$gml_fs; 148 205 if ($showkey) {echo "&showkey=j";} 149 206 if ($eig=="j") { // Umschalter: FS-Nachweis ruft sich selbst mit geaendertem Parameter auf. Positionierung auf Marke "#gb" … … 192 249 ."\n\t\t\t</tr>"; 193 250 194 if ($trtyp == 3) { // Treffer-Grundst. einfÀrben251 if ($trtyp === 3) { // Treffer-Grundst. einfÀrben 195 252 echo "\n\t\t\t<tr class='paa'>"; 196 253 } else { … … 205 262 ."\n\t\t\t</table>"; 206 263 207 if ($rowbs["zaehler"] <>"") {264 if ($rowbs["zaehler"] != "") { 208 265 echo "\n\t\t\t<p class='ant'>".$rowbs["zaehler"]."/".$rowbs["nenner"]." Anteil am Flurstück</p>"; 209 266 } … … 227 284 ."</a>"; 228 285 // Buchung 229 if ($trtyp == 1) {286 if ($trtyp === 1) { 230 287 echo "<br>"; 231 288 if ($showkey) {echo "<span class='key'>".$bartkey."</span> ";} … … 240 297 ."\n\t\t</td>" // 4 241 298 ."\n\t</tr>"; 242 if ($eig == "j") {299 if ($eig === "j") { 243 300 if ($jsfenster) {$lnkclass = "imFenster";} else {$lnkclass = "";} 244 301 $n = eigentuemer($gbgml, true, $lnkclass); // mit Adresse … … 247 304 } 248 305 pg_free_result($resbs); 249 return $gezeigt; // true wenn eine Buchung ausgegeben wurde 306 307 //if ($debug > 1) {echo "\n<p class='dbg'>Ende function buchung_anzg(), Return = ". $gezeigt ."</p>";} 308 309 return $gezeigt; // 1 wenn eine Buchung ausgegeben wurde 250 310 } 251 311 … … 272 332 if (!$resber) { 273 333 echo "\n<p class='err'>Fehler bei 'berechtigte Buchungsstellen'.</p>"; 274 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmls."'</p>";}334 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmls."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 275 335 } 276 336 $an=0; … … 279 339 $hgml=$rowan["hgml"]; // GML-ID der berechtigten Buchungs-Stelle 280 340 281 if ($hgml == $gsanfrd) {341 if ($hgml === $gsanfrd) { 282 342 $trtyp=3; // einfÀrben, o. Lnk. 283 343 } else { … … 322 382 ."FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer " 323 383 ."WHERE f.endet IS NULL AND g.endet IS NULL AND f.istgebucht = $1 "; 324 if ($filtgem == '') { // ungefiltert384 if ($filtgem === '') { // ungefiltert 325 385 $v=array($gml_bs); 326 386 } else { … … 338 398 $bvnr=""; 339 399 } 340 $altbvnr=""; // ++ besser mit "$j == 0" steuern?400 $altbvnr=""; // ++ besser mit "$j === 0" steuern? 341 401 $j=0; 342 402 while($rowf = pg_fetch_assoc($resf)) { … … 350 410 echo "\n<tr class='".$trclass."'>"; // eine Zeile je Flurstueck 351 411 // Sp. 1-3 der Tab. aus Buchungsstelle, nicht aus FS 352 if($bvnr == $altbvnr) { // gleiches Grundstueck, leer lassen412 if($bvnr === $altbvnr) { // gleiches Grundstueck, leer lassen 353 413 echo "\n\t<td> </td>" 354 414 ."\n\t<td> </td>" … … 377 437 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 378 438 // if($bvnr != $altbvnr) { 379 if($j == 0) {439 if($j === 0) { 380 440 echo "\n\t\t\t<a href='alkisgsnw.php?gkz=".$gkz."&gmlid=".$gml_bs; 381 441 if ($showkey) {echo "&showkey=j";} … … 394 454 $altbvnr=$bvnr; 395 455 $j++; 396 } // Ende Loop Flurstueck456 } 397 457 pg_free_result($resf); 398 458 return $j; … … 433 493 if (!$resn) { 434 494 echo "\n<p class='err'>Fehler bei Eigentümer</p>"; // kein Fehler bei Blattarten > 1000 435 //if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>". $sqln."<br>$1=gml= '".$gmlid."'</p>";}495 //if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sqln )."</p>";} 436 496 } 437 497 … … 442 502 $rechtsg=$rown["adr"]; 443 503 echo "\n\t<tr>"; 444 if($n == 0) { // erste EigentÃŒmer-Zeile zu einer Buchung504 if($n === 0) { // erste EigentÃŒmer-Zeile zu einer Buchung 445 505 echo "\n\t\t<td class='ll'><img src='ico/Eigentuemer_2.png' width='16' height='16' alt=''> Eigentümer:</td>"; // 1 446 506 } else { // Folgezeile … … 477 537 if (!$resp) { 478 538 echo "\n\t<p class='err'>Fehler bei Person</p>"; 479 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>". $sqlp."<br>$1=gml= '".$gmlpers."'</p>";}539 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqlp)."</p>";} 480 540 } 481 541 … … 483 543 while($rowp = pg_fetch_assoc($resp)) { // Schleife weglassen: "benennt" ist KEIN Array! 484 544 $diePerson=""; //++ Anrede? 485 if ($rowp["akademischergrad"] <>"") {$diePerson=$rowp["akademischergrad"]." ";}545 if ($rowp["akademischergrad"] != "") {$diePerson=$rowp["akademischergrad"]." ";} 486 546 $diePerson.=$rowp["nachnameoderfirma"]; 487 if ($rowp["vorname"] <>"") {$diePerson.=", ".$rowp["vorname"];}488 if ($rowp["namensbestandteil"] <>"") {$diePerson.=". ".$rowp["namensbestandteil"];}489 if ($rowp["geburtsdatum"] <>"") {$diePerson.=", geb. ".$rowp["geburtsdatum"];}490 if ($rowp["geburtsname"] <>"") {$diePerson.=", geb. ".$rowp["geburtsname"];}547 if ($rowp["vorname"] != "") {$diePerson.=", ".$rowp["vorname"];} 548 if ($rowp["namensbestandteil"] != "") {$diePerson.=". ".$rowp["namensbestandteil"];} 549 if ($rowp["geburtsdatum"] != "") {$diePerson.=", geb. ".$rowp["geburtsdatum"];} 550 if ($rowp["geburtsname"] != "") {$diePerson.=", geb. ".$rowp["geburtsname"];} 491 551 $diePerson=htmlentities($diePerson, ENT_QUOTES, "UTF-8"); // Umlaute 492 552 $eiartkey=$rown["eigentuemerart"]; // Key … … 498 558 echo "\n\t\t\t\t<a href='".$lnkvor."alkisnamstruk.php?gkz=".$gkz."&gmlid=".$gmlpers; 499 559 if ($showkey) {echo "&showkey=j";} 500 if ($eiartkey == "") {$eiart="Eigentümer" ;} // Default. Ersatz-Text, wenn nicht gefÃŒllt560 if ($eiartkey === "") {$eiart="Eigentümer" ;} // Default. Ersatz-Text, wenn nicht gefÃŒllt 501 561 echo $lnknach."' title='vollständiger Name und Adresse eines Eigentümers'>".$eiart 502 562 ." <img src='ico/Eigentuemer.png' width='16' height='16' alt=''></a>\n\t\t\t</p>" … … 513 573 if (!$resa) { 514 574 echo "\n\t<p class='err'>Fehler bei Adressen</p>"; 515 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>". $sqla."<br>$1=gml= '".$gmlpers."'</p>";}575 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlpers."'", $sqla)."</p>";} 516 576 } 517 577 $j=0; 518 578 while($rowa = pg_fetch_assoc($resa)) { 519 579 $j++; 520 if ($j == 1) { // erste ("jÃŒngste") Adresse anzeigen580 if ($j === 1) { // erste ("jÃŒngste") Adresse anzeigen 521 581 $gmla=$rowa["gml_id"]; 522 582 $plz=$rowa["plz"]; // integer 523 if($plz == 0) {583 if($plz === 0) { 524 584 $plz=""; 525 585 } else { … … 567 627 pg_free_result($resp); 568 628 569 if ($i == 0) { // KEINE Person. benennt ist leer. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler570 if ($rechtsg == 9999) {629 if ($i === 0) { // KEINE Person. benennt ist leer. Das kommt vor hinter der Zeile "Erbengemeinschaft" und ist dann KEIN Fehler 630 if ($rechtsg === 9999) { 571 631 if ($debug > 1) {echo "\n\t\t\t<p class='dbg'>Rechtsgemeinschaft = '".$rechtsg."'</p>";} 572 632 } else { … … 580 640 pg_free_result($resn); 581 641 return $n; 582 } // End function eigentuemer583 584 function werteliste ($ element, $bezeichnung,$sqlin) {642 } 643 644 function werteliste ($bez ,$sqlin) { 585 645 // Eine oder mehrere EntschlÃŒsselungen in eine Zeile ausgeben. 586 // Dient dazu, SchlÃŒssel-ARRAYs auflösen ohne die Zeile mehrfach aufzulisten (JOIN) 587 // Anwendung: FS-Nachweis BodenschÀtzung "Klimastufe + WasserverhÀltnisse" 588 // 2018-11-09: Umstellung von "alkis_wertearten" auf individuelle Tabellen 589 646 // Dient dazu, SchlÃŒssel-ARRAYs auflösen ohne die Zeile im JOIN mehrfach aufzulisten 647 // Anwendung: FS-Nachweis BodenschÀtzung 590 648 global $debug; 591 if ($element == 'ax_bodenschaetzung' AND $bezeichnung = 'entstehungsartoderklimastufewasserverhaeltnisse' ) { 592 $tabelle = 'ax_entstehungsartoderklimastufewasserverhaeltnisse_bodensc'; 593 } elseif ($element == 'ax_bodenschaetzung' AND $bezeichnung = 'sonstigeangaben' ) { 594 $tabelle = 'ax_sonstigeangaben_bodenschaetzung'; 595 } 649 650 if ($bez === 'e') {$tabelle = 'ax_entstehungsartoderklimastufewasserverhaeltnisse_bodensc';} 651 elseif ($bez === 's') {$tabelle = 'ax_sonstigeangaben_bodenschaetzung';} 652 596 653 $sql="SELECT wert, beschreibung FROM ".$tabelle." WHERE wert IN (".$sqlin.") ORDER BY wert LIMIT $1 ;"; 597 $v = array( 100);654 $v = array('9'); 598 655 $res = pg_prepare("", $sql); 599 656 $res = pg_execute("", $v); 600 657 if (!$res) { 601 658 echo "\n<p class='err'>Fehler bei Werteliste.</p>"; 602 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."< br>$1 = '".$sqlin."'</p>";}659 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 603 660 return; 604 661 } … … 609 666 } 610 667 pg_free_result($res); 611 if ($i == 0) {echo "(kein Treffer)";} 668 if ($i === 0) { 669 echo "(kein Treffer)"; 670 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 671 } 612 672 return; 613 673 } … … 669 729 $arr=explode("-", $fskennz, 4); // zerlegen 670 730 $zgemkg=trim($arr[0]); 671 if (strlen($zgemkg) == 20 and !isset($arr[1])) {731 if (strlen($zgemkg) === 20 and !isset($arr[1])) { 672 732 $fskzdb=$zgemkg; // ist schon Datenbank-Feldformat 673 733 } else { // Das Kennzeichen auseinander nehmen. 674 if (strlen($zgemkg) == 6) {734 if (strlen($zgemkg) === 6) { 675 735 $land=substr($zgemkg, 0, 2); 676 736 $zgemkg=substr($zgemkg, 2, 4); … … 687 747 $znenner=""; 688 748 } 689 if (trim($znenner, " 0.") == "") { // kein Bruch oder nur Nullen749 if (trim($znenner, " 0.") === "") { // kein Bruch oder nur Nullen 690 750 $znenner="____"; // in DB-Spalte mit Tiefstrich aufgefÃŒllt 691 751 } else { -
trunk/info/info/alkisn/alkisfshist.php
r419 r422 6 6 Version: 7 7 2016-02-24 Version fuer norGIS-ALKIS-Import 8 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen (Filter Gemeinde) 9 2017-06-06 Validierung Eingabeparameter, Feinkorrekturen 10 2017-10-09 Sauber filtern auf NOT endet IS NULL 11 2017-10-17 Deutsches Datumsformat fÃŒr Zeitpunkt der Entstehung 12 2018-03-16 NULL-Werte in gemeinde und kreis in ax_historischesflurstueck berÃŒcksichtigen 13 2018-04-23 &nodebug 14 2018-11-19 Full-Schema: EntschlÃŒsseln "zeigtaufexternes_art" mit function fortfuehrungen(). Tab. "ax_historischesflurstueck" hat kein "vorgaengerflurstueckskennzeichen" mehr. 15 2018-12-18 function fskenn_dbformat 8 .... 9 2020-02-20 Authentifizierung ausgelegert in Function darf_ich() 10 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 11 2020-12-15 Input-Validation und Strict Comparisation (===) 16 12 */ 17 13 … … 40 36 $arr = explode(",",$stri); 41 37 foreach($arr AS $val){ 42 echo "Flurstück <a title=' zur Flurstück Historie' href='". $_SERVER['PHP_SELF']."?gkz=".$gkz."&fskennz=".$val;38 echo "Flurstück <a title=' zur Flurstück Historie' href='".selbstverlinkung()."?gkz=".$gkz."&fskennz=".$val; 43 39 if ($showkey) {echo "&showkey=j";} 44 40 echo "'>".fzerleg($val)."</a><br>"; … … 61 57 $zgmk++; 62 58 } 63 if ($zgmk == 0) {59 if ($zgmk === 0) { 64 60 echo "\n<p class='err'>Gemarkung ".$gkey." ist unbekannt.</p>"; 65 61 return; … … 83 79 if (!$resv) { 84 80 echo "\n<p class='err'>Fehler bei Vorgänger-FS.</p>"; 85 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>". $sqlv."<br>$1='".$fsk."'</p>";}81 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$fsk."'", $sqlv)."</p>";} 86 82 } 87 83 $zv=0; … … 90 86 $gmlv=$rowv["gml_id"]; 91 87 $vfsk=$rowv["flurstueckskennzeichen"]; 92 echo "Flurstück <a title='Historie des Vorgängerflurstücks' href='". $_SERVER['PHP_SELF']."?gkz=".$gkz."&fskennz=".$vfsk."&gmlid=".$gmlv;88 echo "Flurstück <a title='Historie des Vorgängerflurstücks' href='".selbstverlinkung()."?gkz=".$gkz."&fskennz=".$vfsk."&gmlid=".$gmlv; 93 89 if ($showkey) {echo "&showkey=j";} 94 90 echo "'>".fzerleg($vfsk)."</a><br>"; 95 91 $zv++; 96 92 } 97 if ($zv == 0) {93 if ($zv === 0) { 98 94 echo "(keine)"; 99 95 } … … 101 97 } 102 98 99 ini_set("session.cookie_httponly", 1); 103 100 session_start(); 104 101 $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren … … 115 112 } else { 116 113 $fskennz=''; 117 } 118 } 119 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 114 die("Fehlender Parameter"); 115 } 116 } 117 if (isset($gkz)) { 118 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 119 } else { 120 die("Fehlender Parameter"); 121 } 120 122 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 121 if ($showkey == "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als boolean umwandeln, ist praktischer abzufragen, wird oft gebraucht123 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als boolean umwandeln, ist praktischer abzufragen, wird oft gebraucht 122 124 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 123 125 124 require_once("alkis_conf_location.php");125 i f ($auth == "mapbender") {require_once($mapbender);}126 include("alkisfkt.php"); 126 include "alkis_conf_location.php"; 127 include "alkisfkt.php"; 128 127 129 echo <<<END 128 130 <!doctype html> … … 137 139 <body> 138 140 END; 141 142 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 143 139 144 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 140 145 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 141 if ($nodebug == "j") {$debug=0;}146 if ($nodebug === "j") {$debug=0;} 142 147 143 148 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfshist.php'"); … … 157 162 } else { // Pfui! 158 163 $parmtyp=""; 159 die(" <p class='err'>Parameter 'gmlid' oder 'fskennz' fehlt.</p>"); // Weitermachen sinnlos164 die("Fehlender Parameter"); // bereits geprÃŒft 160 165 } 161 166 … … 164 169 $felder="gml_id, flurnummer, cast(zaehler AS character varying), cast(nenner AS character varying), flurstueckskennzeichen, amtlicheflaeche, to_char(cast(zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, gemarkungsnummer, "; 165 170 166 if ($filtgem == '') { // Filter Gemeinde ?171 if ($filtgem === '') { // Filter Gemeinde ? 167 172 $wheref=''; 168 173 $whereh=''; … … 224 229 echo "<br><p class='err'>Fehler! Kein Treffer für ".$parmtyp." = '".$parmval."'</p><br>"; 225 230 if ($debug > 2) { 226 echo "<p class='dbg'>SQL=<br>". $sqlu."<br>$1=".$parmtyp." = '".$parmval."'</p>";231 echo "<p class='dbg'>SQL=<br>".str_replace("$1", "'".$v[0]."'", $sqlu)."</p>"; 227 232 } 228 233 } … … 231 236 232 237 // Balken 233 echo "<p class=' fshis'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>";238 echo "<p class='balken fshis'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>"; 234 239 echo "\n<h2>Flurstück Historie</h2>"; 235 240 … … 249 254 echo "\n\t</td>\n</tr>\n</table>"; 250 255 251 if ($ftyp == "a") { // Aktuell -> Historie256 if ($ftyp === "a") { // Aktuell -> Historie 252 257 echo "\n<p class='nwlink noprint'>weitere Auskunft: " 253 258 ."<a href='alkisfsnw.php?gkz=".$gkz."&gmlid=".$gmlid."&eig=n"; … … 308 313 </div> 309 314 310 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>315 <?php footer($gmlid, selbstverlinkung()."?", ""); ?> 311 316 312 317 </body> -
trunk/info/info/alkisn/alkisfsnw.php
r419 r422 7 7 Version: 8 8 2016-02-24 Version fuer norGIS-ALKIS-Import 9 2016-03-14 Korrekturen 10 2016-12-01 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 11 2016-12-05 Nutzungsart-Kategorie ist nun in Text enthalten, nicht mehr aus der Definition ausschneiden 12 2017-06-08 optional "berechtigte Buchungen" anzeigen, Function "eigentuemer" ohne Parameter $con, 13 Validierung Eingabeparameter, Feinkorrekturen 14 2017-10-11 Sauber filtern auf 'endet IS NULL', Ausgabe der BodenschÀtzung 15 2017-10-11 Nachbesserung Formatierung der SchÀtzungs-Zeilen 16 2017-10-17 Zeitpunkt der Entstehung in deutschen Datumsformat 17 2017-11-03 Wertelisten fÃŒr Arrays in BodenschÀtzung ausgeben. 18 2017-12-08 Planung (Kommentare) der Erweiterung fÃŒr Berechtigte GrundbÃŒcher 19 2017-12-20 Links auf Lagebezeichnung verbessert. 20 2018-04-11 Variable "gmlid" an Function "ALKISexport" ÃŒbergeben. Ist beim Schreiben des Headers noch unbekannt, wenn mit "&fskennz=" aufgerufen. 21 2018-04-23 Umfangreiche Ãberarbeitung der "Buchungsstellen" 22 2018-05-03 Anpassung fÃŒr GrundstÃŒcksnachweis 23 2018-11-09 Umstellung Full-Schema 24 2018-11-19 EntschlÃŒsseln "zeigtaufexternes_art" mit function fortfuehrungen(). 25 2018-12-18 function fskenn_dbformat 26 27 ++ToDo: 9 ..... 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 2020-10-13 debug-infos raus 12 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 13 2020-12-09 Verschn. mit "Bau-, Raum- oder Bodenordnungsrecht" korrigiert, Entschl. BodenschÀtzung korrigiert 14 2020-12-16 Input-Validation und Strict Comparisation (===) 15 2021-03-09 Link zum GebÀudenachweis auch mit "Bauwerke" betiteln 16 17 ToDo: 28 18 - Buchung auf "fiktives Blatt" ist nur mit debug zu sehen: die <tr> in .css grau hinterlegen 29 - Umschalter (gleiches Modul) anders darstellen als Links zu anderenNachweisen19 - "Umschalter" (gleiches Modul) anders darstellen als Links zu ANDEREN Nachweisen 30 20 - Parameter zum Umschalten mit/ohne BodenschÀtzung? 31 21 - Bessere Differenzierung bei den Nutzungsarten (Tabelle dafÃŒr aufbauen) 32 22 */ 23 ini_set("session.cookie_httponly", 1); 33 24 session_start(); 25 34 26 $eig="n"; $showkey="n"; $nodebug=""; // Var. initalisieren 35 27 $cntget = extract($_GET); // alle Parameter in Variable umwandeln … … 41 33 } else { // Alternativ 42 34 $gmlid=''; 43 if (isset($fskennz)) { // llgggg-fff-11111/222 oder z.B.'052647002001910013__' oder '05264700200012______'35 if (isset($fskennz)) { 44 36 if (!preg_match('#^[0-9\-_/]{8,20}$#', $fskennz)) {die ("Eingabefehler fskennz");} 45 37 } else { 46 $fskennz=''; 47 } 48 } 49 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 38 die("Fehlender Parameter"); 39 } 40 } 41 if (isset($gkz)) { 42 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 43 } else { 44 die("Fehlender Parameter"); 45 } 50 46 if (!preg_match('#^[j|n]{0,1}$#', $eig)) {die("Eingabefehler eig");} 51 47 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 52 if ($showkey == "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als boolean umwandeln, ist praktischer abzufragen, wirdoft gebraucht48 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als bool, ist praktischer, oft gebraucht 53 49 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 54 50 55 require_once("alkis_conf_location.php"); 56 if ($auth == "mapbender") {require_once($mapbender);} 57 include("alkisfkt.php"); 51 include "alkis_conf_location.php"; 52 include "alkisfkt.php"; 58 53 ?> 59 54 <!doctype html> … … 73 68 <body> 74 69 <?php 70 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 71 75 72 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. Blendet z.B. "fiktives Blatt" aus. 76 73 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 77 if ($nodebug == "j") {$debug=0;}74 if ($nodebug === "j") {$debug=0;} 78 75 79 76 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfsnw.php'"); 80 77 if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>"; 81 78 82 // Ein FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt79 // Ein FlurstÃŒcks-Kennzeichen im DB-Format wurde alternativ zur gml_id ÃŒbermittelt 83 80 if ($fskennz != '') { 84 /* 85 $arr=explode("-", $fskennz, 4); // zerlegen 86 $zgemkg=trim($arr[0]); 87 if (strlen($zgemkg) == 20 and !isset($arr[1])) { 88 $fskzdb=$zgemkg; // Datenbank-Feldformat 89 } else { // Format "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz" 90 // Das Kennzeichen auseinander nehmen. 91 if (strlen($zgemkg) == 6) { 92 $land=substr($zgemkg, 0, 2); 93 $zgemkg=substr($zgemkg, 2, 4); 94 } else { // kein schöner Land .. 95 $land=$defland; // Default-Land aus config 96 } 97 $zflur=str_pad($arr[1], 3 , "0", STR_PAD_LEFT); // Flur-Nr 98 $zfsnr=trim($arr[2]); // FlurstÃŒcke-Nr 99 $zn=explode("/", $zfsnr, 2); // Bruch? 100 $zzaehler=str_pad(trim($zn[0]), 5 , "0", STR_PAD_LEFT); 101 if (isset($zn[1])) { 102 $znenner=trim($zn[1]); 103 } else { 104 $znenner=""; 105 } 106 if (trim($znenner, " 0.") == "") { // kein Bruch oder nur Nullen 107 $znenner="____"; // in DB-Spalte mit Tiefstrich aufgefÃŒllt 108 } else { 109 $zn=explode(".", $znenner, 2); // .00 wegwerfen 110 $znenner=str_pad($zn[0], 4 , "0", STR_PAD_LEFT); 111 } 112 // nun die Teile stellengerecht wieder zusammen setzen 113 $fskzdb=$land.$zgemkg.$zflur.$zzaehler.$znenner.'__'; // FS-Kennz. Format Datenbank 114 } 115 $v = array($fskzdb); 116 */ 117 // Spalte "flurstueckskennzeichen" ist in DB indiziert 118 // Format z.B.'052647002001910013__' oder '05264700200012______' 119 $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 AND endet IS NULL ;"; 120 81 // Spalte "flurstueckskennzeichen" ist in DB indiziert. Format z.B.'052647002001910013__' oder '05264700200012______' 82 $sql ="SELECT gml_id FROM ax_flurstueck WHERE flurstueckskennzeichen= $1 AND endet IS NULL;"; 121 83 $v=array(fskenn_dbformat($fskennz)); 122 123 84 $res = pg_prepare("", $sql); 124 85 $res = pg_execute("", $v); … … 149 110 if (!$res) { 150 111 echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>"; 151 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}112 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 152 113 } 153 114 if ($row = pg_fetch_assoc($res)) { … … 176 137 } else { 177 138 echo "\n<p class='err'>Fehler! Kein Treffer für Flurstück mit gml_id=".$gmlid."</p>"; 178 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}139 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 179 140 echo "\n</body>\n</html>"; 180 141 return; … … 182 143 pg_free_result($res); 183 144 184 if ($eig== "j") { // Balken185 echo "<p class=' fsei'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>"145 if ($eig==="j") { // Balken 146 echo "<p class='balken fsei'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>" 186 147 ."\n\n<h2>Flurstück mit Eigentümer</h2>"; 187 148 } else { 188 echo "<p class=' fskennz'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>"149 echo "<p class='balken fskennz'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>" 189 150 ."\n\n<h2>Flurstück</h2>"; 190 151 } … … 263 224 if ($debug > 1) { 264 225 echo "\n<p class='dbg'>Fehler:".pg_last_error()."</p>"; 265 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}226 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$gmlid."'",$sql), ENT_QUOTES, "UTF-8")."</p>";} 266 227 } 267 228 } else { … … 270 231 while($row = pg_fetch_assoc($res)) { 271 232 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 272 if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau233 if (substr($sname, strlen($sname) -3, 3) === 'weg') { // Versuch fuer korrekten Satzbau 273 234 $slink=" am ".$sname; 274 235 } else { … … 277 238 $hsnr=$row["hausnummer"]; 278 239 echo "\n<tr>"; 279 if ($j == 0) { // 1240 if ($j === 0) { // 1 280 241 echo "\n\t<td class='ll'><img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> Adresse:</td>"; 281 242 } else { … … 321 282 echo "\n<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>"; 322 283 //if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>";} 323 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}284 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 324 285 } 325 286 $j=0; 326 287 while($row = pg_fetch_assoc($res)) { 327 288 $skey=$row["lage"]; // Strassenschl. 328 $lgml=$row["gml_id"]; // key der Lage289 $lgml=$row["gml_id"]; // Key der Lage 329 290 $gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8"); 330 if ($gewann != "") {291 if ($gewann != '') { 331 292 echo "\n<tr>" 332 293 ."\n\t<td class='ll' title='unverschlüsselte Lagebezeichnung'><img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''> Gewanne:</td>" // 1 … … 341 302 } elseif ($skey > 0) { 342 303 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 343 if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau304 if (substr($sname, strlen($sname) -3, 3) === 'weg') { // Versuch fuer korrekten Satzbau 344 305 $slink=" am ".$sname; 345 306 } else { … … 392 353 if (!$res) { 393 354 echo "\n<p class='err'>Fehler bei Suche tats. Nutzung</p>"; 394 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = FS-Kennz = '".$fskennzalb."'</p>";}355 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1","'".$fskennzalb."'",$sql), ENT_QUOTES, "UTF-8")."'</p>";} 395 356 } 396 357 $j=0; … … 402 363 $title=htmlentities($defi, ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet 403 364 echo "\n<tr>\n\t"; 404 if ($j == 0) { // 1365 if ($j === 0) { // 1 405 366 echo "<td class='ll' title='Abschnitt der tatsächlichen Nutzung'><img src='ico/Abschnitt.png' width='16' height='16' alt=''> Nutzung:</td>"; 406 367 } else { … … 444 405 if ($showkey) {echo "&showkey=j";} 445 406 if ($cnt_adressen > 0) { // wenn Adresse vorgekommen ist 446 echo "' title='Gebäude auf oder an dem Flurstück'>Gebäude";407 echo "' title='Gebäude oder Bauwerke auf oder an dem Flurstück'>Gebäude/Bauw."; 447 408 } else { // GebÀude mit Adresse gibt es NICHT, das ist klar 448 echo "' title='Suche Gebäude ohne Adresse auf dem Flurstück oder angrenzende Gebäude'>Suche";409 echo "' title='Suche Gebäude (ohne Adresse) oder Bauwerke auf dem Flurstück'>Gebäude/Bauw."; 449 410 } 450 411 echo "<img src='ico/Haus.png' width='16' height='16' alt=''></a>" … … 480 441 while ($row = pg_fetch_assoc($res)) { 481 442 $kulturartk=$row['kulturartk']; // Key - 482 $kulturartv=$row['kulturartv']; // - Value 483 // 1000="Ackerland (A)", 2000="Acker-GrÃŒnland (AGr)", 3000="GrÃŒnland (Gr)", 4000="GrÃŒnland-Acker (GrA)" 484 if (substr($kulturartv, 0, 3) == 'Ack') { // A 443 $kulturartv=$row['kulturartv']; // - Value 444 if (substr($kulturartv, 0, 3) === 'Ack') { // A 485 445 $kbez1="Bodenzahl"; 486 446 $kbez2="Ackerzahl"; … … 494 454 $ertragszahl = intval($absbuchflae * $row['ackerzahl'] / 100); 495 455 $gesertragsmz+=$ertragszahl; 496 // $absflaedis = number_format($absflae,0,",",".")." m²"; 456 // $absflaedis = number_format($absflae,0,",",".")." m²"; // als Tool-Tip ? 497 457 $absbuchflaedis = number_format($absbuchflae,0,",",".")." m²"; 498 458 $boedenzahl=ltrim($row['bodenzahl'], '0'); 499 459 $ackerzahl=ltrim($row['ackerzahl'], '0'); 500 460 $jahr=$row['jahreszahl']; 501 502 // 2x Array mit SchlÃŒsseln. PostNAS fÃŒllt es nicht, wenn als "integer[]" definiert.503 461 $entsteh=$row['entsteh']; 504 462 $sonst=$row['sonstigeangaben']; 505 if ($j == 0) { // 1463 if ($j === 0) { // 1 506 464 echo "\n<tr>\n\t<td class='ll' title='Abschnitt Bodenschätzung'><img src='ico/Landwirt.png' width='16' height='16' alt=''> Bodenschätzung:</td>"; 507 465 } else { 508 466 echo "\n<tr>\n\t<td> </td>"; 509 467 } 510 echo "\n\t<td class='fla' title='Ertragsmesszahl: Produkt von ".$kbez2."/100 und Fläche.'>EMZ ".$ertragszahl."</td>" ; // 2511 echo "\n\t<td class='re' title='Fläche des Schätzungsabschnitts'>".$absbuchflaedis."</td>"; // 3512 echo "\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>"; // 4513 echo "\n\t<td class='lr'>"; // 5468 echo "\n\t<td class='fla' title='Ertragsmesszahl: Produkt von ".$kbez2."/100 und Fläche.'>EMZ ".$ertragszahl."</td>" 469 ."\n\t<td class='re' title='Fläche des Schätzungsabschnitts'>".$absbuchflaedis."</td>" 470 ."\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>" 471 ."\n\t<td class='lr'>"; 514 472 515 473 if ($showkey) {echo "\n\t\t<span class='key'>(".$kulturartk.")</span> ";} … … 521 479 echo "\n\t\t<span title='Zustandsstufe'>".$row['zustbodv']."</span> "; 522 480 523 // ARRAYs auflösen ohne den SchÀtzungs-Abschnitt mehrfach aufzulisten524 if ( $entsteh <> '') {525 $ent= "'".str_replace(",", "','", trim($entsteh, "{}"))."'"; // als Liste fÃŒr SQL "WHERE IN ()"481 // 2 ARRAYs auflösen 482 if (isset($entsteh)) { 483 $ent=trim($entsteh, "{}"); 526 484 echo "\n\t\t <span title='Enststehungsart oder Klimastufe, Wasserverhältnisse'>"; 527 485 if ($showkey) {echo "\n\t\t <span class='key'>(".$ent.")</span> ";} 528 werteliste (' ax_bodenschaetzung', 'entstehungsartoderklimastufewasserverhaeltnisse', $ent);486 werteliste ('e', $ent); 529 487 echo "</span>"; 530 488 } 531 if ( $sonst <> '') {532 $son= "'".str_replace(",", "','", trim($sonst, "{}"))."'";489 if (isset($sonst)) { 490 $son=trim($sonst, "{}"); 533 491 echo "\n\t\t <span title='Sonstige Angaben'>"; 534 492 if ($showkey) {echo "\n\t\t <span class='key'>(".$son.")</span> ";} 535 werteliste (' ax_bodenschaetzung', 'sonstigeangaben', $son);493 werteliste ('s', $son); 536 494 echo "</span>"; 537 495 } 538 539 if ($jahr <> '') { 496 if (isset($jahr)) { 540 497 echo "\n\t\t<span title='Jahreszahl'>".$jahr."</span>"; 541 498 } 542 echo "\n\t</td>" ; // 5543 echo "\n\t<td> </td>\n</tr>"; // 6499 echo "\n\t</td>" 500 ."\n\t<td> </td>\n</tr>"; 544 501 $j++; 545 502 } … … 552 509 } 553 510 554 // H i n w e i s auf Bodenneuordnung oder eine strittige Grenze 555 $sql_boden ="SELECT b.artderfestlegung AS wert, a.beschreibung AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, 511 // H i n w e i s 512 // auf "Bau-, Raum- oder Bodenordnungsrecht" (Baulast, Flurbereinigung) oder eine "strittige Grenze" 513 514 // Gemeinsame FlÀche suchen: entweder (ST_Intersects and not ST_Touches) oder (2xST_Within OR ST_Overlaps), ST_Intersects liefert auch angrenzende 515 $sql_boden="SELECT b.artderfestlegung AS wert, a.beschreibung AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, 556 516 b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key 557 FROM ax_bauraumoderbodenordnungsrecht b 558 LEFT JOIN ax_artderfestlegung_bauraumoderbodenordnungsrecht a ON b.artderfestlegung = a.wert 517 FROM ax_flurstueck f 518 JOIN ax_bauraumoderbodenordnungsrecht b ON ST_Within(b.wkb_geometry, f.wkb_geometry) OR ST_Within(f.wkb_geometry, b.wkb_geometry) OR ST_Overlaps(b.wkb_geometry, f.wkb_geometry) 519 LEFT JOIN ax_artderfestlegung_bauraumoderbodenordnungsrecht a ON b.artderfestlegung=a.wert 559 520 LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle 560 WHERE b.endet IS NULL AND d.endet IS NULL 561 AND (ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL ), wkb_geometry) 562 OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL), wkb_geometry));"; 521 WHERE f.gml_id = $1 AND f.endet IS NULL AND b.endet IS NULL AND d.endet IS NULL"; 563 522 564 523 pg_prepare($con, "bodeneuordnung", $sql_boden); … … 566 525 if (!$res_bodeneuordnung) { 567 526 echo "\n<p class='err'>Fehler bei Bau-, Raum- oder Bodenordnungsrecht</p>"; 568 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>". $sql_boden."<br>$1 = gml_id = '".$gmlid."'</p>";}527 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_boden)."</p>";} 569 528 } 570 529 $sql_str="SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) … … 575 534 if (!$res_strittigeGrenze) { 576 535 echo "\n<p class='err'>Fehler bei strittige Grenze</p>"; 577 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>". $sql_str."<br>$1 = gml_id = '".$gmlid."'</p>";}536 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql_str)."</p>";} 578 537 } 579 538 if (pg_num_rows($res_bodeneuordnung) > 0 OR pg_num_rows($res_strittigeGrenze) > 0) { … … 599 558 ."\n</tr>"; 600 559 $dstell=$row['stelle_key']; // Zeile 2 601 if ($dstell != "") { // Kann auch leer sein560 if ($dstell != '') { 602 561 echo "\n<tr title='Flurbereinigungsbehörde'>" 603 562 ."\n\t<td> </td>" // 1 … … 612 571 $vbez=$row['verf_bez']; // Zeile 3, ist nicht immer gefÃŒllt 613 572 $vnam=$row['verf_name']; // noch seltener 614 if ($vbez != "") {573 if ($vbez != '') { 615 574 echo "\n<tr title='Verfahrensbezeichnung'>" 616 575 ."\n\t<td> </td>" … … 619 578 if ($vnam == "") { 620 579 echo $vbez; // nur die Nummer 621 } else { 580 } else { // Name oder beides 622 581 if ($showkey) {echo "<span class='key'>(".$vbez.")</span> ";} 623 582 echo $vnam; … … 640 599 $bartgrp=""; // Buchungsart 641 600 $barttypgrp=""; // Buchungsart Typ 642 if ($gml_buchungsstelle == '') {echo "\n<p class='err'>Keine Buchungstelle zum Flurstück gefunden.</p>";} 643 echo "\n<table class='outer'>"; // ALLE Buchungen und EigentÃŒmer in 4 Spalten EINER Tabelle ausgeben 601 if ($gml_buchungsstelle === '') { 602 echo "\n<p class='err'>Keine Buchungstelle zum Flurstück gefunden.</p>"; // keine Verweis vorhanden? 603 } else { 604 echo "\n<table class='outer'>"; // ALLE Buchungen und EigentÃŒmer in 4 Spalten EINER Tabelle ausgeben 605 644 606 $stufe=1; // SchleifenzÀhler Tiefe 645 $gezeigt=buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid, 1); // die ("dienende") Buchung anzeigen, wenn nicht fiktiv. Liefert true/false646 647 $anzber=ber_bs_zaehl($gml_buchungsstelle); 648 $verf_next = array($gml_buchungsstelle); 649 //if ($debug > 2) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";}607 $gezeigt=buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid, 1); // die ("dienende") Buchung anzeigen, wenn nicht fiktiv. Liefert 1/0 608 609 $anzber=ber_bs_zaehl($gml_buchungsstelle); // Anzahl berechtigte Buchungen (nÀchste Stufe) zu dieser Buchung ermitteln 610 $verf_next = array($gml_buchungsstelle); // Start Recursion mit einem Element 611 //if ($debug > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 650 612 651 613 while ($anzber > 0 ) { // Stufe - recursiv in die Tiefe, solange es was zu verfolgen gibt … … 666 628 } // Ende Buchungs-Array in der Stufe 667 629 $anzber=count($verf_next); // Sammlung auf Stufe zÀhlen, Steuert die Schleife. 668 //if ($debug > 2) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";}630 //if ($debug > 1) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 669 631 } // Ende Stufe 670 echo "\n</table>\n\n"; 632 633 echo "\n</table>\n\n"; 634 //if ($debug > 1) {echo "<p class='dbg'>Buchung gezeigt = ".$gezeigt."</p>";} 635 636 // Fehler aus "ModellschwÀche" erkennen. 637 // Wenn der Verweis der Buchungsstelle auf ein Grundbuch ins Leere lÀuft, weil das Grundbuch 638 // nicht im SekundÀrbestand vorhanden ist, dann könnte das am NBA-Verfahren liegen. 639 if ( $gezeigt === 0 and $stufe === 1 ) { // and $anzber === 0 640 // Fehlt die Buchung oder das Grundbuch? 641 echo "<p class='err'>Das Grundbuch zur Buchung '".$gml_buchungsstelle."' fehlt in der Datenbank.</p>"; 642 643 if ($debug > 1) { // fehlt die Buchung?? 644 echo "<p class='dbg'>Suchen mit SQL: SELECT * FROM ax_buchungsstelle WHERE gml_id='".$gml_buchungsstelle."'; </p>"; 645 } 646 // Buchung verlinken fÃŒr weitere Suche: alkisgsnw.php?gkz=320&gmlid=DENW18AL0000SEbl 647 // Aber das Modul zeigt nichts an (inner join ?) 648 // +++ ZunÀchst: Auch im Modul alkisgsnw.php den Fall berÃŒcksichtigen, dass die Buchung vorhanden ist, aber das GB nicht ?! 649 } 650 } 671 651 672 652 pg_close($con); … … 679 659 echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport(\"" . $gmlid . "\")'><img src='ico/download_fs.png' width='32' height='16' alt='Export'></a> \n</div>"; 680 660 681 footer($gmlid, $_SERVER['PHP_SELF']."?", "&eig=".$eig);661 footer($gmlid, selbstverlinkung()."?", "&eig=".$eig); 682 662 ?> 683 663 </body> -
trunk/info/info/alkisn/alkisgebaeudenw.php
r418 r422 5 5 Version: 6 6 2016-02-24 Version fuer norGIS-ALKIS-Import 7 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 8 2016-12-05 Array-Behandlung ax_gebaeude.name 9 2017-06-08 Validierung Eingabeparameter, Feinkorrekturen 10 2017-06-19 Tool-Tip GebÀudefunktion 11 2018-04-23 Kennzeichen eingerÃŒckt, &nodebug 12 2018-11-09 Umstellung Full-Schema 13 2018-11-21 Korrektur LEFT Join Bauweise 7 .... 8 2020-02-20 Authentifizierung ausgelegert in Function darf_ich() 9 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 10 2020-12-15 Verschneidung mit "sonstige Bauwerke", Input-Validation und Strict Comparisation 11 2021-03-09 Verschneidung mit weiteren Bauwerks-Tabellen. 12 2021-03-11 Adresse(n) des gehörtZu-Haus zum Bauwerk nicht mehr hier anzeigen sondern im neuen Bauwerk-Modul. 14 13 */ 14 15 // Kopf fÃŒr die Anzeige der GebÀude. Nur wenn tatsÀchlich GebÀude vorkommen. 16 function geb_tab_head() { 17 // Ãberschrift 18 echo "\n\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Gebäude</h3>" 19 ."\n<p>.. auf oder an dem Flurstück. Ermittelt durch Verschneidung der Geometrie.</p>"; 20 21 // Tabellen-Kopf 22 echo "\n<hr>\n<table class='geb'>"; 23 echo "\n<tr>" 24 ."\n\t<td class='head' title='ggf. Gebäudename'>Name</td>" 25 ."\n\t<td class='heads fla' title='Schnittfläche zwischen Flurstück und Gebäude'><img src='ico/sortd.png' width='10' height='10' alt='' title='Sortierung (absteigend)'>Fläche</td>" 26 ."\n\t<td class='head' title='gesamte Gebäudefläche, liegt teilweise auf Nachbar-Flurstück'> </td>" 27 ."\n\t<td class='head' title='Gebäudefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Gebäudes'>Funktion</td>" 28 ."\n\t<td class='head' title='Bauweise ist die Beschreibung der Art der Bauweise'>Bauweise</td>" 29 ."\n\t<td class='head' title='Zustand beschreibt die Beschaffenheit oder die Betriebsbereitschaft von Gebäude. Diese Attributart wird nur dann optional geführt, wenn der Zustand des Gebäudes vom nutzungsfähigen Zustand abweicht.'>Zustand</td>" 30 ."\n\t<td class='head nwlink' title='Lagebezeichnung mit Straße und Hausnummer'>Lage</td>" 31 ."\n\t<td class='head nwlink' title='Link zu den kompletten Hausdaten'>Haus</td>" 32 ."\n</tr>"; 33 } 34 35 // Kopf fÃŒr die Anzeige der Bauwerke. Nur wenn tatsÀchlich Bauwerke vorkommen. 36 function bauw_tab_head() { 37 // Ãberschrift 38 echo "\n\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Bauwerke</h3>" 39 ."\n<p>.. auf oder an dem Flurstück. Ermittelt durch Verschneidung der Geometrie.</p>"; 40 41 // Tabellen-Kopf 42 echo "\n<hr>\n<table class='geb'>"; 43 echo "<tr><td colspan=3></td><td colspan=3 class='heads gw'><img src='ico/sort.png' width='10' height='10' alt='' title='Sortierung'>Bauwerks-Typ</td></tr>"; 44 echo "\n<tr>"; 45 echo "\n\t<td class='head' title='Bezeichnung und/oder Bauwerksname'>Name</td>" 46 ."\n\t<td class='heads fla' title='Schnittfläche zwischen Flurstück und Bauwerk'><img src='ico/sortd.png' width='10' height='10' alt='' title='Sortierung (absteigend)'>Fläche</td>" 47 ."\n\t<td class='head' title='gesamte Bauwerksfläche, liegt teilweise auf Nachbar-Flurstück'> </td>" 48 ."\n\t<td class='head' title='Bauwerksfunktion'>Funktion</td>" 49 ."\n\t<td class='head nwlink' title='Daten des zugehörigen Gebäudes'>zum Haus</td>" 50 ."\n\t<td class='head nwlink' title='Detaillierte Daten zu diesem Bauwerk'>Bauwerk</td>" 51 ."\n</tr>"; 52 } 53 54 // S T A R T 55 56 ini_set("session.cookie_httponly", 1); 15 57 session_start(); 16 $showkey="n"; $nodebug=""; 17 $cntget = extract($_GET); 58 $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren 59 $cntget = extract($_GET); // Parameter in Variable umwandeln 18 60 19 61 // strikte Validierung aller Parameter 20 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 21 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 62 if (isset($gmlid)) { 63 if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 64 } else { 65 die("Fehlender Parameter"); 66 } 67 if (isset($gkz)) { 68 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 69 } else { 70 die("Fehlender Parameter"); 71 } 22 72 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 23 if ($showkey == "j") {$showkey=true;} else {$showkey=false;}73 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 24 74 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 25 75 26 require_once("alkis_conf_location.php");27 i f ($auth == "mapbender") {require_once($mapbender);}28 include("alkisfkt.php"); 76 include "alkis_conf_location.php"; 77 include "alkisfkt.php"; 78 29 79 echo <<<END 30 80 <!doctype html> … … 39 89 <body> 40 90 END; 91 92 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 93 41 94 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 42 95 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 43 if ($nodebug == "j") {$debug=0;}96 if ($nodebug === "j") {$debug=0;} 44 97 45 98 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisgebaeudenw.php'"); … … 55 108 if (!$resf) { 56 109 echo "\n<p class='err'>Fehler bei Flurstücksdaten.</p>"; 57 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sqlf."<br>$1 = gml_id = '".$gmlid."'</p>";} 110 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlf)."'</p>";} 111 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resf)."</p>";} 58 112 } 59 113 if ($rowf = pg_fetch_assoc($resf)) { … … 70 124 echo "\n<p class='err'>Fehler! Kein Treffer fuer gml_id=".$gmlid."</p>"; 71 125 } 72 echo "<p class=' geb'>ALKIS Flurstück (Gebäude) ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>"; // Balken73 echo "\n<h2>Flurstück (Gebäude )</h2>";126 echo "<p class='balken geb'>ALKIS Flurstück (Gebäude und Bauwerke) ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>"; // Balken 127 echo "\n<h2>Flurstück (Gebäude und Bauwerke)</h2>"; 74 128 echo "\n<table class='outer'>" // Kopf 75 129 ."\n<tr>" … … 84 138 ."\n\t\t</tr>\n\t\t<tr>" 85 139 ."\n\t\t\t<td title='Gemarkung'>"; 86 if 140 if ($showkey) {echo "<span class='key'>".$gmkgnr."</span><br>";} 87 141 echo $gemkname." </td>" 88 142 ."\n\t\t\t<td title='Flurnummer'>".$flurnummer."</td>" … … 104 158 pg_free_result($resf); 105 159 106 echo "\n\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Gebäude</h3>"107 ."\n<p>.. auf oder an dem Flurstück. Ermittelt durch Verschneidung der Geometrie.</p>";108 109 160 // G e b a e u d e 161 110 162 $sqlg ="SELECT g.gml_id, g.name, g.bauweise, g.gebaeudefunktion, h.beschreibung AS bauweise_beschreibung, u.beschreibung AS bezeichner, u.dokumentation AS gfktd, g.zustand, z.beschreibung AS bzustand, 111 round(st_area(g.wkb_geometry)::numeric,2) AS gebflae, "; // GEB-Flaeche komplett auch die Fl.ausserhalb des FS163 round(st_area(g.wkb_geometry)::numeric,2) AS gebflae, "; // GEB-Flaeche, auch ausserhalb des FS 112 164 $sqlg.="round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, "; // wie viel vom GEB liegt im FS? 113 $sqlg.="st_within(g.wkb_geometry,f.wkb_geometry) as drin "; // liegt das GEB komplett im FS?114 $sqlg.="FROM ax_flurstueck f, ax_gebaeude g115 LEFT JOIN ax_bauweise_gebaeude h ON g.bauweise = h.wert116 LEFT JOIN ax_gebaeudefunktion u ON g.gebaeudefunktion = u.wert117 LEFT JOIN ax_zustand_gebaeude z ON g.zustand = z.wert 118 WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; // ID des akt. FS165 $sqlg.="st_within(g.wkb_geometry,f.wkb_geometry) as drin 166 FROM ax_flurstueck f, ax_gebaeude g 167 LEFT JOIN ax_bauweise_gebaeude h ON g.bauweise = h.wert 168 LEFT JOIN ax_gebaeudefunktion u ON g.gebaeudefunktion = u.wert 169 LEFT JOIN ax_zustand_gebaeude z ON g.zustand = z.wert 170 WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; 119 171 120 172 // "within" -> nur Geb., die komplett im FS liegen. "intersects" -> auch teil-ueberlappende Flst. … … 129 181 if (!$resg) { 130 182 echo "\n<p class='err'>Fehler bei Gebäude-Verschneidung.</p>"; 131 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";} 183 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlg)."'</p>";} 184 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resg)."</p>";} 132 185 } 133 186 $gebnr=0; 134 187 $gebflsum=0; 135 echo "\n<hr>\n<table class='geb'>"; 136 echo "\n<tr>" // T-Header 137 ."\n\t<td class='head' title='ggf. Gebäudename'>Name</td>" 138 ."\n\t<td class='heads fla' title='Schnittfläche zwischen Flurstück und Gebäude'><img src='ico/sortd.png' width='10' height='10' alt='' title='Sortierung (absteigend)'>Fläche</td>" 139 ."\n\t<td class='head' title='gesamte Gebäudefläche, liegt teilweise auf Nachbar-Flurstück'> </td>" 140 ."\n\t<td class='head' title='Gebäudefunktion ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Gebäudes'>Funktion</td>" 141 ."\n\t<td class='head' title='Bauweise ist die Beschreibung der Art der Bauweise'>Bauweise</td>" 142 ."\n\t<td class='head' title='Zustand beschreibt die Beschaffenheit oder die Betriebsbereitschaft von Gebäude. Diese Attributart wird nur dann optional geführt, wenn der Zustand des Gebäudes vom nutzungsfähigen Zustand abweicht.'>Zustand</td>" 143 ."\n\t<td class='head nwlink' title='Lagebezeichnung mit Straße und Hausnummer'>Lage</td>" 144 ."\n\t<td class='head nwlink' title='Link zu den kompletten Hausdaten'>Haus</td>" 188 while($rowg = pg_fetch_assoc($resg)) { 189 $gebnr++; 190 if ($gebnr === 1) {geb_tab_head();} // Tab.-Kopf 191 $ggml=$rowg["gml_id"]; 192 $gebflsum=$gebflsum + $rowg["schnittflae"]; 193 $gnam=trim(trim($rowg["name"], "{}"), '"'); // Gebaeude-Name ist ein Array in der DB: '{"A","B"}' 194 // Mehrfachbelegung nur theoretisch. Entklammern reicht. Mal mit und mal ohne "" drum!? 195 /* SELECT name FROM ax_gebaeude WHERE NOT name IS NULL AND array_length(name, 1) > 1; */ 196 $gfktk=htmlentities($rowg["gebaeudefunktion"], ENT_QUOTES, "UTF-8"); // Geb.-Funktion Key 197 $gfktv=htmlentities($rowg["bezeichner"], ENT_QUOTES, "UTF-8"); // Geb.Funktion Value 198 $gfktd=htmlentities($rowg["gfktd"], ENT_QUOTES, "UTF-8"); // GebÀude-Funktion-Description 199 200 $gbauw=$rowg["bauweise"]; 201 $gbauwb=htmlentities($rowg["bauweise_beschreibung"], ENT_QUOTES, "UTF-8"); 202 203 $gzus=$rowg["zustand"]; 204 $gzustand=htmlentities($rowg["bzustand"], ENT_QUOTES, "UTF-8"); 205 206 // 3 FÀlle unterscheiden: 207 if ($rowg["drin"] === "t") { // GebÀude liegt komplett in FlurstÃŒck 208 $f1=$rowg["schnittflae"]." m²"; 209 $f2=" "; 210 $gstyle="gin"; // siehe .css 211 } else { 212 if ($rowg["schnittflae"] === "0.00") { // GebÀude angrenzend (Grenzbebauung) 213 $gstyle="gan"; 214 $f1=" "; 215 $f2="angrenzend"; 216 } else { // Teile des GebÀudes stehen auf dem FlurstÃŒck 217 $gstyle="gtl"; 218 $f1=$rowg["schnittflae"]." m²"; 219 $f2="(von ".$rowg["gebflae"]." m²)"; 220 } 221 } 222 223 echo "\n<tr>" 224 ."\n\t<td>"; 225 if ($gnam != "") {echo "<span title='Gebäudename'>".$gnam."</span><br>";} 226 echo "</td>"; 227 228 echo "\n\t<td class='fla'>".$f1."</td>" 229 ."\n\t<td class='".$gstyle."'>".$f2."</td>"; // FlÀchenangaben 230 231 echo "\n\t<td title='".$gfktd."'>"; // Funktion 232 if ($showkey) {echo "<span class='key'>(".$gfktk.")</span> ";} 233 echo $gfktv; 234 echo "</td>"; 235 236 echo "\n\t<td>"; 237 if ($gbauw != "") { 238 if ($showkey) {echo "<span class='key'>(".$gbauw.")</span> ";} 239 echo $gbauwb; 240 } 241 echo "</td>"; 242 243 echo "\n\t<td>"; 244 if ($gzus != "") { 245 if ($showkey) {echo "<span class='key'>(".$gzus.")</span> ";} 246 echo $gzustand; 247 } 248 echo "</td>"; 249 250 // 2 Spalten mit Links zu anderen Nachweisen: 1. Lage, 2. GebÀude 251 echo "\n\t<td class='nwlink noprint'>"; // Link Lage 252 253 // Zu EINEM GebÀude mehrere Lagebezeichnungen mit Haus- oder Pseudo-Nummer möglich, alle in ein TD 254 // HAUPTgebÀude Geb >zeigtAuf> lage (mehrere) 255 $sqll="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer " 256 ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) " 257 ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 258 ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; 259 260 // UNION - oder NEBENgebÀude Geb >hat> Pseudo 261 $sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer " 262 ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat " 263 ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 264 ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses" 265 266 $sqll.="ORDER BY bezeichnung, hausnummer, laufendenummer;"; 267 $v = array($ggml); 268 $resl = pg_prepare("", $sqll); 269 $resl = pg_execute("", $v); 270 if (!$resl) { 271 echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>"; 272 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqll)."'</p>";} 273 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resl)."</p>";} 274 } 275 while($rowl = pg_fetch_assoc($resl)) { // LOOP: Lagezeilen 276 $ltyp=$rowl["ltyp"]; // Lagezeilen-Typ 277 $skey=$rowl["lage"]; // Str.-Schluessel 278 $snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); //-Name 279 $hsnr=$rowl["hausnummer"]; 280 $hlfd=$rowl["laufendenummer"]; 281 $gmllag=$rowl["lgml"]; 282 if ($ltyp === "p") { 283 $lagetitl="Nebengebäude - Pseudonummer"; 284 $lagetxt="Nebengeb. ".$hlfd; // + HausNr?? 285 } else { 286 $lagetitl="HauptgebÀude - Hausnummer"; 287 $lagetxt=$snam." ".$hsnr; 288 } 289 echo "\n\t\t<a title='".$lagetitl."' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag."&ltyp=".$ltyp; 290 if ($showkey) {echo "&showkey=j";} 291 echo "'>"; 292 if ($showkey) {echo "<span class='key'>(".$skey.")</span> ";} 293 echo $lagetxt." <img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a><br>"; 294 } // Ende Loop Lage m.H. 295 pg_free_result($resl); 296 echo "\n\t</td>"; 297 298 echo "\n\t<td class='nwlink noprint'>" // Link Haus 299 ."\n\t\t<a title='Daten zum Gebäude-Objekt' href='alkishaus.php?gkz=".$gkz."&gmlid=".$ggml; 300 if ($showkey) {echo "&showkey=j";} 301 echo "'>Haus <img src='ico/Haus.png' width='16' height='16' alt=''></a>" 302 ."\n\t</td>" 145 303 ."\n</tr>"; 146 while($rowg = pg_fetch_assoc($resg)) { // T-Body 147 $gebnr = $gebnr + 1; 148 $ggml=$rowg["gml_id"]; 149 $gebflsum=$gebflsum + $rowg["schnittflae"]; 150 $gnam=trim(trim($rowg["name"], "{}"), '"'); // Gebaeude-Name ist ein Array in der DB: '{"A","B"}' 151 // Mehrfachbelegung nur theoretisch. Entklammern reicht. Mal mit und mal ohne "" drum!? 152 /* SELECT name FROM ax_gebaeude WHERE NOT name IS NULL AND array_length(name, 1) > 1; */ 153 $gfktk=htmlentities($rowg["gebaeudefunktion"], ENT_QUOTES, "UTF-8"); // Geb.-Funktion Key 154 $gfktv=htmlentities($rowg["bezeichner"], ENT_QUOTES, "UTF-8"); // Geb.Funktion Value 155 $gfktd=htmlentities($rowg["gfktd"], ENT_QUOTES, "UTF-8"); // GebÀude-Funktion-Description 156 $gzus=htmlentities($rowg["zustand"], ENT_QUOTES, "UTF-8"); 157 $gzustand=htmlentities($rowg["bzustand"], ENT_QUOTES, "UTF-8"); 158 159 // 3 FÀlle unterscheiden: 160 if ($rowg["drin"] == "t") { // GebÀude liegt komplett in FlurstÃŒck 161 $f1=$rowg["schnittflae"]." m²"; 162 $f2=" "; 163 $gstyle="gin"; // siehe .css 164 } else { 165 if ($rowg["schnittflae"] == "0.00") { // GebÀude angrenzend (Grenzbebauung) 166 $gstyle="gan"; 167 $f1=" "; 168 $f2="angrenzend"; 169 } else { // Teile des GebÀudes stehen auf dem FlurstÃŒck 170 $gstyle="gtl"; 171 $f1=$rowg["schnittflae"]." m²"; 172 $f2="(von ".$rowg["gebflae"]." m²)"; 173 } 174 } 175 176 echo "\n<tr>" 177 ."\n\t<td class='".$gstyle."'>"; // Sp. 1 Name 178 if ($gnam != "") {echo "<span title='Gebäudename'>".$gnam."</span><br>";} 179 echo "</td>"; 180 181 echo "\n\t<td class='fla'>".$f1."</td>" // Sp. 2 182 ."\n\t<td class='".$gstyle."'>".$f2."</td>"; // FlÀchenangaben 183 184 echo "\n\t<td class='".$gstyle."' title='".$gfktd."'>"; // Sp. 3 Funktion 185 if ($showkey) {echo "<span class='key'>".$gfktk."</span> ";} 186 echo $gfktv."</td>"; 187 188 echo "\n\t<td class='".$gstyle."'>"; 189 if ($showkey) {echo "<span class='key'>".$rowg["bauweise"]."</span> ";} 190 echo $rowg["bauweise_beschreibung"]." </td>"; 191 192 echo "\n\t<td class='".$gstyle."'>"; 193 if ($showkey) {echo "<span class='key'>".$gzus."</span> ";} 194 echo $gzustand." </td>"; 195 196 // 2 Spalten mit Links zu anderen Nachweisen: 1. Lage, 2. GebÀude 197 echo "\n\t<td class='nwlink noprint'>"; // Link Lage 198 199 // Zu EINEM GebÀude mehrere Lagebezeichnungen mit Haus- oder Pseudo-Nummer möglich, alle in ein TD 200 // HAUPTgebÀude Geb >zeigtAuf> lage (mehrere) 201 $sqll="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer " 202 ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) " 203 ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 204 ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; 205 206 // UNION - oder NEBENgebÀude Geb >hat> Pseudo 207 $sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer " 208 ."FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat " 209 ."JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage " 210 ."WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses" 211 212 $sqll.="ORDER BY bezeichnung, hausnummer;"; 213 $v = array($ggml); 214 $resl = pg_prepare("", $sqll); 215 $resl = pg_execute("", $v); 216 if (!$resl) { 217 echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>"; 218 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqll."<br>$1 = gml_id = '".$gmlid."'</p>";} 219 } 220 while($rowl = pg_fetch_assoc($resl)) { // LOOP: Lagezeilen 221 $ltyp=$rowl["ltyp"]; // Lagezeilen-Typ 222 $skey=$rowl["lage"]; // Str.-Schluessel 223 $snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); //-Name 224 $hsnr=$rowl["hausnummer"]; 225 $hlfd=$rowl["laufendenummer"]; 226 $gmllag=$rowl["lgml"]; 227 if ($ltyp == "p") { 228 $lagetitl="NebengebÀude - Pseudonummer"; 229 $lagetxt="Nebengebäude Nr. ".$hlfd; 230 } else { 231 $lagetitl="HauptgebÀude - Hausnummer"; 232 $lagetxt=$snam." ".$hsnr; 233 } 234 echo "\n\t\t<a title='".$lagetitl."' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag."&ltyp=".$ltyp; 235 if ($showkey) {echo "&showkey=j";} 236 echo "'>"; 237 if ($showkey) {echo "<span class='key'>(".$skey.")</span> ";} 238 echo $lagetxt." <img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a><br>"; 239 } // Ende Loop Lage m.H. 240 pg_free_result($resl); 241 echo "\n\t</td>"; 242 243 echo "\n\t<td class='nwlink noprint'>" // Link Haus 244 ."\n\t\t<a title='Daten zum Gebäude-Objekt' href='alkishaus.php?gkz=".$gkz."&gmlid=".$ggml; 245 if ($showkey) {echo "&showkey=j";} 246 echo "'>Haus <img src='ico/Haus.png' width='16' height='16' alt=''></a>" 247 ."\n\t</td>" 248 ."\n</tr>"; 249 } // Ende GebÀude 250 251 // Footer 252 if ($gebnr == 0) { 253 echo "\n</table>" 254 ."<p class='err'><br>Keine Gebäude auf diesem Flurstück.<br> </p>"; 255 //if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";} 256 } else { 257 echo "\n<tr>" 258 ."\n\t<td>Summe:</td>" 259 ."\n\t<td class='fla sum' title='von Gebäuden überbaute Fläche des Flurstücks'>".number_format($gebflsum,0,",",".")." m²</td>" 260 ."\n\t<td colspan='6'> </td>" 261 ."\n</tr>" 304 } 305 // Footer GebÀude 306 if ($gebnr === 0) { 307 echo "<p><br>Kein Gebäude auf diesem Flurstück.<br> </p>"; 308 //if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sqlg."<br>$1 = gml_id = '".$gmlid."'</p>";} 309 } else { 310 echo "\n<tr>" 311 ."\n\t<td>Summe:</td>" 312 ."\n\t<td class='fla sum' title='von Gebäuden überbaute Fläche des Flurstücks'>".number_format($gebflsum,0,",",".")." m²</td>" 313 ."\n\t<td colspan='6'> </td>" 314 ."\n</tr>" 262 315 ."\n</table>"; 263 316 $unbebaut = number_format(($flstflaeche - $gebflsum),0,",",".") . " m²"; … … 265 318 } 266 319 pg_free_result($resg); 320 321 // B a u w e r k e 322 323 // Konstanten fÃŒr Sortierung und Gruppierung 324 $btyp_verkehr=1; $btyp_gewaesser=2; $btyp_sonst=3; $btyp_indu=4; $btyp_sport=5; 325 $btyp_leitg=6; $btyp_trans=7; $btyp_turm=8; $btyp_vorrat=9; 326 327 // Tabllen-Alias, 2stellig. 1. Stelle: f_=FlurstÃŒck, b_=Bauwerk, k_=Key = SchlÃŒsseltabelle. // 2. Stelle: wie Konstante 328 329 // 1 -V e r k e h r 330 $sqlb="SELECT ".$btyp_verkehr." AS bwtyp, b1.gml_id, 331 b1.bauwerksfunktion, k1.beschreibung AS bezeichner, k1.dokumentation AS bfktd, b1.bezeichnung, b1.name, NULL AS gehoertzu, 332 round(st_area(b1.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b1.wkb_geometry,f1.wkb_geometry))::numeric,2) AS schnittflae, 333 st_within(b1.wkb_geometry,f1.wkb_geometry) as drin, GeometryType(b1.wkb_geometry) as bgeotyp 334 FROM ax_flurstueck f1 335 JOIN ax_bauwerkimverkehrsbereich b1 ON st_intersects(b1.wkb_geometry,f1.wkb_geometry) = true 336 LEFT JOIN ax_bauwerksfunktion_bauwerkimverkehrsbereich k1 ON b1.bauwerksfunktion = k1.wert 337 WHERE f1.gml_id = $1 AND f1.endet IS NULL AND b1.endet IS NULL "; 338 // 2 - G e w À s s e r 339 $sqlb.="UNION 340 SELECT ".$btyp_gewaesser." AS bwtyp, b2.gml_id, b2.bauwerksfunktion, ug.beschreibung AS bezeichner, ug.dokumentation AS bfktd, 341 b2.bezeichnung, b2.name, NULL AS gehoertzu, 342 round(st_area(b2.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b2.wkb_geometry,f2.wkb_geometry))::numeric,2) AS schnittflae, 343 st_within(b2.wkb_geometry,f2.wkb_geometry) as drin, GeometryType(b2.wkb_geometry) as bgeotyp 344 FROM ax_flurstueck f2 345 JOIN ax_bauwerkimgewaesserbereich b2 ON st_intersects(b2.wkb_geometry,f2.wkb_geometry) = true 346 LEFT JOIN ax_bauwerksfunktion_bauwerkimgewaesserbereich ug ON b2.bauwerksfunktion = ug.wert 347 WHERE f2.gml_id = $1 AND f2.endet IS NULL AND b2.endet IS NULL "; 348 // 3 - S o n s t i g e Bauwerke 349 $sqlb.="UNION 350 SELECT ".$btyp_sonst." AS bwtyp, b3.gml_id, b3.bauwerksfunktion, k3.beschreibung AS bezeichner, k3.dokumentation AS bfktd, 351 b3.bezeichnung, b3.name, b3.gehoertzu, 352 round(st_area(b3.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b3.wkb_geometry,f3.wkb_geometry))::numeric,2) AS schnittflae, 353 st_within(b3.wkb_geometry,f3.wkb_geometry) as drin, GeometryType(b3.wkb_geometry) as bgeotyp 354 FROM ax_flurstueck f3 355 JOIN ax_sonstigesbauwerkodersonstigeeinrichtung b3 ON st_intersects(b3.wkb_geometry,f3.wkb_geometry) = true 356 LEFT JOIN ax_bauwerksfunktion_sonstigesbauwerkodersonstigeeinrichtun k3 ON b3.bauwerksfunktion = k3.wert 357 WHERE f3.gml_id = $1 AND f3.endet IS NULL AND b3.endet IS NULL "; 358 // 4 - Bauwerk oder Anlage fÃŒr I n d u s t r i e und Gewerbe 359 $sqlb.="UNION 360 SELECT ".$btyp_indu." AS bwtyp, b4.gml_id, b4.bauwerksfunktion, k4.beschreibung AS bezeichner, k4.dokumentation AS bfktd, 361 b4.bezeichnung, b4.name, NULL AS gehoertzu, 362 round(st_area(b4.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b4.wkb_geometry,f4.wkb_geometry))::numeric,2) AS schnittflae, 363 st_within(b4.wkb_geometry,f4.wkb_geometry) as drin, GeometryType(b4.wkb_geometry) as bgeotyp 364 FROM ax_flurstueck f4 365 JOIN ax_bauwerkoderanlagefuerindustrieundgewerbe b4 ON st_intersects(b4.wkb_geometry,f4.wkb_geometry) = true 366 LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuerindustrieundgewer k4 ON b4.bauwerksfunktion = k4.wert 367 WHERE f4.gml_id = $1 AND f4.endet IS NULL AND b4.endet IS NULL "; 368 // 5 - Bauwerk oder Anlage fÃŒr S p o r t , Freizeit und Erholung 369 $sqlb.="UNION 370 SELECT ".$btyp_sport." AS bwtyp, b5.gml_id, b5.bauwerksfunktion, k5.beschreibung AS bezeichner, k5.dokumentation AS bfktd, 371 NULL AS bezeichnung, b5.name, NULL AS gehoertzu, 372 round(st_area(b5.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b5.wkb_geometry,f5.wkb_geometry))::numeric,2) AS schnittflae, 373 st_within(b5.wkb_geometry,f5.wkb_geometry) as drin, GeometryType(b5.wkb_geometry) as bgeotyp 374 FROM ax_flurstueck f5 375 JOIN ax_bauwerkoderanlagefuersportfreizeitunderholung b5 ON st_intersects(b5.wkb_geometry,f5.wkb_geometry) = true 376 LEFT JOIN ax_bauwerksfunktion_bauwerkoderanlagefuersportfreizeitunde k5 ON b5.bauwerksfunktion = k5.wert 377 WHERE f5.gml_id = $1 AND f5.endet IS NULL AND b5.endet IS NULL "; 378 // 6 - L e i t u n g 379 $sqlb.="UNION 380 SELECT ".$btyp_leitg." AS bwtyp, b6.gml_id, b6.bauwerksfunktion, k6.beschreibung AS bezeichner, k6.dokumentation AS bfktd, 381 NULL AS bezeichnung, b6.name, NULL AS gehoertzu, 382 round(st_area(b6.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b6.wkb_geometry,f6.wkb_geometry))::numeric,2) AS schnittflae, 383 st_within(b6.wkb_geometry,f6.wkb_geometry) as drin, GeometryType(b6.wkb_geometry) as bgeotyp 384 FROM ax_flurstueck f6 385 JOIN ax_leitung b6 ON st_intersects(b6.wkb_geometry,f6.wkb_geometry) = true 386 LEFT JOIN ax_bauwerksfunktion_leitung k6 ON b6.bauwerksfunktion = k6.wert 387 WHERE f6.gml_id = $1 AND f6.endet IS NULL AND b6.endet IS NULL "; 388 // 7 - T r a n s p o r t a n l a g e 389 $sqlb.="UNION 390 SELECT ".$btyp_trans." AS bwtyp, b7.gml_id, b7.bauwerksfunktion, k7.beschreibung AS bezeichner, k7.dokumentation AS bfktd, 391 NULL AS bezeichnung, NULL AS name, NULL AS gehoertzu, 392 round(st_area(b7.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b7.wkb_geometry,f7.wkb_geometry))::numeric,2) AS schnittflae, 393 st_within(b7.wkb_geometry,f7.wkb_geometry) as drin, GeometryType(b7.wkb_geometry) as bgeotyp 394 FROM ax_flurstueck f7 395 JOIN ax_transportanlage b7 ON st_intersects(b7.wkb_geometry,f7.wkb_geometry) = true 396 LEFT JOIN ax_bauwerksfunktion_transportanlage k7 ON b7.bauwerksfunktion = k7.wert 397 WHERE f7.gml_id = $1 AND f7.endet IS NULL AND b7.endet IS NULL "; 398 // 8 - T u r m (Sonderfall Array) 399 $sqlb.="UNION 400 SELECT ".$btyp_turm." AS bwtyp, b8.gml_id, k8.wert AS bauwerksfunktion, k8.beschreibung AS bezeichner, k8.dokumentation AS bfktd, 401 NULL AS bezeichnung, b8.name, NULL AS gehoertzu, 402 round(st_area(b8.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b8.wkb_geometry,f8.wkb_geometry))::numeric,2) AS schnittflae, 403 st_within(b8.wkb_geometry,f8.wkb_geometry) as drin, GeometryType(b8.wkb_geometry) as bgeotyp 404 FROM ax_flurstueck f8 405 JOIN ax_turm b8 ON st_intersects(b8.wkb_geometry,f8.wkb_geometry) = true 406 LEFT JOIN ax_bauwerksfunktion_turm k8 ON k8.wert =ANY(b8.bauwerksfunktion) 407 WHERE f8.gml_id = $1 AND f8.endet IS NULL AND b8.endet IS NULL "; 408 // 9 - V o r r a t s b e h À l t e r , S p e i c h e r b a u w e r k 409 $sqlb.="UNION 410 SELECT ".$btyp_vorrat." AS bwtyp, b9.gml_id, b9.bauwerksfunktion, k9.beschreibung AS bezeichner, k9.dokumentation AS bfktd, 411 NULL AS bezeichnung, b9.name, NULL AS gehoertzu, 412 round(st_area(b9.wkb_geometry)::numeric,2) AS gebflae, round(st_area(ST_Intersection(b9.wkb_geometry,f9.wkb_geometry))::numeric,2) AS schnittflae, 413 st_within(b9.wkb_geometry,f9.wkb_geometry) as drin, GeometryType(b9.wkb_geometry) as bgeotyp 414 FROM ax_flurstueck f9 415 JOIN ax_vorratsbehaelterspeicherbauwerk b9 ON st_intersects(b9.wkb_geometry,f9.wkb_geometry) = true 416 LEFT JOIN ax_bauwerksfunktion_vorratsbehaelterspeicherbauwerk k9 ON b9.bauwerksfunktion = k9.wert 417 WHERE f9.gml_id = $1 AND f9.endet IS NULL AND b9.endet IS NULL "; 418 419 // Generell ... 420 $sqlb.="ORDER BY bwtyp, schnittflae DESC;"; 421 422 $v=array($gmlid); 423 $resb=pg_prepare("", $sqlb); 424 $resb=pg_execute("", $v); 425 if (!$resb) { 426 echo "\n<p class='err'>Fehler bei Bauwerke-Verschneidung.</p>"; 427 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1","'".$gmlid."'",$sqlb)."</p>";} 428 if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($resb)."</p>";} 429 } 430 $baunr=0; // ZÀhler 431 $bauflsum=0; // FlÀchensumme 432 $gwbwtyp=0; // Gruppen-Wechsel Bauwerks-Typ 433 434 while($rowb = pg_fetch_assoc($resb)) { 435 $baunr++; 436 $btyp=$rowb["bwtyp"]; // Tabelle 437 $bgml=$rowb["gml_id"]; 438 $bauflsum=$bauflsum + $rowb["schnittflae"]; 439 $bbez=htmlentities($rowb["bezeichnung"], ENT_QUOTES, "UTF-8"); 440 $bfktk=htmlentities($rowb["bauwerksfunktion"], ENT_QUOTES, "UTF-8"); 441 $bfktv=htmlentities($rowb["bezeichner"], ENT_QUOTES, "UTF-8"); 442 $bfktd=htmlentities($rowb["bfktd"], ENT_QUOTES, "UTF-8"); 443 $bnam=htmlentities($rowb["name"], ENT_QUOTES, "UTF-8"); 444 $bgeb=$rowb["gehoertzu"]; 445 $drin=$rowb["drin"]; 446 $bgeotyp=$rowb["bgeotyp"]; 447 448 // Lage des Bauwerks zum FlurstÃŒck 449 if ($bgeotyp === "LINESTRING") { 450 if ($drin === "t") { 451 $bstyle="gin"; 452 } else { 453 $bstyle="gtl"; 454 } 455 $f1=" "; 456 $f2="Linie"; 457 } elseif ($bgeotyp === "POINT") { 458 if ($drin === "t") { 459 $bstyle="gin"; 460 } else { 461 $bstyle="gtl"; 462 } 463 $f1=" "; 464 $f2="Punkt"; 465 } else { // FlÀche / Multi- 466 if ($drin === "t") { // komplett IM FlurstÃŒck 467 $f1=$rowb["schnittflae"]." m²"; 468 $f2=" "; 469 $bstyle="gin"; // siehe .css 470 } else { 471 if ($rowb["schnittflae"] === "0.00") { // nur angrenzend 472 $bstyle="gan"; 473 $f1=" "; 474 $f2="angrenzend"; 475 } else { // Teile auf FlurstÃŒck 476 $bstyle="gtl"; 477 $f1=$rowb["schnittflae"]." m²"; 478 $f2="(von ".$rowb["gebflae"]." m²)"; 479 } 480 } 481 } 482 483 // Gruppenwechsel Bauwerks-Typ (Quell-Tabelle) - Zwischen-Ãberschrift 484 If ($btyp != $gwbwtyp) { 485 $gwbwtyp = $btyp; 486 if ($baunr === 1) {bauw_tab_head();} // Tab.-Kopf 487 switch ($btyp) { 488 case $btyp_verkehr: 489 $btyptitle='Bauwerk im Verkehrsbereich'; break; 490 case $btyp_gewaesser: 491 $btyptitle='Bauwerk im GewÀsserbereich'; break; 492 case $btyp_sonst: 493 $btyptitle='Sonstiges Bauwerk oder sonstige Einrichtung'; break; 494 case $btyp_indu: 495 $btyptitle="Bauwerk oder Anlage fÃŒr Industrie und Gewerbe"; break; 496 case $btyp_sport: 497 $btyptitle="Bauwerk oder Anlage fÃŒr Sport, Freizeit und Erholung"; break; 498 case $btyp_leitg: 499 $btyptitle="Leitung"; break; 500 case $btyp_trans: 501 $btyptitle="Transportanlage"; break; 502 case $btyp_turm: 503 $btyptitle="Turm"; break; 504 case $btyp_vorrat: 505 $btyptitle="VorratsbehÀlter, Speicherbauwerk"; break; 506 default: 507 $btyptitle='Fehler'; break; 508 } 509 echo "<tr><td colspan=3></td><td colspan=2 class='gw'>".$btyptitle."</td></tr>"; // ++ Symbol? 510 } 511 512 echo "\n<tr>"; 513 echo "\n\t<td>"; 514 if ($bbez != "") {echo "<span title='Bezeichnung'>".$bbez."</span> ";} 515 if ($bnam != "") {echo "<span title='Name'>".$bnam."</span> ";} 516 echo "</td>"; 517 echo "\n\t<td class='fla'>".$f1."</td>" 518 ."\n\t<td class='".$bstyle."'>".$f2."</td>"; // FlÀchenangaben 519 echo "\n\t<td>"; 520 if ($showkey) {echo "<span class='key'>(".$bfktk.")</span> ";} // Bauwerksfunktion 521 echo "<span title='".$bfktd ."'>".$bfktv."</span>"; 522 echo "</td>"; 523 524 // Lage / Haus (nur bei Typ 3 sonstige) 525 echo "\n\t<td class='nwlink noprint'>"; // Link 526 if ($bgeb != "") { // gehört zu GebÀude 527 // bw_gz_lage($bgeb); // Function: Lage (Adresse) ausgeben 528 echo "\n\t\t<a title='gehört zu' href='alkishaus.php?gkz=".$gkz."&gmlid=".$bgeb; 529 if ($showkey) {echo "&showkey=j";} 530 echo "'>Haus <img src='ico/Haus.png' width='16' height='16' alt=''></a>"; 531 } 532 echo "\n\t</td>"; 533 534 // Bauwerk Details 535 echo "\n\t<td class='nwlink noprint'>"; // Link 536 echo "\n\t\t<a title='Bauwerksdaten' href='alkisbauwerk.php?gkz=".$gkz."&btyp=".$btyp."&gmlid=".$bgml; 537 if ($showkey) {echo "&showkey=j";} 538 echo "'>Bauwerk <img src='ico/Haus.png' width='16' height='16' alt=''></a>"; // +++ Icon fÃŒr Bauwerk schaffen +++ 539 echo "\n\t</td>" 540 ."\n</tr>"; 541 } 542 543 // Footer Bauwerk 544 if ($baunr === 0) { 545 echo "\n<p>Kein Bauwerk auf diesem Flurstück.</p><br>"; 546 // if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sqlb."<br>$1 = gml_id = '".$gmlid."'</p>";} 547 } else { 548 echo "\n<tr>" 549 ."\n\t<td>Summe:</td>" 550 ."\n\t<td class='fla sum' title='von Bauwerken überbaute Fläche des Flurstücks'>".number_format($bauflsum,0,",",".")." m²</td>" 551 ."\n\t<td colspan='6'> </td>" 552 ."\n</tr>" 553 ."\n</table>\n"; 554 } 555 pg_free_result($resb); 267 556 ?> 268 557 … … 273 562 </div> 274 563 275 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>564 <?php footer($gmlid, selbstverlinkung()."?", ""); ?> 276 565 277 566 </body> -
trunk/info/info/alkisn/alkisgsnw.php
r412 r422 8 8 2018-05-03 Neues Modul "gsnw" abgeleitet aus "fsnw" 9 9 2018-11-09 Umstellung Full-Schema 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 12 2020-12-15 Input-Validation und Strict Comparisation (===) 13 14 ++ ToDo: Den Fall berÃŒcksichtigen, dass die Buchung vorhanden ist, aber das GB nicht (ModellschwÀche). Meldungen ausgeben. 10 15 */ 11 16 … … 17 22 $sqlgs="SELECT s.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, s.laufendenummer, s.buchungsart " 18 23 ."FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id "; 24 // Falls das Buchungsblatt fehlt (ModellschwÀche) wÀre ein LEFT JOIN hier nÃŒtzlich. Das Fehlen aber kontrollieren! ++ 25 19 26 if ($gskennz == '') { // normaler Link ÃŒber gmlid 20 27 $sqlgs.="WHERE s.gml_id= $1 "; … … 23 30 $arr=explode("-", $gskennz, 4); // zerlegen 24 31 $zbez=trim($arr[0]); // Bezirk 25 if (strlen($zbez) == 6) {32 if (strlen($zbez) === 6) { 26 33 $land=substr($zbez, 0, 2); 27 34 $zbez=substr($zbez, 2, 4); … … 73 80 $gmlid_d=$rowd["gml_id"]; 74 81 } 75 if ($cntd == 0) { // KEINE dienende BS82 if ($cntd === 0) { // KEINE dienende BS 76 83 $gmlid_d=""; 77 84 } elseif ($cntd > 1) { // Problem: mehrere dienende BS … … 93 100 $gd=$gh; // dienend 94 101 $gr=$gd; // root 95 //$steps=0; // wie oft?96 102 while($gd != "") { 97 //$steps++;98 103 $gr=$gd; // sichern 99 104 $gd=bs_dienend($gh); // an? 100 105 $gh=$gd; // fuer weitere Loop 101 106 } 102 //$steps=$steps -1; // erfolgreiche Suchen103 107 return $gr; 104 108 } 105 109 110 // H i e r S t a r t 111 ini_set("session.cookie_httponly", 1); 106 112 session_start(); 107 113 $showkey="n"; $nodebug=""; … … 118 124 } else { 119 125 $gskennz=''; 120 } 121 } 122 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 126 die("Fehlender Parameter"); 127 } 128 } 129 if (isset($gkz)) { 130 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 131 } else { 132 die("Fehlender Parameter"); 133 } 123 134 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 124 if ($showkey == "j") {$showkey=true;} else {$showkey=false;}135 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 125 136 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 126 137 127 require_once("alkis_conf_location.php"); 128 if ($auth == "mapbender") {require_once($mapbender);} 129 include("alkisfkt.php"); 138 include "alkis_conf_location.php"; 139 include "alkisfkt.php"; 130 140 ?> 131 141 <!doctype html> … … 145 155 <body> 146 156 <?php 147 if ($nodebug == "j") {$debug=0;} 157 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 158 159 if ($nodebug === "j") {$debug=0;} 148 160 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisgsnw.php'"); 149 161 if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>"; … … 163 175 } 164 176 } 165 echo "<p class=' gskennz'>ALKIS Grundstück ".$gsbez."-".rtrim($gsblatt)."-".$gslfdnr." </p>\n\n<h2>Grundstück</h2>"; // Balken177 echo "<p class='balken gskennz'>ALKIS Grundstück ".$gsbez."-".rtrim($gsblatt)."-".$gslfdnr." </p>\n\n<h2>Grundstück</h2>"; // Balken 166 178 167 179 if ($gerooted) { … … 176 188 ."\n\t<td class='head nwlink noprint' title='Verlinkung zu anderen Nachweis-Arten und verbundenen Objekten'>weitere Auskunft</td>" 177 189 ."\n</tr>"; 178 //++ +Lage oder Nutzung zum FS in eine zus. Spalte oder Zeile?179 //++ +Tabelle hat noch Platz, SQL in der Loop oder Subquery wÀre möglich, weil i.d.R. nur wenige FS je GS gebucht sind.190 //++ Lage oder Nutzung zum FS in eine zus. Spalte oder Zeile? 191 //++ Tabelle hat noch Platz, SQL in der Loop oder Subquery wÀre möglich, weil i.d.R. nur wenige FS je GS gebucht sind. 180 192 181 193 $sqlfs="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche 182 194 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 183 195 WHERE f.istgebucht = $1 AND f.endet IS NULL AND g.endet IS NULL "; 184 if ($filtgem == '' ) { // ungefiltert196 if ($filtgem === '' ) { // ungefiltert 185 197 $v=array($gmlid); 186 198 } else { … … 222 234 } 223 235 pg_free_result($resfs); 224 if ($j == 0) {echo "\n<tr class='unp'>\n\t<td colspan='5'><p class='warn'>Keine Flurstücke im berechtigten Bereich.</p></td>\n</tr>";}236 if ($j === 0) {echo "\n<tr class='unp'>\n\t<td colspan='5'><p class='warn'>Keine Flurstücke im berechtigten Bereich.</p></td>\n</tr>";} 225 237 echo "\n</table>"; 226 238 } else { // konnte nicht bis zur Basis aufsteigen … … 236 248 echo "\n<table class='outer'>"; 237 249 $stufe=1; 238 $gezeigt =buchung_anzg($gmlid, "j", false, "", 2);250 $gezeigt = buchung_anzg($gmlid, "j", false, "", 2); 239 251 $anzber=ber_bs_zaehl($gmlid); 240 252 $verf_next = array($gmlid); … … 257 269 } 258 270 echo "\n</table>\n\n"; 271 //if ($debug > 1) {echo "<p class='dbg'>Buchung gezeigt = ".$gezeigt."</p>";} 259 272 260 273 pg_close($con); … … 272 285 echo " \n</div>"; 273 286 274 footer($gmlid, $_SERVER['PHP_SELF']."?", "");287 footer($gmlid, selbstverlinkung()."?", ""); 275 288 ?> 276 289 </body> -
trunk/info/info/alkisn/alkishaus.php
r412 r422 5 5 Version: 6 6 2016-02-24 Version fuer norGIS-ALKIS-Import 7 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 8 2016-12-05 Array-Behandlung ax_gebaeude.name 9 2017-06-08 Validierung Eingabeparameter, Feinkorrekturen 10 2017-06-09 Tool-Tip GebÀudefunktion, ErklÀrung 2 getrennte p.Styles 11 2017-10-09 Sauber filtern auf endet IS NULL 12 2018-04-23 &nodebug 13 2018-11-09 Umstellung Full-Schema 14 15 ToDo: 16 - Die im Modul 'Lage' als Tooltip vorhandene lange Beschreibung der GebÀude-Funktion (Inhalt) hier auch anzeigen. 17 - sinnvolle Sortierung und Gruppierung der Felder 18 - geometrische Suche nach FS, auf denen das Haus steht 7 .... 8 2020-12-01 Darstellung der Datenerhebung, Klammern um SchlÃŒsselwerte 9 2020-12-02 Verschnitt GebÀude / FlurstÃŒcke 10 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 11 2020-12-15 Input-Validation und Strict Comparisation (===) 12 ToDo: 19 13 - Template im WMS auf Ebene GebÀude hierhin verknÃŒpfen. 20 - Relationen abbilden:21 ax_gebaeude >gehoertZu> ax_gebaeude (ringförmige Verbindung GebÀudekomplex)22 ax_gebaeude (umschliesst) ax_bauteil23 ax_gebaeude >gehoert> ax_person (Ausnahme)24 14 */ 15 ini_set("session.cookie_httponly", 1); 25 16 session_start(); 26 17 $allfld = "n"; $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren … … 28 19 29 20 // strikte Validierung aller Parameter 30 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 31 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 21 if (isset($gmlid)) { 22 if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 23 } else { 24 die("Fehlender Parameter"); 25 } 26 if (isset($gkz)) { 27 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 28 } else { 29 die("Fehlender Parameter"); 30 } 32 31 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 33 if ($showkey == "j") {$showkey=true;} else {$showkey=false;}32 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 34 33 if (!preg_match('#^[j|n]{0,1}$#', $allfld)) {die ("Eingabefehler allfld");} 35 if ($allfld == "j") {$allefelder=true;} else {$allefelder=false;}34 if ($allfld === "j") {$allefelder=true;} else {$allefelder=false;} 36 35 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 37 36 38 require_once("alkis_conf_location.php");39 i f ($auth == "mapbender") {require_once($mapbender);}40 include("alkisfkt.php"); 37 include "alkis_conf_location.php"; 38 include "alkisfkt.php"; 39 41 40 echo <<<END 42 41 <!doctype html> … … 52 51 <body> 53 52 END; 53 54 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 55 54 56 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 55 57 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 56 if ($nodebug == "j") {$debug=0;}58 if ($nodebug === "j") {$debug=0;} 57 59 58 60 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkishaus.php'"); … … 85 87 86 88 // Balken 87 echo "\n<p class='geb'>ALKIS Haus ".$gmlid." </p>"; // ++ Kennzeichen? 88 echo "\n<h2><img src='ico/Haus.png' width='16' height='16' alt=''> Haus (Gebäude)</h2>"; 89 90 // Kennzeichen in Rahmen 91 // - Welches Kennzeichen zum Haus ? 92 echo "\n<hr>"; 93 // Umschalter: auch leere Felder ausgeben? 94 echo "<p class='nwlink noprint'>"; 95 echo "Umschalten: <a class='nwlink' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&gmlid=".$gmlid; 89 echo "\n<p class='balken geb'>ALKIS Haus ".$gmlid." </p>"; 90 echo "\n<h2><img src='ico/Haus.png' width='16' height='16' alt=''> Haus (Gebäude)</h2>\n<hr>"; 91 92 echo "<p class='nwlink noprint'>"; // Umschalter: auch leere Felder 93 echo "Umschalten: <a class='nwlink' href='".selbstverlinkung()."?gkz=".$gkz."&gmlid=".$gmlid; 96 94 if ($showkey) {echo "&showkey=j";} else {echo "&showkey=n";} 97 95 if ($allefelder) { … … 102 100 echo "</a></p>"; 103 101 104 $gebnr = 0; 105 106 while($rowg = pg_fetch_assoc($resg)) { // Schleife, kann aber nur EIN Haus sein. 107 $gebnr++; 108 echo "\n<table class='geb'>" 109 ."\n<tr>\n" 110 ."\n\t<td class='head' title=''>Attribut</td>" 111 ."\n\t<td class='head mittelspalte' title=''>Wert</td>" 112 ."\n\t<td class='head' title=''>" 113 ."\n\t\t<p class='erklk'>Erklärung Kategorie</p>" 114 ."\n\t\t<p class='erkli'>Erklärung Inhalt</p>" 115 ."\n\t</td>" 116 ."\n</tr>"; 117 118 $aog=$rowg["aog"]; 119 $aug=$rowg["aug"]; 120 $hoh=$rowg["hochhaus"]; 121 $nam=trim(trim($rowg["name"], "{}"), '"'); // Gebaeude-Name ist ein Array in der DB: '{"A","B"}' 122 // Mehrfachbelegung nur theoretisch. Entklammern reicht. Mal mit und mal ohne "" drum !? 123 /* SELECT name FROM ax_gebaeude WHERE NOT name IS NULL AND array_length(name, 1) > 1; */ 124 $kfunk=$rowg["gebaeudefunktion"]; 125 $bfunk=$rowg["bfunk"]; 126 $dfunk=$rowg["dfunk"]; 127 128 $baw=$rowg["bauweise"]; 129 $bbauw=$rowg["bbauw"]; 130 $dbauw=$rowg["dbauw"]; 131 132 $ofl=$rowg["lagezurerdoberflaeche"]; 133 $oflv=$rowg["oflv"]; 134 $ofld=$rowg["ofld"]; 135 136 $dga=$rowg["dachgeschossausbau"]; // Key 137 $dgav=$rowg["dgaus"]; // Value 138 139 $zus=$rowg["zustand"]; // Key 140 $zusv=$rowg["zustandv"]; // Value 141 $zusd=$rowg["zustandd"]; // Description 142 143 $wgf=$rowg["wgf"]; // Array-> kommagetrennte Liste 144 145 $daf=$rowg["dachform"]; // Key 146 $dach=$rowg["bdach"]; // Value 147 148 $hho=$rowg["objekthoehe"]; 149 $gfl=$rowg["geschossflaeche"]; 150 $grf=$rowg["grundflaeche"]; 151 $ura=$rowg["umbauterraum"]; 152 $bja=$rowg["baujahr"]; 153 $daa=$rowg["dachart"]; 154 // $qag=$rowg["qualitaetsangaben"]; 155 156 if (($nam != "") OR $allefelder) { 102 if (!($rowg = pg_fetch_assoc($resg))) { 103 echo "\n<p class='err'><br>Kein Gebäude gefunden</p>"; 104 die ("Abbruch"); 105 } 106 107 echo "\n<table class='geb'>" 108 ."\n<tr>\n" 109 ."\n\t<td class='head' title=''>Attribut</td>" 110 ."\n\t<td class='head mittelspalte' title=''>Wert</td>" 111 ."\n\t<td class='head' title=''>" 112 ."\n\t\t<p class='erklk'>Erklärung Kategorie</p>" 113 ."\n\t\t<p class='erkli'>Erklärung Inhalt</p>" 114 ."\n\t</td>" 115 ."\n</tr>"; 116 117 $aog=$rowg["aog"]; 118 $aug=$rowg["aug"]; 119 $hoh=$rowg["hochhaus"]; 120 $nam=trim(trim($rowg["name"], "{}"), '"'); // Gebaeude-Name ist ein Array. 121 // Mehrfachbelegung theoretisch. Entklammern reicht. Mal mit und mal ohne "" drum. 122 $kfunk=$rowg["gebaeudefunktion"]; 123 $bfunk=$rowg["bfunk"]; 124 $dfunk=$rowg["dfunk"]; 125 126 $baw=$rowg["bauweise"]; 127 $bbauw=$rowg["bbauw"]; 128 $dbauw=$rowg["dbauw"]; 129 130 $ofl=$rowg["lagezurerdoberflaeche"]; 131 $oflv=$rowg["oflv"]; 132 $ofld=$rowg["ofld"]; 133 134 $dga=$rowg["dachgeschossausbau"]; // Key 135 $dgav=$rowg["dgaus"]; // Value 136 137 $zus=$rowg["zustand"]; // Key 138 $zusv=$rowg["zustandv"]; // Value 139 $zusd=$rowg["zustandd"]; // Description 140 141 $wgf=$rowg["wgf"]; // Array-> kommagetr. Liste 142 143 $daf=$rowg["dachform"]; // Key 144 $dach=$rowg["bdach"]; // Value 145 146 $hho=$rowg["objekthoehe"]; 147 $gfl=$rowg["geschossflaeche"]; 148 $grf=$rowg["grundflaeche"]; 149 $ura=$rowg["umbauterraum"]; 150 $bja=$rowg["baujahr"]; 151 $daa=$rowg["dachart"]; 152 153 if (($nam != "") OR $allefelder) { 154 echo "\n<tr>" 155 ."\n\t<td class='li'>Name</td>" 156 ."\n\t<td>".$nam."</td>" 157 ."\n\t<td>" 158 ."\n\t\t<p class='erklk'>'Name' ist der Eigenname oder die Bezeichnung des Gebäudes." 159 ."\n\t</td>" 160 ."\n</tr>"; 161 } 162 163 // 0 bis N L a g e bezeichnungen mit Haus- oder Pseudo-Nummer 164 165 // HAUPTgebÀude 166 $sqll ="SELECT 'm' AS ltyp, lh.gml_id AS gmllag, sh.lage, sh.bezeichnung, lh.hausnummer, '' AS laufendenummer FROM ax_gebaeude gh 167 JOIN ax_lagebezeichnungmithausnummer lh ON lh.gml_id=ANY(gh.zeigtauf) 168 JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage 169 WHERE gh.gml_id= $1 AND gh.endet IS NULL AND lh.endet IS NULL AND sh.endet IS NULL"; 170 // oder NEBENgebÀude 171 $sqll.=" UNION 172 SELECT 'p' AS ltyp, ln.gml_id AS gmllag, sn.lage, sn.bezeichnung, ln.pseudonummer AS hausnummer, ln.laufendenummer 173 FROM ax_gebaeude gn 174 JOIN ax_lagebezeichnungmitpseudonummer ln ON ln.gml_id=gn.hat 175 JOIN ax_lagebezeichnungkatalogeintrag sn ON ln.kreis=sn.kreis AND ln.gemeinde=sn.gemeinde AND ln.lage=sn.lage 176 WHERE gn.gml_id= $1 AND gn.endet IS NULL AND ln.endet IS NULL AND sn.endet IS NULL "; 177 178 $sqll.="ORDER BY bezeichnung, hausnummer ;"; 179 180 $v = array($gmlid); 181 $resl = pg_prepare("", $sqll); 182 $resl = pg_execute("", $v); 183 if (!$resl) { 184 echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>"; 185 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqll."<br>$1 = gml_id = '".$gmlid."'</p>";} 186 } 187 $zhsnr=0; 188 while($rowl = pg_fetch_assoc($resl)) { // LOOP: Lagezeilen 189 $zhsnr++; 190 $ltyp=$rowl["ltyp"]; // Lagezeilen-Typ 191 $skey=$rowl["lage"]; // Str.-Schluessel 192 $snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); // -Name 193 $hsnr=$rowl["hausnummer"]; 194 $hlfd=$rowl["laufendenummer"]; 195 $gmllag=$rowl["gmllag"]; 196 197 if ($zhsnr === 1) { 157 198 echo "\n<tr>" 158 ."\n\t<td class='li'>Name</td>" 159 ."\n\t<td>".$nam."</td>" 199 ."\n\t<td class='li' title='Lage mit Hausnummer oder Pseudonummer'>Adresse</td>" 200 ."\n\t<td class='fett'>"; 201 } 202 echo "\n\t\t<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> "; 203 if ($showkey) {echo "<span class='key'>(".$skey.")</span> ";} 204 echo "\n\t\t<a title='Hausnummer' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag."&ltyp=".$ltyp; 205 if ($showkey) {echo "&showkey=j";} 206 echo "'>".$snam." ".$hsnr; 207 if ($ltyp === "p") {echo ", lfd.Nr ".$hlfd;} 208 echo "</a><br>"; 209 } // Ende Loop Lagezeilen m.H. 210 if ($zhsnr > 0) {echo "\n\t</td>\n\t<td> </td>\n</tr>";} 211 pg_free_result($resl); 212 213 // GebÀudefunktion 214 echo "\n<tr>" 215 ."\n\t<td class='li'>Gebäudefunktion</td>" 216 ."\n\t<td class='fett'>"; 217 if ($showkey and $kfunk != '') {echo "<span class='key'>(".$kfunk.")</span> ";} 218 echo $bfunk."</td>" 219 ."\n\t<td>" 220 ."\n\t\t<p class='erklk'>'Gebäudefunktion' ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Gebäudes'</p>" 221 ."\n\t\t<p class='erkli'>".$dfunk."</p>" 222 ."</td>" 223 ."\n</tr>"; 224 225 // Bauweise 226 if ($baw != "" OR $allefelder) { 227 echo "\n<tr>" 228 ."\n\t<td class='li'>Bauweise</td>" 229 ."\n\t<td class='fett'>"; 230 if ($showkey and $baw != '') {echo "<span class='key'>(".$baw.")</span> ";} 231 echo $bbauw."</td>" 232 ."\n\t<td>" 233 ."\n\t\t<p class='erklk'>'Bauweise' ist die Beschreibung der Art der Bauweise.</p>" 234 ."\n\t\t<p class='erkli'>".$dbauw."</p>" 235 ."\n\t</td>" 236 ."\n</tr>"; 237 } 238 239 // Geschosse 240 if ($aog != "" OR $allefelder) { 241 echo "\n<tr>" 242 ."\n\t<td class='li'>Geschosse</td>" 243 ."\n\t<td class='fett'>".$aog."</td>" 244 ."\n\t<td>" 245 ."\n\t\t<p class='erklk'>Anzahl oberirdischer Geschosse.</p>" 246 ."\n\t</td>" 247 ."\n</tr>"; 248 } 249 250 // U-Geschosse 251 if ($aug != "" OR $allefelder) { 252 echo "\n<tr>" 253 ."\n\t<td class='li'>U-Geschosse</td>" 254 . "\n\t<td class='fett'>".$aug."</td>" 255 ."\n\t<td>" 256 ."\n\t\t<p class='erklk'>Anzahl unterirdischer Geschosse.</p>" 257 ."\n\t</td>" 258 ."\n</tr>"; 259 } 260 261 // Hochhaus 262 if ($hoh != "" OR $allefelder) { 263 echo "\n<tr>" 264 ."\n\t<td class='li'>Hochhaus</td>" 265 ."\n\t<td class='fett'>".$hoh."</td>" 266 ."\n\t<td>" 267 ."\n\t\t<p class='erklk'>'Hochhaus' ist ein Gebäude, das nach Gebäudehöhe und Ausprägung als Hochhaus zu bezeichnen ist. Für Gebäude im Geschossbau gilt dieses i.d.R. ab 8 oberirdischen Geschossen, für andere Gebäude ab einer Gebäudehöhe von 22 m." 268 ."\n\t</td>" 269 ."\n</tr>"; 270 } 271 272 // Lage zur ErdoberflÀche 273 if ($ofl != "" OR $allefelder) { 274 echo "\n<tr>" 275 ."\n\t<td class='li'>Lage zur Erdoberfläche</td>" 276 ."\n\t<td class='fett'>"; 277 if ($showkey and $ofl != '') {echo "<span class='key'>(".$ofl.")</span> ";} 278 echo $oflv."</td>" 279 ."\n\t<td>" 280 ."\n\t\t<p class='erklk'>'Lage zur Erdoberfläche' ist die Angabe der relativen Lage des Gebäudes zur Erdoberfläche. Diese Attributart wird nur bei nicht ebenerdigen Gebäuden geführt.<br>" 281 ."\n\t\t<p class='erkli'>".$ofld."</p>" 282 ."\n\t</td>" 283 ."\n</tr>"; 284 } 285 286 // Dachgeschossausbau, Spalte dokumentation ist immer leer 287 if ($dga != "" OR $allefelder) { 288 echo "\n<tr>" 289 ."\n\t<td class='li'>Dachgeschossausbau</td>" 290 ."\n\t<td class='fett'>"; 291 if ($showkey and $dga != '') {echo "<span class='key'>(".$dga.")</span> ";} 292 echo $dgav."</td>" 293 ."\n\t<td>" 294 ."\n\t\t<p class='erklk'>'Dachgeschossausbau' ist ein Hinweis auf den Ausbau bzw. die Ausbaufähigkeit des Dachgeschosses." 295 ."\n\t</td>" 296 ."\n</tr>"; 297 } 298 299 // Zustand 300 if ($zus != "" OR $allefelder) { 301 echo "\n<tr>" 302 ."\n\t<td class='li'>Zustand</td>" 303 ."\n\t<td class='fett'>"; 304 if ($showkey and $zus != '') {echo "<span class='key'>(".$zus.")</span> ";} 305 echo $zusv."</td>" 306 ."\n\t<td>" 307 ."\n\t\t<p class='erklk'>'Zustand' beschreibt die Beschaffenheit oder die Betriebsbereitschaft von 'Gebäude'. Diese Attributart wird nur dann optional geführt, wenn der Zustand des Gebäudes vom nutzungsfähigen Zustand abweicht.</p>" 308 ."\n\t\t<p class='erkli'>".$zusd."</p>" 309 ."\n\t</td>" 310 ."\n</tr>"; 311 } 312 313 // Weitere GebÀudefunktionen 314 // Suche Testfall: SELECT gml_id, gebaeudefunktion, weiteregebaeudefunktion FROM ax_gebaeude WHERE (NOT weiteregebaeudefunktion IS NULL) AND cardinality(weiteregebaeudefunktion) > 1 liMIT 10; 315 if ($wgf != "" OR $allefelder) { // ... ist ein Array 316 echo "\n<tr>" 317 ."\n\t<td class='li'>Weitere Gebäudefunktionen</td>" 318 ."\n\t<td>"; 319 if ($wgf != "") { // Kommagetrennte Liste aus Array 320 $sqlw="SELECT wert, beschreibung, dokumentation FROM ax_gebaeudefunktion WHERE wert IN ( $1 ) ORDER BY wert;"; 321 $v = array($wgf); 322 $resw = pg_prepare("", $sqlw); 323 $resw = pg_execute("", $v); 324 if (!$resw) { 325 echo "\n<p class='err'>Fehler bei Gebäude - weitere Funktion.</p>"; 326 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlw."<br>$1 = Werteliste = '".$wgf."'</p>";} 327 } 328 $zw=0; 329 while($roww = pg_fetch_assoc($resw)) { // LOOP Funktion 330 if ($zw > 0) {echo "<br>";} 331 if ($showkey and $roww["wert"] != '') {echo "<span class='key'>(".$roww["wert"].")</span> ";} 332 echo "<span title='".$roww["dokumentation"]."'>".$roww["beschreibung"]."</span>"; 333 $zw++; 334 } 335 pg_free_result($resw); 336 } 337 echo "</td>" 338 ."\n\t<td>" 339 ."\n\t\t<p class='erklk'>'Weitere Gebäudefunktion' ist die Funktion, die ein Gebäude neben der dominierenden Gebäudefunktion hat." 340 ."\n\t</td>" 341 ."\n</tr>"; 342 } 343 344 // Dachform, Spalte dokumentation ist immer leer 345 if ($daf != "" OR $allefelder) { 346 echo "\n<tr>" 347 ."\n\t<td class='li'>Dachform</td>" 348 ."\n\t<td class='fett'>"; 349 if ($showkey and $daf != '') {echo "<span class='key'>(".$daf.")</span> ";} 350 echo $dach."</td>" 351 ."\n\t<td>" 352 ."\n\t\t<p class='erklk'>'Dachform' beschreibt die charakteristische Form des Daches." 353 ."\n\t</td>" 354 ."\n</tr>"; 355 } 356 357 // Objekthöhe 358 if ($hho != "" OR $allefelder) { 359 echo "\n<tr>" 360 ."\n\t<td class='li'>Objekthöhe</td>" 361 ."\n\t<td class='fett'>".$hho."</td>" 362 ."\n\t<td>" 363 ."\n\t\t<p class='erklk'>'Objekthöhe' ist die Höhendifferenz in [m] zwischen dem höchsten Punkt der Dachkonstruktion und der festgelegten Geländeoberfläche des Gebäudes." 364 ."\n\t</td>" 365 ."\n</tr>"; 366 } 367 368 // GeschossflÀche 369 if ($gfl != "" OR $allefelder) { 370 echo "\n<tr>" 371 ."\n\t<td class='li'>Geschossfläche</td>" 372 ."\n\t<td class='fett'>"; 373 if ($gfl != "") {echo $gfl." m²";} 374 echo "</td>" 375 ."\n\t<td>" 376 ."\n\t\t<p class='erklk'>'Geschossfläche' ist die Gebäudegeschossfläche in [qm]." 377 ."\n\t</td>" 378 ."\n</tr>"; 379 } 380 381 // GrundflÀche 382 if ($grf != "" OR $allefelder) { 383 echo "\n<tr>" 384 ."\n\t<td class='li'>Grundfläche</td>" 385 ."\n\t<td class='fett'>"; 386 if ($grf != "") {echo $grf." m²";} 387 echo "\n\t<td>" 388 ."\n\t\t<p class='erklk'>'Grundfläche' ist die Gebäudegrundfläche in [qm]." 389 ."\n\t</td>" 390 ."\n</tr>"; 391 } 392 393 // Umbauter Raum 394 if ($ura != "" OR $allefelder) { 395 echo "\n<tr>" 396 ."\n\t<td class='li'>Umbauter Raum</td>" 397 ."\n\t<td class='fett'>".$ura."</td>" 398 ."\n\t<td>" 399 ."\n\t\t<p class='erklk'>'Umbauter Raum' ist der umbaute Raum [Kubikmeter] des Gebäudes." 400 ."\n\t</td>" 401 ."\n</tr>"; 402 } 403 404 // Baujahr 405 if ($bja != "" OR $allefelder) { 406 echo "\n<tr>" 407 ."\n\t<td class='li'>Baujahr</td>" 408 ."\n\t<td class='fett'>".$bja."</td>" 409 ."\n\t<td>" 410 ."\n\t\t<p class='erklk'>'Baujahr' ist das Jahr der Fertigstellung oder der baulichen Veränderung des Gebäudes." 411 ."\n\t</td>" 412 ."\n</tr>"; 413 } 414 415 // Dachart 416 if ($daa != "" OR $allefelder) { 417 echo "\n<tr>" 418 ."\n\t<td class='li'>Dachart</td>" 419 ."\n\t<td class='fett'>".$daa."</td>" 420 ."\n\t<td>" 421 ."\n\t\t<p class='erklk'>'Dachart' gibt die Art der Dacheindeckung (z.B. Reetdach) an." 422 ."\n\t</td>" 423 ."\n</tr>"; 424 } 425 426 // D a t e n e r h e b u n g (QualitÀt der Einmessung) 427 $sqle ="SELECT g.gml_id, e.wert, e.beschreibung, e.dokumentation FROM ax_gebaeude g 428 LEFT JOIN ax_datenerhebung e ON cast(e.wert AS varchar) = any(g.herkunft_source_source_ax_datenerhebung) 429 WHERE g.gml_id= $1 AND g.endet IS NULL;"; 430 $v = array($gmlid); 431 $rese = pg_prepare("", $sqle); 432 $rese = pg_execute("", $v); 433 if (!$rese) { 434 echo "\n<p class='err'>Fehler bei Datenerhebung.<br>".pg_last_error()."</p>"; 435 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqle."<br>$1 = gml_id = '".$gmlid."'</p>";} 436 } 437 while($rowe = pg_fetch_assoc($rese)) { // Schleife weil array-Feld, meist aber leer 438 $erheb =$rowe["wert"]; 439 $berheb=$rowe["beschreibung"]; 440 $derheb=$rowe["dokumentation"]; // immer leer, oder 441 if ($derheb == '' AND $erheb != '') { // Wert ohne Doku 442 if ( $erheb >= 2000) { // selbst was dazu sagen 443 $derheb = 'nicht eingemessenes Gebäude'; // so hieà das in der ALK 444 } 445 } 446 if ($erheb != "" OR $allefelder) { 447 echo "\n<tr>" 448 ."\n\t<td class='li'>Datenerhebung</td>" 449 ."\n\t<td class='fett'>"; 450 if ($showkey) {echo "<span class='key'>(".$erheb.")</span> ";} 451 echo $berheb."</td>" 160 452 ."\n\t<td>" 161 ."\n\t\t<p class='erklk'>'Name' ist der Eigenname oder die Bezeichnung des Gebäudes." 162 ."\n\t</td>" 453 ."\n\t\t<p class='erklk'>'Datenerhebung' beschreibt Qualitätsangaben, Herkunft.</p>" 454 ."\n\t\t<p class='erkli'>".$derheb."</p>" 455 ."</td>" 163 456 ."\n</tr>"; 164 457 } 165 166 // 0 bis N L a g e bezeichnungen mit Haus- oder Pseudo-Nummer 167 168 // HAUPTgebÀude 169 $sqll ="SELECT 'm' AS ltyp, lh.gml_id AS gmllag, sh.lage, sh.bezeichnung, lh.hausnummer, '' AS laufendenummer FROM ax_gebaeude gh 170 JOIN ax_lagebezeichnungmithausnummer lh ON lh.gml_id=ANY(gh.zeigtauf) 171 JOIN ax_lagebezeichnungkatalogeintrag sh ON lh.kreis=sh.kreis AND lh.gemeinde=sh.gemeinde AND lh.lage=sh.lage 172 WHERE gh.gml_id= $1 AND gh.endet IS NULL AND lh.endet IS NULL AND sh.endet IS NULL"; 173 // oder NEBENgebÀude 174 $sqll.=" UNION 175 SELECT 'p' AS ltyp, ln.gml_id AS gmllag, sn.lage, sn.bezeichnung, ln.pseudonummer AS hausnummer, ln.laufendenummer 176 FROM ax_gebaeude gn 177 JOIN ax_lagebezeichnungmitpseudonummer ln ON ln.gml_id=gn.hat 178 JOIN ax_lagebezeichnungkatalogeintrag sn ON ln.kreis=sn.kreis AND ln.gemeinde=sn.gemeinde AND ln.lage=sn.lage 179 WHERE gn.gml_id= $1 AND gn.endet IS NULL AND ln.endet IS NULL AND sn.endet IS NULL "; 180 181 $sqll.="ORDER BY bezeichnung, hausnummer ;"; 182 183 $v = array($gmlid); 184 $resl = pg_prepare("", $sqll); 185 $resl = pg_execute("", $v); 186 if (!$resl) { 187 echo "\n<p class='err'>Fehler bei Lage mit HsNr.</p>"; 188 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqll."<br>$1 = gml_id = '".$gmlid."'</p>";} 458 } 459 echo "\n</table>"; 460 pg_free_result($rese); 461 462 $gfla=$rowg["gebflae"]; // bei Flurstck. gebraucht 463 pg_free_result($resg); 464 465 echo "\n\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurstücke</h3>" 466 ."\n<p>.. auf dem das Gebäude steht. Ermittelt durch Verschneidung der Geometrie.</p>"; 467 468 // F l u r s t ÃŒ c k 469 $sqlf ="SELECT f.gml_id, round(st_area(ST_Intersection(g.wkb_geometry,f.wkb_geometry))::numeric,2) AS schnittflae, 470 st_within(g.wkb_geometry,f.wkb_geometry) as drin, o.gemarkungsnummer, o.bezeichnung, f.flurnummer, f.zaehler, f.nenner 471 FROM ax_gebaeude g, ax_flurstueck f LEFT JOIN ax_gemarkung o ON f.land=o.land AND f.gemarkungsnummer=o.gemarkungsnummer 472 WHERE g.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL 473 AND st_intersects(g.wkb_geometry,f.wkb_geometry) = true ORDER BY schnittflae DESC;"; 474 475 $v=array($gmlid); 476 $resf=pg_prepare("", $sqlf); 477 $resf=pg_execute("", $v); 478 if (!$resf) { 479 echo "\n<p class='err'>Fehler bei FS-Verschneidung.</p>"; 480 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".$sqlf."<br>$1 = gml_id = '".$gmlid."'</p>";} 481 } 482 483 echo "\n<hr>\n<table class='geb'>" 484 ."\n<tr>" 485 ."\n\t<td class='heads fla' title='Schnittfläche zwischen Flurstück und Gebäude'><img src='ico/sortd.png' width='10' height='10' alt='' title='Sortierung (absteigend)'>Fläche</td>" 486 ."\n\t<td class='head' title='Verhältnis Gebäudefläche zur FlurstÃŒcksfläche'>Verhältnis</td>" 487 ."\n\t<td class='head' title='Flurstückskennzeichen Ortsteil'>Gemarkung</td>" 488 ."\n\t<td class='head' title='Flurstückskennzeichen Flur-Nummer'>Flur</td>" 489 ."\n\t<td class='heads fsnr' title='Flurstückskennzeichen Flurstücks-Nummer'>Flurstück</td>" 490 ."\n\t<td class='head nwlink' title='Flurstücks-Nachweis'>weitere Auskunft</td>" 491 ."\n</tr>"; 492 493 while($rowf = pg_fetch_assoc($resf)) { 494 $fgml=$rowf["gml_id"]; 495 $drin=$rowf["drin"]; 496 $schni=$rowf["schnittflae"]; 497 $flur= $rowf["flurnummer"]; 498 $fskenn=$rowf["zaehler"]; 499 if ($rowf["nenner"] != "") { $fskenn.="/".$rowf["nenner"];} 500 501 // 3 FÀlle: 502 if ($drin === "t") { // GebÀude liegt komplett in FlurstÃŒck 503 $gstyle="gin"; // siehe .css 504 $f1=number_format($schni,2,",",".") . " m²"; 505 $f2="vollständig"; 506 } else { 507 if ($schni === "0.00") { // GebÀude angrenzend (Grenzbebauung) 508 $gstyle="gan"; 509 $f1=" "; 510 $f2="angrenzend"; 511 } else { // Teile des GebÀudes stehen auf dem FlurstÃŒck 512 $gstyle="gtl"; 513 $f1=number_format($schni,2,",",".") . " m²"; 514 $f2="teilweise"; 515 } 189 516 } 190 $zhsnr=0; 191 while($rowl = pg_fetch_assoc($resl)) { // LOOP: Lagezeilen 192 $zhsnr++; 193 $ltyp=$rowl["ltyp"]; // Lagezeilen-Typ 194 $skey=$rowl["lage"]; // Str.-Schluessel 195 $snam=htmlentities($rowl["bezeichnung"], ENT_QUOTES, "UTF-8"); // -Name 196 $hsnr=$rowl["hausnummer"]; 197 $hlfd=$rowl["laufendenummer"]; 198 $gmllag=$rowl["gmllag"]; 199 200 if ($zhsnr == 1) { 201 echo "\n<tr>" 202 ."\n\t<td class='li' title='Lage mit Hausnummer oder Pseudonummer'>Adresse</td>" 203 ."\n\t<td class='fett'>"; 204 } 205 echo "\n\t\t<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> "; 206 if ($showkey) {echo "<span class='key'>(".$skey.")</span> ";} 207 echo "\n\t\t<a title='Hausnummer' href='alkislage.php?gkz=".$gkz."&gmlid=".$gmllag."&ltyp=".$ltyp; 208 if ($showkey) {echo "&showkey=j";} 209 echo "'>".$snam." ".$hsnr; 210 if ($ltyp == "p") {echo ", lfd.Nr ".$hlfd;} 211 echo "</a><br>"; 212 } // Ende Loop Lagezeilen m.H. 213 if ($zhsnr > 0) {echo "\n\t</td>\n\t<td> </td>\n</tr>";} 214 215 // In der 3. Spalte: 216 // p.erklk = ErklÀrungen zur Kategorie 217 // p.erkli = .. zum Inhalt 218 219 // GebÀudefunktion 220 echo "\n<tr>" 221 ."\n\t<td class='li'>Gebäudefunktion</td>" 222 ."\n\t<td class='fett'>"; 223 if ($showkey) {echo "<span class='key'>".$kfunk."</span> ";} 224 echo $bfunk."</td>" 225 ."\n\t<td>" 226 ."\n\t\t<p class='erklk'>'Gebäudefunktion' ist die zum Zeitpunkt der Erhebung vorherrschend funktionale Bedeutung des Gebäudes'</p>" 227 ."\n\t\t<p class='erkli'>".$dfunk."</p>" 228 ."</td>" 229 ."\n</tr>"; 230 231 // Bauweise 232 if ($baw != "" OR $allefelder) { 233 echo "\n<tr>" 234 ."\n\t<td class='li'>Bauweise</td>" 235 ."\n\t<td class='fett'>"; 236 if ($showkey) {echo "<span class='key'>".$baw."</span> ";} 237 echo $bbauw."</td>" 238 ."\n\t<td>" 239 ."\n\t\t<p class='erklk'>'Bauweise' ist die Beschreibung der Art der Bauweise.</p>" 240 ."\n\t\t<p class='erkli'>".$dbauw."</p>" 241 ."\n\t</td>" 242 ."\n</tr>"; 243 } 244 245 // Geschosse 246 if ($aog != "" OR $allefelder) { 247 echo "\n<tr>" 248 ."\n\t<td class='li'>Geschosse</td>" 249 ."\n\t<td class='fett'>".$aog."</td>" 250 ."\n\t<td>" 251 ."\n\t\t<p class='erklk'>Anzahl oberirdischer Geschosse.</p>" 252 ."\n\t</td>" 253 ."\n</tr>"; 254 } 255 256 // U-Geschosse 257 if ($aug != "" OR $allefelder) { 258 echo "\n<tr>" 259 ."\n\t<td class='li'>U-Geschosse</td>" 260 . "\n\t<td class='fett'>".$aug."</td>" 261 ."\n\t<td>" 262 ."\n\t\t<p class='erklk'>Anzahl unterirdischer Geschosse.</p>" 263 ."\n\t</td>" 264 ."\n</tr>"; 265 } 266 267 // Hochhaus 268 if ($hoh != "" OR $allefelder) { 269 echo "\n<tr>" 270 ."\n\t<td class='li'>Hochhaus</td>" 271 ."\n\t<td class='fett'>".$hoh."</td>" 272 ."\n\t<td>" 273 ."\n\t\t<p class='erklk'>'Hochhaus' ist ein Gebäude, das nach Gebäudehöhe und Ausprägung als Hochhaus zu bezeichnen ist. Für Gebäude im Geschossbau gilt dieses i.d.R. ab 8 oberirdischen Geschossen, für andere Gebäude ab einer Gebäudehöhe von 22 m." 274 ."\n\t</td>" 275 ."\n</tr>"; 276 } 277 278 // Lage zur ErdoberflÀche 279 if ($ofl != "" OR $allefelder) { 280 echo "\n<tr>" 281 ."\n\t<td class='li'>Lage zur Erdoberfläche</td>" 282 ."\n\t<td class='fett'>"; 283 if ($showkey) {echo "<span class='key'>".$ofl."</span> ";} 284 echo $oflv."</td>" 285 ."\n\t<td>" 286 ."\n\t\t<p class='erklk'>'Lage zur Erdoberfläche' ist die Angabe der relativen Lage des Gebäudes zur Erdoberfläche. Diese Attributart wird nur bei nicht ebenerdigen Gebäuden geführt.<br>" 287 ."\n\t\t<p class='erkli'>".$ofld."</p>" 288 ."\n\t</td>" 289 ."\n</tr>"; 290 } 291 292 // Dachgeschossausbau, Spalte dokumentation ist immer leer 293 if ($dga != "" OR $allefelder) { 294 echo "\n<tr>" 295 ."\n\t<td class='li'>Dachgeschossausbau</td>" 296 ."\n\t<td class='fett'>"; 297 if ($showkey) {echo "<span class='key'>".$dga."</span> ";} 298 echo $dgav."</td>" 299 ."\n\t<td>" 300 ."\n\t\t<p class='erklk'>'Dachgeschossausbau' ist ein Hinweis auf den Ausbau bzw. die Ausbaufähigkeit des Dachgeschosses." 301 ."\n\t</td>" 302 ."\n</tr>"; 303 } 304 305 // Zustand 306 if ($zus != "" OR $allefelder) { 307 echo "\n<tr>" 308 ."\n\t<td class='li'>Zustand</td>" 309 ."\n\t<td class='fett'>"; 310 if ($showkey) {echo "<span class='key'>".$zus."</span> ";} 311 echo $zusv."</td>" 312 ."\n\t<td>" 313 ."\n\t\t<p class='erklk'>'Zustand' beschreibt die Beschaffenheit oder die Betriebsbereitschaft von 'Gebäude'. Diese Attributart wird nur dann optional geführt, wenn der Zustand des Gebäudes vom nutzungsfähigen Zustand abweicht.</p>" 314 ."\n\t\t<p class='erkli'>".$zusd."</p>" 315 ."\n\t</td>" 316 ."\n</tr>"; 317 } 318 319 // Weitere GebÀudefunktionen 320 // Suche Testfall: SELECT gml_id, gebaeudefunktion, weiteregebaeudefunktion FROM ax_gebaeude WHERE (NOT weiteregebaeudefunktion IS NULL) AND cardinality(weiteregebaeudefunktion) > 1 liMIT 10; 321 if ($wgf != "" OR $allefelder) { // ... ist ein Array 322 echo "\n<tr>" 323 ."\n\t<td class='li'>Weitere Gebäudefunktionen</td>" 324 ."\n\t<td>"; 325 if ($wgf != "") { // Kommagetrennte Liste aus Array 326 $sqlw="SELECT wert, beschreibung, dokumentation FROM ax_gebaeudefunktion WHERE wert IN ( $1 ) ORDER BY wert;"; 327 $v = array($wgf); 328 $resw = pg_prepare("", $sqlw); 329 $resw = pg_execute("", $v); 330 if (!$resw) { 331 echo "\n<p class='err'>Fehler bei Gebäude - weitere Funktion.</p>"; 332 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sqlw."<br>$1 = Werteliste = '".$wgf."'</p>";} 333 } 334 $zw=0; 335 while($roww = pg_fetch_assoc($resw)) { // LOOP Funktion 336 if ($zw > 0) {echo "<br>";} 337 if ($showkey) {echo "<span class='key'>".$roww["wert"]."</span> ";} 338 echo "<span title='".$roww["dokumentation"]."'>".$roww["beschreibung"]."</span>"; 339 $zw++; 340 } 341 } 342 echo "</td>" 343 ."\n\t<td>" 344 ."\n\t\t<p class='erklk'>'Weitere Gebäudefunktion' ist die Funktion, die ein Gebäude neben der dominierenden Gebäudefunktion hat." 345 ."\n\t</td>" 346 ."\n</tr>"; 347 } 348 349 // Dachform, Spalte dokumentation ist immer leer 350 if ($daf != "" OR $allefelder) { 351 echo "\n<tr>" 352 ."\n\t<td class='li'>Dachform</td>" 353 ."\n\t<td class='fett'>"; 354 if ($showkey) {echo "<span class='key'>".$daf."</span> ";} 355 echo $dach."</td>" 356 ."\n\t<td>" 357 ."\n\t\t<p class='erklk'>'Dachform' beschreibt die charakteristische Form des Daches." 358 ."\n\t</td>" 359 ."\n</tr>"; 360 } 361 362 // Objekthöhe 363 if ($hho != "" OR $allefelder) { 364 echo "\n<tr>" 365 ."\n\t<td class='li'>Objekthöhe</td>" 366 ."\n\t<td class='fett'>".$hho."</td>" 367 ."\n\t<td>" 368 ."\n\t\t<p class='erklk'>'Objekthöhe' ist die Höhendifferenz in [m] zwischen dem höchsten Punkt der Dachkonstruktion und der festgelegten Geländeoberfläche des Gebäudes." 369 ."\n\t</td>" 370 ."\n</tr>"; 371 } 372 373 // GeschossflÀche 374 if ($gfl != "" OR $allefelder) { 375 echo "\n<tr>" 376 ."\n\t<td class='li'>Geschossfläche</td>" 377 ."\n\t<td class='fett'>"; 378 if ($gfl != "") {echo $gfl." m²";} 379 echo "</td>" 380 ."\n\t<td>" 381 ."\n\t\t<p class='erklk'>'Geschossfläche' ist die Gebäudegeschossfläche in [qm]." 382 ."\n\t</td>" 383 ."\n</tr>"; 384 } 385 386 // GrundflÀche 387 if ($grf != "" OR $allefelder) { 388 echo "\n<tr>" 389 ."\n\t<td class='li'>Grundfläche</td>" 390 ."\n\t<td class='fett'>"; 391 if ($grf != "") {echo $grf." m²";} 392 echo "\n\t<td>" 393 ."\n\t\t<p class='erklk'>'Grundfläche' ist die Gebäudegrundfläche in [qm]." 394 ."\n\t</td>" 395 ."\n</tr>"; 396 } 397 398 // Umbauter Raum 399 if ($ura != "" OR $allefelder) { 400 echo "\n<tr>" 401 ."\n\t<td class='li'>Umbauter Raum</td>" 402 ."\n\t<td class='fett'>".$ura."</td>" 403 ."\n\t<td>" 404 ."\n\t\t<p class='erklk'>'Umbauter Raum' ist der umbaute Raum [Kubikmeter] des Gebäudes." 405 ."\n\t</td>" 406 ."\n</tr>"; 407 } 408 409 // Baujahr 410 if ($bja != "" OR $allefelder) { 411 echo "\n<tr>" 412 ."\n\t<td class='li'>Baujahr</td>" 413 ."\n\t<td class='fett'>".$bja."</td>" 414 ."\n\t<td>" 415 ."\n\t\t<p class='erklk'>'Baujahr' ist das Jahr der Fertigstellung oder der baulichen Veränderung des Gebäudes." 416 ."\n\t</td>" 417 ."\n</tr>"; 418 } 419 420 // Dachart 421 if ($daa != "" OR $allefelder) { 422 echo "\n<tr>" 423 ."\n\t<td class='li'>Dachart</td>" 424 ."\n\t<td class='fett'>".$daa."</td>" 425 ."\n\t<td>" 426 ."\n\t\t<p class='erklk'>'Dachart' gibt die Art der Dacheindeckung (z.B. Reetdach) an." 427 ."\n\t</td>" 428 ."\n</tr>"; 429 } 430 431 // QualitÀtsangaben 432 /* if ($qag != "" OR $allefelder) { 433 echo "\n<tr>" 434 ."\n\t<td class='li'>Qualitätsangaben</td>" 435 ."\n\t<td class='fett'>".$qag."</td>" 436 ."\n\t<td>" 437 ."\n\t\t<p class='erklk'>Angaben zur Herkunft der Informationen (Erhebungsstelle). Die Information ist konform zu den Vorgaben aus ISO 19115 zu repräsentieren." 438 ."\n\t</td>" 439 ."\n</tr>"; 440 } */ 441 echo "\n</table>"; 442 } 443 if ($gebnr == 0) {echo "\n<p class='err'><br>Kein Gebäude gefunden<br> </p>";} 444 445 // ++ ToDo: -Verschnitt mit FS? -Ausgeben ax_georeferenziertegebaeudeadresse dazz, wenn gefÃŒllt. 517 echo "\n<tr>" 518 ."\n\t<td class='fla'>".$f1."</td>" 519 ."\n\t<td class='".$gstyle."'>".$f2."</td>"; 520 echo "\n\t<td>"; 521 if ($showkey) {echo "<span class='key'>(".$rowf["gemarkungsnummer"].")</span> ";} 522 echo $rowf["bezeichnung"]."</td>" 523 ."\n\t<td>".$flur."</td>" 524 ."\n\t<td class='fsnr'><span class='wichtig'>".$fskenn."</span></td>"; 525 526 echo "\n\t<td class='nwlink noprint'>" // Link FS 527 ."\n\t\t<a title='Flurstück' href='alkisfsnw.php?gkz=".$gkz."&gmlid=".$fgml; 528 if ($showkey) {echo "&showkey=j";} 529 echo "'>Flurstück <img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''></a>" 530 ."\n\t</td>" 531 ."\n</tr>"; 532 } 533 534 $gfla=number_format($gfla,2,",",".") . " m²"; 535 echo "\n<tr>\n\t<td class='fla sum'>".$gfla."</td>\n\t<td>Gebäudefläche</td>\n\t<td></td>\n</tr>"; 536 echo "\n</table>"; // Ende FlurstÃŒcke 446 537 ?> 447 538 … … 452 543 </div> 453 544 454 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>545 <?php footer($gmlid, selbstverlinkung()."?", ""); ?> 455 546 456 547 </body> -
trunk/info/info/alkisn/alkisinlayausk.php
r412 r422 11 11 Version: 12 12 2016-02-24 Version fuer norGIS-ALKIS-Import 13 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen (Berechtigung fÃŒr Gemeinde prÃŒfen) 14 2017-06-01 Function "eigentuemer" ohne Parameter $con 15 2017-06-08 Validierung Eingabeparameter, Feinkorrekturen 16 2017-10-09 Sauber filtern auf endet IS NULL 17 2017-12-20 Fehlerkorrektur: Link StraÃe ohne gml_id, Bessere Title fÃŒr Links, Icon an Lage. 18 2018-04-23 FÃŒr GB-Teil Function benutzen 19 2018-04-24 Feinschliff 20 2018-05-03 neuer GrundstÃŒcksnachweis 21 2018-11-09 Umstellung Full-Schema 13 .... 14 2020-02-03 Fenster-Weite 15 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 16 2020-10-14 include ohne Klammer 17 2020-12-15 Input-Validation und Strict Comparisation (===) 18 2021-03-09 Link zum GebÀudenachweis auch mit "Bauwerke" betiteln 22 19 */ 20 ini_set("session.cookie_httponly", 1); 23 21 session_start(); 24 22 $cntget = extract($_GET); // Parameter in Variable umwandeln 25 23 26 24 // strikte Validierung aller Parameter 27 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 28 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 29 30 require_once("alkis_conf_location.php"); 31 if ($auth == "mapbender") {require_once($mapbender);} 32 include("alkisfkt.php"); 33 25 if (isset($gmlid)) { 26 if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 27 } else { 28 die("Fehlender Parameter"); 29 } 30 if (isset($gkz)) { 31 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 32 } else { 33 die("Fehlender Parameter"); 34 } 35 36 include "alkis_conf_location.php"; 37 include "alkisfkt.php"; 38 39 // Wert fÃŒr "width=" aus der Function "imFenster" synchron halten mit "@media screen body width" aus "alkisauszug.css" 34 40 echo <<<END 35 41 <!doctype html> … … 41 47 <link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck.ico"> 42 48 <title>ALKIS-Auskunft</title> 43 <script >49 <script type="text/javascript" language="JavaScript"> 44 50 function imFenster(dieURL) { 45 51 var link = encodeURI(dieURL); … … 48 54 </script> 49 55 </head> 50 <body >56 <body class ="mbfi"> 51 57 END; 58 // <body style='width: 98%;'> 59 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 60 61 // Body des Inlay muss in Mapbender-Feature-Info-PopUp passen. Kleiner als 750 aus css. 52 62 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisinlayausk.php'"); 53 63 if (!$con) {echo "<br>Fehler beim Verbinden der DB.\n<br>";} … … 63 73 if (!$res) { 64 74 echo "\n<p class='err'>Fehler bei Flurstuecksdaten.</p>"; 65 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}75 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 66 76 } 67 77 … … 122 132 // Gebaeude-NW zum FS 123 133 echo "\n\t\t\t\t<a href='javascript:imFenster(\"alkisgebaeudenw.php?gkz=".$gkz."&gmlid=".$gmlid."\")' " 124 ."title='Gebäude nachweis'>Gebäude "134 ."title='Gebäude oder Bauwerke'>Gebäude/Bauw. " 125 135 ."<img src='ico/Haus.png' width='16' height='16' alt=''>" 126 136 ."</a>"; … … 139 149 if (!$res) { 140 150 echo "\n<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer.</p>"; 141 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}151 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 142 152 } 143 153 $j=0; … … 145 155 while($row = pg_fetch_assoc($res)) { 146 156 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 147 if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau157 if (substr($sname, strlen($sname) -3, 3) === 'weg') { // Versuch fuer korrekten Satzbau 148 158 $slink=" am ".$sname; 149 159 } else { … … 153 163 echo "\n\t<tr>" 154 164 ."\n\t\t<td class='ll'>"; 155 if ($j == 0) {echo "<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt='MIT'> Lage:";}165 if ($j === 0) {echo "<img src='ico/Lage_mit_Haus.png' width='16' height='16' alt='MIT'> Lage:";} 156 166 echo "</td>" 157 167 ."\n\t\t<td class='lr'>".$sname." ".$hsnr."</td>" … … 182 192 if (!$res) { 183 193 echo "\n<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer.</p>"; 184 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}194 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 185 195 } 186 196 $kgmlalt=''; … … 188 198 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 189 199 190 if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau200 if (substr($sname, strlen($sname) -3, 3) === 'weg') { // Versuch fuer korrekten Satzbau 191 201 $slink=" am ".$sname; 192 202 } else { -
trunk/info/info/alkisn/alkisinlaybaurecht.php
r416 r422 2 2 /* alkisinlaybaurecht.php - Inlay fuer Template: Baurecht 3 3 ALKIS-Buchauskunft, Kommunales Rechenzentrum Minden-Ravensberg/Lippe (Lemgo). 4 Ähnlich alkisbaurecht, aber nur Basisdaten, kein Footer und keine Flurstücks-Verschneidung.4 Ãhnlich alkisbaurecht, aber nur Basisdaten, kein Footer und keine FlurstÃŒcks-Verschneidung. 5 5 6 6 Version: 7 7 2016-02-24 Version fuer norGIS-ALKIS-Import 8 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 9 2017-06-08 Validierung Eingabeparameter, Feinkorrekturen 10 2017-10-09 Sauber filtern auf endet IS NULL 11 2018-11-09 Umstellung Full-Schema 12 2018-11-15 Nachkorrektur 8 .... 9 2020-02-03 Fenster-Weite 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 2020-12-15 Input-Validation und Strict Comparisation (===) 13 12 */ 13 ini_set("session.cookie_httponly", 1); 14 14 session_start(); 15 15 $cntget = extract($_GET); // Parameter in Variable umwandeln 16 16 // strikte Validierung aller Parameter 17 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 18 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 17 if (isset($gmlid)) { 18 if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 19 } else { 20 die("Fehlender Parameter"); 21 } 22 if (isset($gkz)) { 23 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 24 } else { 25 die("Fehlender Parameter"); 26 } 19 27 20 require_once("alkis_conf_location.php"); 21 if ($auth == "mapbender") {require_once($mapbender);} 28 include "alkis_conf_location.php"; 29 include "alkisfkt.php"; 30 31 // Wert fÃŒr "width=" aus der Function "imFenster" synchron halten mit "@media screen body width" aus "alkisauszug.css" 22 32 echo <<<END 23 33 <!doctype html> … … 32 42 function imFenster(dieURL) { 33 43 var link = encodeURI(dieURL); 34 window.open(link,'','left=30,top=30,width= 680,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes');44 window.open(link,'','left=30,top=30,width=750,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes'); 35 45 } 36 46 </script> 37 47 </head> 38 <body >48 <body style='width: 98%;'> 39 49 END; 50 51 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 52 53 // Body des Inlay muss in Mapbender-Feature-Info-PopUp passen. Kleiner als 750 aus css. 40 54 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisinlaybaurecht.php'"); 41 55 if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>"; 42 56 43 // Keine Spalten, die eine Berechtigungspr üfung nach Gemeinde ermöglichen:57 // Keine Spalten, die eine BerechtigungsprÃŒfung nach Gemeinde ermöglichen: 44 58 $sql ="SELECT r.ogc_fid, r.name, r.stelle, r.bezeichnung AS rechtbez, a.beschreibung AS adfbez, d.bezeichnung AS stellbez, round(st_area(r.wkb_geometry)::numeric,0) AS flae 45 59 FROM ax_bauraumoderbodenordnungsrecht r … … 54 68 if (!$res) { 55 69 echo "\n<p class='err'>Fehler bei Baurecht.</p>"; 56 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>". $sql."<br>$1 = ".$gmlid."</p>";}70 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".str_replace("$1", "'".$gmlid."'", $sql)."</p>";} 57 71 } 58 72 echo "\n<h2><img src='ico/Gericht.png' width='16' height='16' alt=''> Bau-, Raum- oder Bodenordnungsrecht</h2>"; -
trunk/info/info/alkisn/alkislage.php
r412 r422 7 7 Version: 8 8 2016-02-24 Version fuer norGIS-ALKIS-Import 9 2016-03-14 Korrekturen 10 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 11 2017-06-08 Validierung Eingabeparameter, gestreifte Tabelle, Feinkorrekturen 12 2017-10-09 Sauber filtern auf endet IS NULL 13 2018-04-23 &nodebug 14 2018-11-09 Umstellung Full-Schema 9 .... 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 12 2020-12-15 Input-Validation und Strict Comparisation (===) 15 13 16 14 ToDo: … … 20 18 Mit FlÀchen-Verschneidung auch weitere FS anzeigen? 21 19 */ 20 ini_set("session.cookie_httponly", 1); 22 21 session_start(); 23 22 $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren … … 25 24 26 25 // strikte Validierung aller Parameter 27 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 28 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 26 if (isset($gmlid)) { 27 if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 28 } else { 29 die("Fehlender Parameter"); 30 } 31 if (isset($gkz)) { 32 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 33 } else { 34 die("Fehlender Parameter"); 35 } 29 36 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 30 if ($showkey == "j") {$showkey=true;} else {$showkey=false;}37 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 31 38 if (!preg_match('#^[m|p|o]{1}$#', $ltyp)) {die ("Eingabefehler ltyp");} 32 39 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 33 40 34 require_once("alkis_conf_location.php"); 35 if ($auth == "mapbender") {require_once($mapbender);} 36 include("alkisfkt.php"); 41 include "alkis_conf_location.php"; 42 include "alkisfkt.php"; 37 43 38 44 switch ($ltyp) { … … 59 65 <body> 60 66 END; 67 68 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 69 61 70 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 62 71 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 63 if ($nodebug == "j") {$debug=0;}72 if ($nodebug === "j") {$debug=0;} 64 73 65 74 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkislage.php'"); … … 94 103 if (!$res) { 95 104 echo "\n<p class='err'>Fehler bei Lagebezeichnung.</p>"; 96 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}105 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 97 106 } 98 107 … … 117 126 $kennz.=$hsnr; 118 127 $untertitel="Hauptgebäude mit Hausnummer"; 119 echo "\n<p class=' lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz." </p>"; // Balken128 echo "\n<p class='balken lage'>ALKIS Lagebezeichnung mit Hausnummer ".$kennz." </p>"; // Balken 120 129 $osub=""; 121 130 break; … … 125 134 $kennz.=$pseu."-".$lfd; 126 135 $untertitel="NebengebÀude mit laufender Nummer (Lagebezeichnung mit Pseudonummer)"; 127 echo "\n<p class=' lage'>ALKIS Lagebezeichnung NebengebÀude ".$kennz." </p>"; // Balken136 echo "\n<p class='balken lage'>ALKIS Lagebezeichnung NebengebÀude ".$kennz." </p>"; // Balken 128 137 $osub=""; 129 138 break; … … 135 144 $kennz=" - ".$unver; 136 145 $untertitel="Gewanne (unverschlüsselte Lage)"; 137 echo "\n<p class=' lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz." </p>"; // Balken146 echo "\n<p class='balken lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz." </p>"; // Balken 138 147 } else { 139 148 $osub="s"; // Sub-Typ Strasse (ohne HsNr) 140 149 $kennz.=$unver; 141 150 $untertitel="Straße ohne Hausnummer"; 142 echo "\n<p class=' lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz." </p>"; // Balken151 echo "\n<p class='balken lage'>ALKIS Lagebezeichnung Ohne Hausnummer ".$kennz." </p>"; // Balken 143 152 } 144 153 break; … … 147 156 echo "\n<p class='err'>Fehler! Kein Treffer fuer Lagebezeichnung mit gml_id='".$gmlid."'</p>"; 148 157 if ($debug > 2) { 149 echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";158 echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>"; 150 159 } 151 160 echo "\n</body>\n</html>"; … … 174 183 break; 175 184 case "o": //"Ohne HsNr" 176 if ($osub == "g") {185 if ($osub === "g") { 177 186 echo "\n\t\t\t<td class='head'>unverschlüsselte Lage</td>"; 178 187 } … … 200 209 echo "\n\t\t\t<td title='Straße'>"; 201 210 if ($showkey and $osub != "g") {echo "<span class='key'>".$lage."</span><br>";} 202 if ($ltyp == "o") {211 if ($ltyp === "o") { 203 212 echo "<span class='wichtig'>".$snam."</span>"; 204 213 } else { … … 217 226 break; 218 227 case "o": 219 if ($osub == "g") {228 if ($osub === "g") { 220 229 echo "\n\t\t\t<td title='Gewanne'><span class='wichtig'>".$unver."</span></td>"; 221 230 } … … 243 252 // ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer 244 253 // ++ auch FlÀchenverschneidung? 245 if ($ltyp <>"p") { // Pseudonummer linkt nur GebÀude254 if ($ltyp != "p") { // Pseudonummer linkt nur GebÀude 246 255 echo "\n\n<a id='fs'></a>\n<h3><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Flurstücke</h3>" 247 256 ."\n<p>mit dieser Lagebezeichnung.</p>"; … … 261 270 if (!$resf) { 262 271 echo "\n<p class='err'>Fehler bei Flurstück.</p>"; 263 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}272 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 264 273 } 265 274 echo "\n<table class='fs'>" … … 303 312 // L A G E 304 313 // andere Lage mit gleicher Hausnummer suchen 305 if ($ltyp <>"o") { // nicht bei Gewanne (Ohne HsNr)314 if ($ltyp != "o") { // nicht bei Gewanne (Ohne HsNr) 306 315 echo "\n\n<a id='lage'></a>\n<h3><img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> Lage</h3>" 307 316 ."\n<p>Andere Lagebezeichnungen zur gleichen Hausnummer.</p>"; 308 317 $whereclaus="WHERE land= $1 AND regierungsbezirk= $2 AND kreis= $3 AND gemeinde= $4 AND lage= $5 "; 309 318 310 $url= $_SERVER['PHP_SELF']."?gkz=".$gkz; // Basis319 $url=selbstverlinkung()."?gkz=".$gkz; // Basis 311 320 if ($showkey) {$url.="&showkey=j";} 312 321 $url.="&gmlid="; … … 323 332 $res = pg_execute("", $v); 324 333 if (!$res) { 325 echo "\n<p class='err'>Fehler bei Nebengebäude.< br>".$sql."</p>";326 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 334 echo "\n<p class='err'>Fehler bei Nebengebäude.</p>"; 335 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter 327 336 } 328 337 $neb=0; … … 331 340 $neb++; 332 341 } 333 if ($neb == 0) {echo "keine";}342 if ($neb === 0) {echo "keine";} 334 343 echo "</p>"; 335 344 break; … … 349 358 $hg++; 350 359 } 351 if ($hg == 0) {echo " Kein Hauptgebäude gefunden.";}360 if ($hg === 0) {echo " Kein Hauptgebäude gefunden.";} 352 361 echo "</p>"; 353 362 … … 360 369 if (!$res) { 361 370 echo "\n<p class='err'>Fehler bei Nebengebäude.</p>"; 362 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 371 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} // 7 $-Parameter 363 372 } 364 373 $neb=0; … … 367 376 $neb++; 368 377 } 369 if ($neb == 0) {echo "keine";}378 if ($neb === 0) {echo "keine";} 370 379 echo "</p>"; 371 380 break; … … 374 383 375 384 // G E B A E U D E 376 if ($ltyp <>"o") { // OhneHsNr linkt nur Flurst.385 if ($ltyp != "o") { // OhneHsNr linkt nur Flurst. 377 386 echo "\n\n<a id='geb'></a>\n<h3><img src='ico/Haus.png' width='16' height='16' alt=''> Gebäude</h3>" 378 387 ."\n<p>mit dieser Lagebezeichnung.</p>"; … … 396 405 if (!$res) { 397 406 echo "\n<p class='err'>Fehler bei Gebäude.</p>"; 398 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}407 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 399 408 } 400 409 echo "\n<table class='geb'>" … … 444 453 </div> 445 454 446 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", "&ltyp=".$ltyp); ?>455 <?php footer($gmlid, selbstverlinkung()."?", "&ltyp=".$ltyp); ?> 447 456 448 457 </body> -
trunk/info/info/alkisn/alkisnamstruk.php
r412 r422 7 7 Version: 8 8 2016-02-24 Version fuer norGIS-ALKIS-Import 9 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen 10 2017-06-02 Validierung Eingabeparameter, Feinkorrekturen 11 2017-10-09 Sauber filtern auf endet IS NULL 12 2017-10-17 Deutsches Datumsformat im Geburtsdatum 13 2017-12-20 Anlass und Datum zur Adresse ausgeben, wenn es mehrere gibt oder SchlÃŒssel angefordert werden 14 2018-04-23 &nodebug 15 2018-11-09 Umstellung Full-Schema 9 ... 10 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 11 2020-12-03 function selbstverlinkung() statt $_SERVER['PHP_SELF'] 12 2020-12-15 Input-Validation und Strict Comparisation (===) 16 13 */ 14 ini_set("session.cookie_httponly", 1); 17 15 session_start(); 18 16 $multiadress="n"; $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren … … 20 18 21 19 // strikte Validierung aller Parameter 22 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 23 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 20 if (isset($gmlid)) { 21 if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 22 } else { 23 die("Fehlender Parameter"); 24 } 25 if (isset($gkz)) { 26 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 27 } else { 28 die("Fehlender Parameter"); 29 } 24 30 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 25 if ($showkey == "j") {$showkey=true;} else {$showkey=false;}31 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 26 32 if (!preg_match('#^[j|n]{0,1}$#', $multiadress)) {die ("Eingabefehler multiadress");} 27 33 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 28 34 29 35 require_once("alkis_conf_location.php"); 30 if ($auth == "mapbender") {require_once($mapbender);}31 36 include("alkisfkt.php"); 32 33 37 ?> 34 38 <!doctype html> … … 47 51 </head> 48 52 <body> 49 50 53 <?php 54 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 55 51 56 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 52 57 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 53 if ($nodebug == "j") {$debug=0;}54 55 echo "<p class=' nakennz'>ALKIS Name id=".$gmlid." </p>\n" // Balken58 if ($nodebug === "j") {$debug=0;} 59 60 echo "<p class='balken nakennz'>ALKIS Name id=".$gmlid." </p>\n" // Balken 56 61 ."\n<h2><img src='ico/Eigentuemer.png' width='16' height='16' alt=''> Person</h2>"; 57 62 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisnamstruk.php'"); … … 68 73 if (!$res) { 69 74 echo "\n<p class='err'>Fehler bei Zugriff auf Namensnummer</p>"; 70 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}75 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 71 76 } 72 77 if ($row = pg_fetch_assoc($res)) { … … 92 97 93 98 // A d r e s s e 94 if ($multiadress == "j") {$plural="n";} else {$plural="";}99 if ($multiadress === "j") {$plural="n";} else {$plural="";} 95 100 echo "\n\n<h3><img src='ico/Strasse_mit_Haus.png' width='16' height='16' alt=''> Adresse".$plural."</h3>"; 96 101 // Es können redundante Adressen vorhanden sein, z.B. aus Migration, temporÀr aus LBESAS. … … 106 111 if (!$resa) { 107 112 echo "\n<p class='err'>Fehler bei Adressen</p>"; 108 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>". $sqla."<br>$1=gml(Person)= '".$gmlid."'</p>";}113 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>". str_replace("$1", "'".$gmlid."'", $sqla)."</p>";} 109 114 } 110 115 … … 113 118 while($rowa = pg_fetch_assoc($resa)) { 114 119 $j++; 115 if ($multiadress == "j" OR $j== 1) {120 if ($multiadress === "j" OR $j === 1) { 116 121 $gmla=$rowa["gml_id"]; 117 122 $plz=$rowa["plz"]; … … 124 129 $datum=$rowa["datum"]; 125 130 echo "<table>\n"; 126 if ($multiadress == "j" OR $showkey) {131 if ($multiadress === "j" OR $showkey) { 127 132 if ($debug > 0) { // nur Entw.: Sortierung gml_id vs. beginnt? 128 133 echo "\t<tr><td class='dbg'>gml_id:</td><td class='dbg'>".$rowa["gml_id"]."</td></tr>\n"; … … 148 153 } 149 154 pg_free_result($resa); 150 if ($j == 0) {155 if ($j === 0) { 151 156 echo "\n<p class='err'>Keine Adressen.</p>"; 152 157 } elseif ($j > 1) { 153 158 echo "\n\t\t<p class='nwlink noprint'>" 154 ."\n\t\t\t<a href='". $_SERVER['PHP_SELF']. "?gkz=".$gkz."&gmlid=".$gmlid;159 ."\n\t\t\t<a href='".selbstverlinkung(). "?gkz=".$gkz."&gmlid=".$gmlid; 155 160 if ($showkey) {echo "&showkey=j";} 156 if ($multiadress == "j") {161 if ($multiadress === "j") { 157 162 echo "&multiadress=n' title='mehrfache Adressen unterdrücken'>erste Adresse "; 158 163 } else { … … 183 188 echo "\n<p class='err'>Fehler bei Grundbuch</p>"; 184 189 if ($debug > 2) { 185 echo "\n<p class='err'>SQL=<br>".htmlentities( $sqlg, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";190 echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sqlg ), ENT_QUOTES, "UTF-8")."</p>"; 186 191 } 187 192 } … … 231 236 232 237 echo "\n\t<td>"; // Anteil 233 if ($zae == "") {238 if ($zae == '') { 234 239 echo " "; 235 240 } else { … … 252 257 pg_free_result($resg); 253 258 echo "</table>"; 254 if ($i == 0) {echo "\n<p class='err'>Kein Grundbuch.</p>";}259 if ($i === 0) {echo "\n<p class='err'>Kein Grundbuch.</p>";} 255 260 } else { 256 261 echo "\n\t<p class='err'>Fehler! Kein Treffer für\n\t<a target='_blank' href='alkisrelationen.php?gkz=".$gkz."&gmlid=".$gmlid."'>".$gmlid."</a>\n</p>\n\n"; … … 265 270 </div> 266 271 267 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>272 <?php footer($gmlid, selbstverlinkung()."?", ""); ?> 268 273 269 274 </body> -
trunk/info/info/alkisn/alkisstrasse.php
r412 r422 8 8 Version: 9 9 2016-02-24 Version fuer norGIS-ALKIS-Import 10 2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen, SQL optimiert (FS-Liste jetzt schneller) 11 2017-02-23 Neuer Parameter &haus=m/o zum alkisexport.php 12 2017-06-08 Validierung Eingabeparameter, gestreifte Tabelle, Feinkorrekturen 13 2017-10-09 Sauber filtern auf endet IS NULL 14 2018-04-23 &nodebug 15 2018-11-09 Umstellung Full-Schema 10 ... 11 2020-02-20 Authentifizierung ausgelagert in Function darf_ich() 12 2020-12-15 Input-Validation und Strict Comparisation (===) 16 13 */ 14 ini_set("session.cookie_httponly", 1); 17 15 session_start(); 18 16 $showkey="n"; $nodebug=""; // Var. aus Parameter initalisieren … … 20 18 21 19 // strikte Validierung aller Parameter 22 if (!isset($gmlid) or !preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 23 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 20 if (isset($gmlid)) { 21 if (!preg_match('#^[0-9A-Za-z]{16}$#', $gmlid)) {die("Eingabefehler gmlid");} 22 } else { 23 die("Fehlender Parameter"); 24 } 25 if (isset($gkz)) { 26 if (!preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 27 } else { 28 die("Fehlender Parameter"); 29 } 24 30 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 25 if ($showkey == "j") {$showkey=true;} else {$showkey=false;}31 if ($showkey === "j") {$showkey=true;} else {$showkey=false;} 26 32 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 27 33 28 require_once("alkis_conf_location.php"); 29 if ($auth == "mapbender") {require_once($mapbender);} 30 include("alkisfkt.php"); 31 34 include "alkis_conf_location.php"; 35 include "alkisfkt.php"; 32 36 ?> 33 37 <!doctype html> … … 47 51 <body> 48 52 <?php 53 $erlaubnis = darf_ich(); if ($erlaubnis === 0) { die('<p class="stop1">Abbruch</p></body>'); } 54 49 55 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. 50 56 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 51 if ($nodebug == "j") {$debug=0;}57 if ($nodebug === "j") {$debug=0;} 52 58 53 59 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisstrasse.php'"); … … 69 75 if (!$res) { 70 76 echo "\n<p class='err'>Fehler bei Lagebezeichnungskatalogeintrag.</p>"; 71 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}77 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 72 78 } 73 79 if ($row = pg_fetch_assoc($res)) { … … 76 82 $gem=$row["gemeinde"]; 77 83 $kennz=$gem."-".$lage." (".$snam.")"; // Schluessel als Sucheingabe in NAV brauchbar? 78 echo "\n<p class=' strasse'>ALKIS Straße ".$kennz." </p>"; // Balken84 echo "\n<p class='balken strasse'>ALKIS Straße ".$kennz." </p>"; // Balken 79 85 } else { 80 86 echo "\n<p class='err'>Kein Treffer bei Lagebezeichnungskatalogeintrag.</p>"; … … 155 161 if (!$resf) { 156 162 echo "\n<p class='err'>Fehler bei Flurstück.</p>"; 157 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities( $sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";}163 if ($debug > 2) {echo "\n<p class='err'>SQL=<br>".htmlentities(str_replace("$1", "'".$gmlid."'", $sql), ENT_QUOTES, "UTF-8")."</p>";} 158 164 } 159 165 … … 206 212 ."\n\t<td class='hsnr'>".$rowf["hausnummer"]."</td>" 207 213 ."\n\t<td>\n\t\t<p class='nwlink noprint'>"; 208 if ($ltyp == 'm') { // nur Typ "Mit Haus" anzeigen. Dar Typ 'o' ist immer gleich und identisch mit dem Link im Kopf214 if ($ltyp === 'm') { // nur Typ "Mit Haus" anzeigen. Dar Typ 'o' ist immer gleich und identisch mit dem Link im Kopf 209 215 echo "\n\t\t<a href='alkislage.php?gkz=".$gkz."&ltyp=".$ltyp."&gmlid=".$lgml; 210 216 if ($showkey) {echo "&showkey=j";} … … 238 244 </div> 239 245 240 <?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?>246 <?php footer($gmlid, selbstverlinkung()."?", ""); ?> 241 247 242 248 </body> -
trunk/info/info/featureinfo.css
r107 r422 1 /* Style fuer Feature-Info-Request - nicht kommunal-spezifisch, Vers. 17.12.2009 */ 2 body { background-color: #FCFCFC;} 3 h1, h2, p, td, a, iframe, div {font-family:Verdana, Arial, Helvetica, sans-serif; color:navy;} 4 h1 {color:navy; 5 font-size:13pt; 6 text-align:center; 7 border-bottom:2px solid #AAAAAA; 8 border-top:2px solid #AAAAAA; 9 margin-bottom:6px;} 10 h2 {font-size:13pt;} 1 /* Style fuer Feature-Info-Request - nicht kommunal-spezifisch, 2 Vers. 2020-10-14 inlay f. ALKIS */ 3 body {background-color: #FCFCFC;} 4 h1, h2, p, td, th, a, iframe, div {font-family:Verdana, Arial, Helvetica, sans-serif; color:navy;} 5 h1 {color:navy; font-size:14pt; text-align:center; border-bottom:2px solid #AAAAAA; 6 border-top:2px solid #AAAAAA; margin-bottom:6px;} 7 h2 {font-size: 13pt;} 11 8 p, td, a, iframe {font-size:11pt;} 12 p.datum, a.datum {font-size: 7pt; text-align:right;} 13 p.hinweis, td.hinweis, div.hinweis {font-size: 8pt;} 14 p.err { color: red; } 9 p.datum, a.datum {font-size:8pt; text-align:right;} 10 p.hinweis, td.hinweis, div.hinweis {font-size:8pt;} 11 p.err {color:red;} 12 15 13 /* Tabelle allgemein */ 16 td {min-width:40px; border-bottom:1px solid gray;} 14 td, th {min-width:40px; border-bottom:1px solid gray;} 15 17 16 /* Tabellenfeld invisible */ 18 17 td.inv {border-bottom:0px;} 18 19 19 /* linke Tabellenspalte - Feldname */ 20 td.li, td.gr { 21 color:gray; 22 padding-left:8px; 23 padding-right:8px; 24 border-bottom:0px; 25 vertical-align:top; } 20 td.li, td.gr { color:gray; padding-left:8px; padding-right:8px; border-bottom:0px; vertical-align:top;} 21 26 22 /* Tabellenspalte - Gruppenueberschrift */ 27 td.gr { margin-top:8px; 28 font-style:italic ; 29 font-stretch:expanded; 30 border-top:1px dotted #AAAAAA; } 31 /* Tabellenspalte - Nav-Form gerahmt Google */ 32 td.nav, div.nav { 33 padding:8px; 34 margin:8px; 35 border:1px solid #AAAAAA; 36 background-color: #ffffdd;} 37 /* Tabellenspalte - Nav-Form gerahmt OpenRouteService */ 38 td.ors, div.ors { 39 padding:8px; 40 margin:8px; 41 border:1px solid #AAAAAA; 42 background-color: #ddffdd;} 23 td.gr { margin-top:8px; font-style:italic; font-stretch:expanded; border-top:1px dotted #AAAAAA;} 24 25 /* Tabellenspalte - Nav-Form gerahmt Google 26 td.nav, div.nav {padding:8px; margin:8px; border:1px solid #AAAAAA; background-color: #ffffdd;} */ 27 28 /* Tabellenspalte - Nav-Form gerahmt OpenRouteService 29 td.ors, div.ors {padding:8px; margin:8px; border:1px solid #AAAAAA; background-color: #ddffdd;} */ 30 43 31 /* cms2map */ 44 div.poi {text-align: center; } 45 iframe.poi { 46 text-align: center; 47 margin: 1px; 48 padding: 1px; 49 align: middle; 50 height: 40px; 51 width: 96%; 52 scrolling: no; 53 frameborder: 0; 54 background-color: #fff5fa;} 32 div.poi {text-align:center;} 33 iframe.poi {text-align:center; margin:1px; padding:1px; height:40px; width:96%; background-color:#fff5fa;} 55 34 a.cms2map {background-color: #ffff22;} 56 35 36 /* iframe.inlay {border:1px dotted #FFBBBB; width: 100%; height: 400px;} */ 37 iframe.inlay {border:0px; ; width: 98%; height: 580px;} 38 57 39 @media print { 58 body { 59 width: 100%; 60 background-color:white; 61 } 40 body { width:100%; background-color:white; } 62 41 }
Note: See TracChangeset
for help on using the changeset viewer.